11 #include "DVDMessage.h"    12 #include "threads/CriticalSection.h"    13 #include "threads/Event.h"    32   std::shared_ptr<CDVDMsg> message;
    36 enum MsgQueueReturnCode
    41   MSGQ_NOT_INITIALIZED = -2,
    42   MSGQ_INVALID_MSG = -3,
    43   MSGQ_OUT_OF_MEMORY = -4
    46 #define MSGQ_IS_ERROR(c)    (c < 0)    55   void Flush(CDVDMsg::Message message = CDVDMsg::DEMUXER_PACKET);
    59   MsgQueueReturnCode Put(
const std::shared_ptr<CDVDMsg>& pMsg, 
int priority = 0);
    60   MsgQueueReturnCode PutBack(
const std::shared_ptr<CDVDMsg>& pMsg, 
int priority = 0);
    67   MsgQueueReturnCode Get(std::shared_ptr<CDVDMsg>& pMsg,
    68                          std::chrono::milliseconds timeout,
    70   MsgQueueReturnCode Get(std::shared_ptr<CDVDMsg>& pMsg, std::chrono::milliseconds timeout)
    73     return Get(pMsg, timeout, priority);
    76   int GetDataSize()
 const { 
return m_iDataSize; }
    77   int GetTimeSize() 
const;
    78   unsigned GetPacketCount(CDVDMsg::Message type);
    79   bool ReceivedAbortRequest() { 
return m_bAbortRequest; }
    80   void WaitUntilEmpty();
    83   bool IsFull()
 const { 
return GetLevel() == 100; }
    86   void SetMaxDataSize(
int iMaxDataSize) { m_iMaxDataSize = iMaxDataSize; }
    87   void SetMaxTimeSize(
double sec) { m_TimeSize  = 1.0 / std::max(1.0, sec); }
    88   int GetMaxDataSize()
 const { 
return m_iMaxDataSize; }
    89   double GetMaxTimeSize()
 const { 
return m_TimeSize; }
    90   bool IsInited()
 const { 
return m_bInitialized; }
    91   bool IsDataBased() 
const;
    94   MsgQueueReturnCode Put(
const std::shared_ptr<CDVDMsg>& pMsg, 
int priority, 
bool front);
    95   void UpdateTimeFront();
    96   void UpdateTimeBack();
    99   mutable CCriticalSection m_section;
   101   std::atomic<bool> m_bAbortRequest = 
false;
   103   bool m_drain = 
false;
   113   std::list<DVDMessageListItem> m_messages;
   114   std::list<DVDMessageListItem> m_prioMessages;
 This is an Event class built from a ConditionVariable. 
Definition: Event.h:35
Definition: DVDMessageQueue.h:48
Definition: DVDMessageQueue.h:20