init
[open-duckbox-project-sh4:theseus-tdt.git] / tdt / cvs / apps / dvb / libdvbsi++.old / include / dvbsi++ / extended_event_descriptor.h
1 /*
2  * $Id: extended_event_descriptor.h,v 1.3 2005/10/29 00:10:08 obi Exp $
3  *
4  * Copyright (C) 2002-2005 Andreas Oberritter <obi@saftware.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License version 2.1 as published by the Free Software Foundation.
9  *
10  * See the file 'COPYING' in the top level directory for details.
11  */
12
13 #ifndef __extended_event_descriptor_h__
14 #define __extended_event_descriptor_h__
15
16 #include "descriptor.h"
17
18 class ExtendedEvent
19 {
20         protected:
21                 unsigned itemDescriptionLength                  : 8;
22                 std::string itemDescription;
23                 unsigned itemLength                             : 8;
24                 std::string item;
25
26         public:
27                 ExtendedEvent(const uint8_t * const buffer);
28
29                 const std::string &getItemDescription(void) const;
30                 const std::string &getItem(void) const;
31
32         friend class ExtendedEventDescriptor;
33 };
34
35 typedef std::list<ExtendedEvent *> ExtendedEventList;
36 typedef ExtendedEventList::iterator ExtendedEventIterator;
37 typedef ExtendedEventList::const_iterator ExtendedEventConstIterator;
38
39 class ExtendedEventDescriptor : public Descriptor
40 {
41         protected:
42                 unsigned descriptorNumber                       : 4;
43                 unsigned lastDescriptorNumber                   : 4;
44                 std::string iso639LanguageCode;
45                 unsigned lengthOfItems                          : 8;
46                 ExtendedEventList items;
47                 unsigned textLength                             : 8;
48                 std::string text;
49
50         public:
51                 ExtendedEventDescriptor(const uint8_t * const buffer);
52                 ~ExtendedEventDescriptor(void);
53
54                 uint8_t getDescriptorNumber(void) const;
55                 uint8_t getLastDescriptorNumber(void) const;
56                 const std::string &getIso639LanguageCode(void) const;
57                 const ExtendedEventList *getItems(void) const;
58                 const std::string &getText(void) const;
59 };
60
61 #endif /* __extended_event_descriptor_h__ */