Version 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).
This commit is contained in:
Klaus Schmidinger
2004-01-25 18:00:00 +01:00
parent b8e837dbbb
commit 7c5ef5dbba
17 changed files with 345 additions and 202 deletions

View File

@@ -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 {

View File

@@ -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.3 2004/01/12 16:17:47 kls Exp $
* $Id: descriptor.h 1.5 2004/01/24 14:52:05 kls Exp $
* *
***************************************************************************/
@@ -20,7 +20,7 @@ namespace SI {
class ShortEventDescriptor : public Descriptor {
public:
char languageCode[3];
char languageCode[4];
String name; //name of the event
String text; //short description
protected:
@@ -37,7 +37,7 @@ public:
protected:
virtual void Parse();
};
char languageCode[3];
char languageCode[4];
int getDescriptorNumber();
int getLastDescriptorNumber();
StructureLoop<Item> itemLoop;
@@ -93,7 +93,7 @@ class ParentalRatingDescriptor : public Descriptor {
public:
class Rating : public LoopElement {
public:
char languageCode[3];
char languageCode[4];
int getRating() const;
virtual int getLength() { return sizeof(parental_rating); }
protected:
@@ -258,7 +258,7 @@ public:
int getStreamContent() const;
int getComponentType() const;
int getComponentTag() const;
char languageCode[3];
char languageCode[4];
String description;
protected:
virtual void Parse();
@@ -317,7 +317,7 @@ class MultilingualNameDescriptor : public Descriptor {
public:
class Name : public LoopElement {
public:
char languageCode[3];
char languageCode[4];
String name;
virtual int getLength() { return sizeof(entry_multilingual_name)+name.getLength(); }
protected:
@@ -374,6 +374,15 @@ private:
const descr_linkage *s;
};
class ISO639LanguageDescriptor : public Descriptor {
public:
char languageCode[4];
protected:
virtual void Parse();
private:
const descr_iso_639_language *s;
};
//a descriptor currently unimplemented in this library
class UnimplementedDescriptor : public Descriptor {
protected:
@@ -427,7 +436,7 @@ public:
class NameEntry : public LoopElement {
public:
virtual int getLength() { return sizeof(descr_application_name_entry)+name.getLength(); }
char languageCode[3];
char languageCode[4];
String name;
protected:
virtual void Parse();

View File

@@ -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.5 2004/01/12 22:19:34 kls Exp $
* $Id: si.c 1.6 2004/01/23 14:27:45 kls Exp $
* *
***************************************************************************/
@@ -323,6 +323,9 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain)
case LinkageDescriptorTag:
d=new LinkageDescriptor();
break;
case ISO639LanguageDescriptorTag:
d=new ISO639LanguageDescriptor();
break;
//note that it is no problem to implement one
//of the unimplemented descriptors.
@@ -335,7 +338,6 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain)
case DataStreamAlignmentDescriptorTag:
case TargetBackgroundGridDescriptorTag:
case VideoWindowDescriptorTag:
case ISO639LanguageDescriptorTag:
case SystemClockDescriptorTag:
case MultiplexBufferUtilizationDescriptorTag:
case CopyrightDescriptorTag: