00001 #ifndef VBIDECODER_H_
00002 #define VBIDECODER_H_
00003
00004 #include <stdint.h>
00005
00006 #include <qwaitcondition.h>
00007 #include <qobject.h>
00008 #include <qmutex.h>
00009
00010 class OSDType;
00011
00012 class TeletextReader
00013 {
00014 public:
00015 TeletextReader() { }
00016 virtual ~TeletextReader() { }
00017 virtual void AddTextData(unsigned char *buf, int len,
00018 long long timecode, char type) = 0;
00019 };
00020
00021 class TeletextViewer
00022 {
00023 public:
00024 TeletextViewer() { }
00025 virtual ~TeletextViewer() { }
00026
00027 virtual void KeyPress(uint key) { (void) key; }
00028 virtual void SetPage(int page, int subpage) { (void) page; (void) subpage; }
00029 virtual void SetDisplaying(bool displaying) { (void) displaying; }
00030
00031 virtual void Reset(void) = 0;
00032 virtual void AddPageHeader(int page, int subpage,
00033 const uint8_t *buf, int vbimode,
00034 int lang, int flags) = 0;
00035 virtual void AddTeletextData(int magazine, int row,
00036 const uint8_t* buf, int vbimode) = 0;
00037 };
00038
00039 class TeletextDecoder
00040 {
00041 public:
00042 TeletextDecoder() : m_teletextviewer(NULL), m_decodertype(-1) {}
00043 virtual ~TeletextDecoder() {}
00044
00046 void SetViewer(TeletextViewer *viewer)
00047 { m_teletextviewer = viewer; }
00048
00055 int GetDecoderType(void) const
00056 { return m_decodertype; }
00057
00058 void Decode(const unsigned char *buf, int vbimode);
00059
00060 private:
00061
00062 TeletextViewer *m_teletextviewer;
00063 int m_decodertype;
00064 };
00065
00066 #endif