X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c606126c3efaec7e3fdf1283fc37dfb7140bee13..7fd6d75b6c77621a8538cb9a5e1999c3266ac3f4:/lib/dvb/radiotext.h?ds=inline diff --git a/lib/dvb/radiotext.h b/lib/dvb/radiotext.h index ba42ded1..7a73eea3 100644 --- a/lib/dvb/radiotext.h +++ b/lib/dvb/radiotext.h @@ -6,23 +6,41 @@ #include #include -class eDVBRadioTextParser: public iObject, public ePESParser, public Object +class eDVBRdsDecoder: public iObject, public ePESParser, public Object { - DECLARE_REF(eDVBRadioTextParser); - int bytesread, ptr, p1, p2, msgPtr; - unsigned char buf[128], message[66], leninfo, todo, state; + DECLARE_REF(eDVBRdsDecoder); + int msgPtr, bsflag, qdar_pos, t_ptr, qdarmvi_show; + unsigned char message[66], lastmessage[66], datamessage[256], rtp_buf[5], leninfo, text_len, text_len2, state; + unsigned char rtp_item[64][64], rtplus_osd[64]; //rtp + unsigned char qdar[60*1024]; //60 kB for holding Rass qdar archive unsigned short crc16, crc; + long part, parts, partcnt; + unsigned char rass_picture_mask[5]; // 40 bits... (10 * 4 pictures) + void addToPictureMask(int id); + void removeFromPictureMask(int id); + int m_type; + int m_pid; public: - eDVBRadioTextParser(iDVBDemux *demux); + enum { RadioTextChanged, RtpTextChanged, RassInteractivePicMaskChanged, RecvRassSlidePic }; + eDVBRdsDecoder(iDVBDemux *demux, int type); + ~eDVBRdsDecoder(); int start(int pid); - void connectUpdatedRadiotext(const Slot0 &slot, ePtr &connection); - const char *getCurrentText() { return msgPtr ? (const char*)message : ""; } + void connectEvent(const Slot1 &slot, ePtr &connection); + const char *getRadioText() { return (const char*)message; } + const char *getRtpText() { return (const char*)rtplus_osd; } + ePyObject getRassPictureMask(); + std::string getRassPicture(int page, int subpage); + std::string getRassSlideshowPicture() { return "/tmp/RassLast.mvi"; } + int getPid() { return m_pid; } private: + void abortNonAvail(); void processPESPacket(__u8 *pkt, int len); - void gotAncillaryByte(__u8 data); + void gotAncillaryData(const __u8 *data, int len); + void process_qdar(unsigned char*); ePtr m_pes_reader; ePtr m_read_connection; - Signal0 m_updated_radiotext; + Signal1 m_event; + ePtr m_abortTimer; }; #endif