openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
radiotext.h
Go to the documentation of this file.
1 #ifndef __lib_dvb_radiotext_h
2 #define __lib_dvb_radiotext_h
3 
4 #include <lib/base/object.h>
5 #include <lib/dvb/idvb.h>
6 #include <lib/dvb/pesparse.h>
7 #include <lib/gdi/gpixmap.h>
8 
9 class eDVBRdsDecoder: public iObject, public ePESParser, public sigc::trackable
10 {
11  DECLARE_REF(eDVBRdsDecoder);
12  int msgPtr, bsflag, qdar_pos, t_ptr, qdarmvi_show;
13  unsigned char m_message_buffer[66], lastmessage[66], datamessage[256], rtp_buf[5], leninfo, text_len, text_len2, state;
14  std::string m_rt_message; // radiotext message
15  std::string m_rtplus_message; // radiotext plus message
16  unsigned char rtp_item[64][64], rtplus_osd[128]; //rtp
17  short m_rtp_togglebit, m_rtp_runningbit;
18  unsigned char qdar[60*1024]; //60 kB for holding Rass qdar archive
19  unsigned short crc16, crc;
20  long part, parts, partcnt;
21  unsigned char rass_picture_mask[5]; // 40 bits... (10 * 4 pictures)
22  void addToPictureMask(int id);
23  void removeFromPictureMask(int id);
24  int m_mode;
25  int m_pid;
26  int m_audio_type;
27 public:
29  eDVBRdsDecoder(iDVBDemux *demux, int mode, int audio_type);
31  int start(int pid);
32  void connectEvent(const sigc::slot1<void, int> &slot, ePtr<eConnection> &connection);
33  std::string getRadioText() { return m_rt_message; }
34  std::string getRtpText() { return m_rtplus_message; }
36  std::string getRassPicture(int page, int subpage);
37  std::string getRassSlideshowPicture() { return "/tmp/RassLast.mvi"; }
38  int getPid() { return m_pid; }
39 private:
40  void abortNonAvail();
41  void processPESPacket(uint8_t *pkt, int len);
42  void processPESAACPacket(uint8_t *pkt, int pos, int len);
43  void processAACFrame(uint8_t *data, int len);
44  void processPESMPEGPacket(uint8_t *pkt, int pos, int len);
45  void gotAncillaryData(const uint8_t *data, int len);
46  void process_qdar(unsigned char*);
47  void convertRdsMessageToUTF8(unsigned char* buffer, std::string& message);
48  ePtr<iDVBPESReader> m_pes_reader;
49  ePtr<eConnection> m_read_connection;
50  sigc::signal1<void, int> m_event;
51  ePtr<eTimer> m_abortTimer;
52 };
53 
54 #endif
Definition: radiotext.h:10
@ RassInteractivePicMaskChanged
Definition: radiotext.h:28
@ RadioTextChanged
Definition: radiotext.h:28
@ RecvRassSlidePic
Definition: radiotext.h:28
@ RtpTextChanged
Definition: radiotext.h:28
int getPid()
Definition: radiotext.h:38
int start(int pid)
Definition: radiotext.cpp:880
~eDVBRdsDecoder()
Definition: radiotext.cpp:37
std::string getRassSlideshowPicture()
Definition: radiotext.h:37
std::string getRassPicture(int page, int subpage)
Definition: radiotext.cpp:856
eDVBRdsDecoder(iDVBDemux *demux, int mode, int audio_type)
Definition: radiotext.cpp:14
std::string getRtpText()
Definition: radiotext.h:34
ePyObject getRassPictureMask()
Definition: radiotext.cpp:899
void connectEvent(const sigc::slot1< void, int > &slot, ePtr< eConnection > &connection)
Definition: radiotext.cpp:138
std::string getRadioText()
Definition: radiotext.h:33
Definition: pesparse.h:7
Definition: python.h:31
Definition: idvb.h:755
Definition: object.h:15
unsigned char data[256]
Definition: hdmi_cec.h:2
pos
Definition: enigma_py_patcher.py:16
uint8_t mode
Definition: vps.cpp:40