summaryrefslogtreecommitdiff
path: root/libsi/descriptor.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2004-01-25 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2004-01-25 18:00:00 +0100
commit7c5ef5dbbada89f55aa15a7c5ac653f4390ce9b4 (patch)
tree0dfd35efdd6ed9302198936c7d0a265b47585b39 /libsi/descriptor.c
parentb8e837dbbbaa8a91c4dc257fde5c0131bedeb23e (diff)
downloadvdr-patch-lnbsharing-7c5ef5dbbada89f55aa15a7c5ac653f4390ce9b4.tar.gz
vdr-patch-lnbsharing-7c5ef5dbbada89f55aa15a7c5ac653f4390ce9b4.tar.bz2
Version 1.3.3vdr-1.3.3
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg). - Added ISO639LanguageDescriptor to 'libsi'. - Changed the 'languageCode' members in the descriptor classes of 'libsi' to 'char[4]' and setting the 4th byte to 0 for easier handling. - Fixed frequency handling when setting the CA descriptors in cDvbTuner::Action() (thanks to Jan Ekholm for reporting and helping to debug this one). - Now setting CA descriptors even if "Setup/DVB/Update channels" is less than 2. - There can now be up to 32 audio and Dolby PIDs (however, currently still only the first two are used throughout the rest of the program). - The audio and Dolby PIDs in 'channels.conf' now can have an optional language code (see man vdr(5)). Currently this is only stored and not yet used otherwise. - Added a call to cStatus::MsgOsdCurrentItem() to cMenuEditItem::SetValue() (thanks to Martin Hammerschmid).
Diffstat (limited to 'libsi/descriptor.c')
-rw-r--r--libsi/descriptor.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libsi/descriptor.c b/libsi/descriptor.c
index 4f4ef34..55a6a9c 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.3 2004/01/12 16:17:20 kls Exp $
+ * $Id: descriptor.c 1.5 2004/01/24 14:52:41 kls Exp $
* *
***************************************************************************/
@@ -22,6 +22,7 @@ void ShortEventDescriptor::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
name.setDataAndOffset(data+offset, s->event_name_length, offset);
const descr_short_event_mid *mid;
data.setPointerAndOffset<const descr_short_event_mid>(mid, offset);
@@ -42,6 +43,7 @@ void ExtendedEventDescriptor::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
itemLoop.setDataAndOffset(data+offset, s->length_of_items, offset);
const descr_extended_event_mid *mid;
data.setPointerAndOffset<const descr_extended_event_mid>(mid, offset);
@@ -183,6 +185,7 @@ void ParentalRatingDescriptor::Rating::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
}
int CaDescriptor::getCaType() const {
@@ -398,6 +401,7 @@ void ComponentDescriptor::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
description.setData(data+offset, getLength()-offset);
}
@@ -462,6 +466,7 @@ void MultilingualNameDescriptor::Name::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
name.setData(data+offset, s->text_length);
}
@@ -486,6 +491,7 @@ void MultilingualServiceNameDescriptor::Name::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
providerName.setDataAndOffset(data+offset, s->text_length, offset);
const entry_multilingual_service_name_mid *mid;
data.setPointerAndOffset<const entry_multilingual_service_name_mid>(mid, offset);
@@ -514,6 +520,15 @@ LinkageType LinkageDescriptor::getLinkageType() const {
return (LinkageType)s->linkage_type;
}
+void ISO639LanguageDescriptor::Parse() {
+ unsigned int offset=0;
+ data.setPointerAndOffset<const descr_iso_639_language>(s, offset);
+ languageCode[0]=s->lang_code1;
+ languageCode[1]=s->lang_code2;
+ languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
+}
+
void ApplicationSignallingDescriptor::Parse() {
entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling));
}
@@ -582,6 +597,7 @@ void MHP_ApplicationNameDescriptor::NameEntry::Parse() {
languageCode[0]=s->lang_code1;
languageCode[1]=s->lang_code2;
languageCode[2]=s->lang_code3;
+ languageCode[3]=0;
}
int MHP_TransportProtocolDescriptor::getProtocolId() const {