From 72189b52280e77409f49bcb79c46ba63cb774e2b Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 24 Jan 2004 14:49:51 +0100 Subject: [PATCH] Added ISO639LanguageDescriptor to 'libsi' --- HISTORY | 1 + libsi/descriptor.c | 10 +++++++++- libsi/descriptor.h | 11 ++++++++++- libsi/si.c | 6 ++++-- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index f7bc526c..01a68943 100644 --- a/HISTORY +++ b/HISTORY @@ -2614,3 +2614,4 @@ Video Disk Recorder Revision History 2004-01-24: Version 1.3.3 - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg). +- Added ISO639LanguageDescriptor to 'libsi'. diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 4f4ef341..a72ec009 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.4 2004/01/24 14:49:00 kls Exp $ * * ***************************************************************************/ @@ -514,6 +514,14 @@ LinkageType LinkageDescriptor::getLinkageType() const { return (LinkageType)s->linkage_type; } +void ISO639LanguageDescriptor::Parse() { + unsigned int offset=0; + data.setPointerAndOffset(s, offset); + languageCode[0]=s->lang_code1; + languageCode[1]=s->lang_code2; + languageCode[2]=s->lang_code3; +} + 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 3eb90fa2..ed38239f 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.3 2004/01/12 16:17:47 kls Exp $ + * $Id: descriptor.h 1.4 2004/01/24 14:49:00 kls Exp $ * * ***************************************************************************/ @@ -374,6 +374,15 @@ private: const descr_linkage *s; }; +class ISO639LanguageDescriptor : public Descriptor { +public: + char languageCode[3]; +protected: + virtual void Parse(); +private: + const descr_iso_639_language *s; +}; + //a descriptor currently unimplemented in this library class UnimplementedDescriptor : public Descriptor { protected: diff --git a/libsi/si.c b/libsi/si.c index 4342097f..0aa9c524 100644 --- a/libsi/si.c +++ b/libsi/si.c @@ -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/24 14:49:00 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: