diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2004-01-18 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2004-01-18 18:00:00 +0100 |
commit | b8e837dbbbaa8a91c4dc257fde5c0131bedeb23e (patch) | |
tree | 15330a7e170ea0e78c04eff796594b59ec74bf08 /libsi | |
parent | a76a03c0d815680e3e8fc52f24f60a30177d3021 (diff) | |
download | vdr-patch-lnbsharing-b8e837dbbbaa8a91c4dc257fde5c0131bedeb23e.tar.gz vdr-patch-lnbsharing-b8e837dbbbaa8a91c4dc257fde5c0131bedeb23e.tar.bz2 |
Version 1.3.2vdr-1.3.2
- Fixed resetting the EPG data versions after changing the preferred languages
(thanks to Teemu Rantanen for reporting this one and helping to debug it).
- Added LinkageDescriptor handling to 'libsi' (thanks to Marcel Wiesweg).
- Added Russian language texts (thanks to Vyacheslav Dikonov).
Plugin authors may want to add the new entries to their I18N texts and contact
the translators to have their texts translated. Note that there are now 17
different OSD languages, so please make sure you have 17 versions for each of
your texts.
- Some corrections and additions to the Finnish OSD texts (thanks to Rolf
Ahrenberg and Niko Tarnanen).
- Fixed a wrong 'delta' value in the call to the shutdown script (thanks to
Stephan Epstein for reporting this one).
- Activated detection of radio channels (to avoid reports about "channels not
being detected that used to be detected with the 'scan' utility or the
original 'autopid' patch ;-).
- Channels with a zero VPID no longer write a PPID into channels.conf.
- Short channel names are now only stored if they actually differ from the
full name.
- The EPG scan now scans newly found transponders together with already existing
ones.
- The "Red" button in the "Setup/EPG" menu can now be used to force an EPG
scan on a single DVB card system (see MANUAL for details).
- The new SVDRP command 'SCAN' can be used to force an EPG scan on a single
DVB card system (see MANUAL under Setup/EPG for details).
- Fixed handling PID changes in 'Transfer Mode'.
- Excess blanks in channel names read from the SDT are now removed.
- Fixed wrong parameter settings when scanning NITs for terrestrial transponders
(thanks to Christian Tramnitz for pointing out this one).
- Fixed some out of bounds parameter settings when scanning NITs for cable
and satellite transponders.
- Added 'libsi' include files to the 'include' directory, so that plugins can
use them (thanks to Marcel Wiesweg).
- Now only processing NITs that contain the transponder they are actually
broadcast on.
- Fixed setting the source type for newly detected terrestrial transponders
(thanks to Christian Tramnitz for his support in debugging this).
Diffstat (limited to 'libsi')
-rw-r--r-- | libsi/descriptor.c | 24 | ||||
-rw-r--r-- | libsi/descriptor.h | 15 | ||||
-rw-r--r-- | libsi/si.c | 6 | ||||
-rw-r--r-- | libsi/si.h | 18 |
4 files changed, 55 insertions, 8 deletions
diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 433d680..4f4ef34 100644 --- a/libsi/descriptor.c +++ b/libsi/descriptor.c @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.c 1.2 2003/12/13 10:42:05 kls Exp $ + * $Id: descriptor.c 1.3 2004/01/12 16:17:20 kls Exp $ * * ***************************************************************************/ @@ -492,6 +492,28 @@ void MultilingualServiceNameDescriptor::Name::Parse() { name.setData(data+offset, mid->service_name_length); } +void LinkageDescriptor::Parse() { + unsigned int offset=0; + data.setPointerAndOffset<const descr_linkage>(s, offset); + privateData.assign(data.getData(offset), getLength()-offset); +} + +int LinkageDescriptor::getTransportStreamId() const { + return HILO(s->transport_stream_id); +} + +int LinkageDescriptor::getOriginalNetworkId() const { + return HILO(s->original_network_id); +} + +int LinkageDescriptor::getServiceId() const { + return HILO(s->service_id); +} + +LinkageType LinkageDescriptor::getLinkageType() const { + return (LinkageType)s->linkage_type; +} + void ApplicationSignallingDescriptor::Parse() { entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling)); } diff --git a/libsi/descriptor.h b/libsi/descriptor.h index 9abe1f0..3eb90fa 100644 --- a/libsi/descriptor.h +++ b/libsi/descriptor.h @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.h 1.2 2003/12/13 10:42:08 kls Exp $ + * $Id: descriptor.h 1.3 2004/01/12 16:17:47 kls Exp $ * * ***************************************************************************/ @@ -361,6 +361,19 @@ protected: virtual void Parse(); }; +class LinkageDescriptor : public Descriptor { +public: + int getTransportStreamId() const; + int getOriginalNetworkId() const; + int getServiceId() const; + LinkageType getLinkageType() const; + CharArray privateData; +protected: + virtual void Parse(); +private: + const descr_linkage *s; +}; + //a descriptor currently unimplemented in this library class UnimplementedDescriptor : public Descriptor { protected: @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.c 1.4 2004/01/05 11:04:17 kls Exp $ + * $Id: si.c 1.5 2004/01/12 22:19:34 kls Exp $ * * ***************************************************************************/ @@ -320,6 +320,9 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain) case ApplicationSignallingDescriptorTag: d=new ApplicationSignallingDescriptor(); break; + case LinkageDescriptorTag: + d=new LinkageDescriptor(); + break; //note that it is no problem to implement one //of the unimplemented descriptors. @@ -348,7 +351,6 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain) case VBITeletextDescriptorTag: case CountryAvailabilityDescriptorTag: case MocaicDescriptorTag: - case LinkageDescriptorTag: case TeletextDescriptorTag: case TelephoneDescriptorTag: case LocalTimeOffsetDescriptorTag: @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.h 1.5 2004/01/09 15:59:53 kls Exp $ + * $Id: si.h 1.6 2004/01/12 16:19:11 kls Exp $ * * ***************************************************************************/ @@ -154,6 +154,18 @@ enum RunningStatus { RunningStatusUndefined = 0, RunningStatusRunning = 4 }; +enum LinkageType { LinkageTypeInformationService = 0x01, + LinkageTypeEPGService = 0x02, + LinkageTypeCaReplacementService = 0x03, + LinkageTypeTSContainingCompleteNetworkBouquetSi = 0x04, + LinkageTypeServiceReplacementService = 0x05, + LinkageTypeDataBroadcastService = 0x06, + LinkageTypeRCSMap = 0x07, + LinkageTypeMobileHandover = 0x08, + LinkageTypeSystemSoftwareUpdateService = 0x09, + LinkageTypeTSContainingSsuBatOrNit = 0x0A + }; + /* Some principles: - Objects that return references to other objects contained in their data must make sure that the returned objects have been parsed. @@ -167,6 +179,7 @@ public: Object(CharArray &d); //can only be called once since data is immutable void setData(const unsigned char*data, unsigned int size, bool doCopy=true); + CharArray getData() { return data; } virtual int getLength() = 0; protected: CharArray data; @@ -224,9 +237,6 @@ private: class LoopElement : public Object { }; -class SubStructure : public LoopElement { -}; - class Descriptor : public LoopElement { public: virtual int getLength(); |