added methods to get the audiostatus and toggle the mute status
[deb_libcec.git] / src / lib / devices / CECAudioSystem.h
index 6c04ad940c7dbbc0548dff2d04027abd2866d781..8ab055e0bc7a520ca207ca20afdaf1ab7727c022 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * This file is part of the libCEC(R) library.
  *
- * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited.  All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited.  All rights reserved.
  * libCEC(R) is an original work, containing original code.
  *
  * libCEC(R) is a trademark of Pulse-Eight Limited.
@@ -38,23 +38,25 @@ namespace CEC
   class CCECAudioSystem : public CCECBusDevice
   {
   public:
-    CCECAudioSystem(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress = 0);
+    CCECAudioSystem(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress = CEC_INVALID_PHYSICAL_ADDRESS);
     virtual ~CCECAudioSystem(void) {};
 
-    virtual bool SetAudioStatus(uint8_t status);
-    virtual bool SetSystemAudioMode(const cec_system_audio_status mode);
-    virtual bool SetSystemAudioMode(const cec_command &command);
-    virtual bool TransmitAudioStatus(cec_logical_address dest);
-    virtual bool TransmitSystemAudioModeStatus(cec_logical_address dest);
+    bool SetAudioStatus(uint8_t status);
+    bool SetSystemAudioModeStatus(const cec_system_audio_status mode);
+    bool TransmitAudioStatus(cec_logical_address dest, bool bIsReply);
+    bool TransmitSetSystemAudioMode(cec_logical_address dest, bool bIsReply);
+    bool TransmitSystemAudioModeStatus(cec_logical_address dest, bool bIsReply);
 
-    virtual uint8_t VolumeUp(bool bWait = true);
-    virtual uint8_t VolumeDown(bool bWait = true);
-    virtual uint8_t MuteAudio(bool bWait = true);
-    virtual uint8_t SendKey(cec_user_control_code key, bool bWait = true);
+    uint8_t VolumeUp(const cec_logical_address source, bool bSendRelease = true);
+    uint8_t VolumeDown(const cec_logical_address source, bool bSendRelease = true);
+    uint8_t MuteAudio(const cec_logical_address source);
+    uint8_t GetAudioStatus(const cec_logical_address initiator, bool bUpdate = false);
 
-    virtual bool TransmitActiveSource(void) { return false; }
+    bool TransmitActiveSource(void) { return false; }
 
   protected:
+    bool RequestAudioStatus(const cec_logical_address initiator, bool bWaitForResponse = true);
+
     cec_system_audio_status m_systemAudioStatus;
     uint8_t                 m_audioStatus;
   };