11 #include "DVDMessageQueue.h"    12 #include "IVideoPlayer.h"    13 #include "threads/Thread.h"    14 #include "utils/Stopwatch.h"    23 class CPVRRadioRDSInfoTag;
    28 #define UECP_DATA_START               0xFE        29 #define UECP_DATA_STOP                0xFF        30 #define UECP_SIZE_MAX                 263         43   void CloseStream(
bool bWaitForBuffers) 
override;
    47   void WaitForBuffers() { m_messageQueue.WaitUntilEmpty(); }
    48   bool AcceptsData()
 const override { 
return !m_messageQueue.IsFull(); }
    49   void SendMessage(std::shared_ptr<CDVDMsg> pMsg, 
int priority = 0)
 override    51     if (m_messageQueue.IsInited())
    52       m_messageQueue.Put(pMsg, priority);
    54   void FlushMessages()
 override { m_messageQueue.Flush(); }
    55   bool IsInited()
 const override { 
return true; }
    56   bool IsStalled()
 const override { 
return true; }
    59   void OnExit() 
override;
    60   void Process() 
override;
    64   void ProcessUECP(
const unsigned char *Data, 
unsigned int Length);
    66   inline unsigned int DecodePI(
const uint8_t* msgElement);
    67   inline unsigned int DecodePS(uint8_t *msgElement);
    68   inline unsigned int DecodeDI(
const uint8_t* msgElement);
    69   inline unsigned int DecodeTA_TP(
const uint8_t* msgElement);
    70   inline unsigned int DecodeMS(
const uint8_t* msgElement);
    71   inline unsigned int DecodePTY(
const uint8_t* msgElement);
    72   inline unsigned int DecodePTYN(uint8_t *msgElement);
    73   inline unsigned int DecodeRT(uint8_t *msgElement, 
unsigned int len);
    74   inline unsigned int DecodeRTC(uint8_t *msgElement);
    75   inline unsigned int DecodeODA(uint8_t *msgElement, 
unsigned int len);
    76   inline unsigned int DecodeRTPlus(uint8_t *msgElement, 
unsigned int len);
    77   inline unsigned int DecodeTMC(uint8_t *msgElement, 
unsigned int len);
    78   inline unsigned int DecodeEPPTransmitterInfo(
const uint8_t* msgElement);
    79   inline unsigned int DecodeSlowLabelingCodes(
const uint8_t* msgElement);
    80   inline unsigned int DecodeDABDynLabelCmd(
const uint8_t* msgElement, 
unsigned int len);
    81   inline unsigned int DecodeDABDynLabelMsg(
const uint8_t* msgElement, 
unsigned int len);
    82   inline unsigned int DecodeAF(uint8_t *msgElement, 
unsigned int len);
    83   inline unsigned int DecodeEonAF(uint8_t *msgElement, 
unsigned int len);
    84   inline unsigned int DecodeTDC(uint8_t *msgElement, 
unsigned int len);
    86   void SendTMCSignal(
unsigned int flags, uint8_t *data);
    87   void SetRadioStyle(
const std::string& genre);
    89   std::shared_ptr<PVR::CPVRRadioRDSInfoTag> m_currentInfoTag;
    90   std::shared_ptr<PVR::CPVRChannel> m_currentChannel;
    91   bool                        m_currentFileUpdate;
    93   CCriticalSection            m_critSection;
    96   uint8_t                     m_UECPData[UECP_SIZE_MAX+1];
    97   unsigned int                m_UECPDataIndex;
    99   bool                        m_UECPDatabStuff;
   100   bool                        m_UECPDataDeadBreak;
   103   bool                        m_RDS_SlowLabelingCodesPresent;
   105   uint16_t                    m_PI_Current;
   106   unsigned int                m_PI_CountryCode;
   107   unsigned int                m_PI_ProgramType;
   108   unsigned int                m_PI_ProgramReferenceNumber;
   110   unsigned int                m_EPP_TM_INFO_ExtendedCountryCode;
   113   bool                        m_DI_ArtificialHead;
   114   bool                        m_DI_Compressed;
   115   bool                        m_DI_DynamicPTY;
   117   bool                        m_TA_TP_TrafficAdvisory;
   118   float                       m_TA_TP_TrafficVolume;
   120   bool                        m_MS_SpeechActive;
   128   uint8_t                     m_RTPlus_WorkText[RT_MEL+1];
   129   bool                        m_RTPlus_TToggle;
   132   bool                        m_RTPlus_GenrePresent;
   133   char                        m_RTPlus_Temptext[RT_MEL];
   135   char                        m_RTPlus_Title[RT_MEL];
   136   char                        m_RTPlus_Artist[RT_MEL];
   137   int                         m_RTPlus_iToggle;
   138   unsigned int                m_RTPlus_ItemToggle;
   139   time_t                      m_RTPlus_Starttime;
   143   uint8_t                     m_TMC_LastData[5];
 Definition: Stopwatch.h:14
Definition: DVDStreamInfo.h:25
Definition: IVideoPlayer.h:36
Definition: VideoPlayerRadioRDS.h:36
Definition: DVDMessageQueue.h:48
Definition: ContextMenuManager.h:24
Definition: ProcessInfo.h:26
DateTime class, which uses FileTime as it's base. 
Definition: XBDateTime.h:63