updated copyright messages for 2013
[deb_libcec.git] / src / lib / LibCEC.h
index 673b5258c9a3205d6b33414c8d7c105f4bece723..385b74574ba701698e46c766b5367df733296bfd 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * This file is part of the libCEC(R) library.
  *
- * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited.  All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited.  All rights reserved.
  * libCEC(R) is an original work, containing original code.
  *
  * libCEC(R) is a trademark of Pulse-Eight Limited.
@@ -32,8 +32,9 @@
  */
 
 #include <string>
-#include "../../include/cec.h"
+#include "cec.h"
 #include "platform/util/buffer.h"
+#include "CECTypeUtils.h"
 
 namespace CEC
 {
@@ -44,36 +45,23 @@ namespace CEC
   class CLibCEC : public ICECAdapter
   {
     public:
-      CLibCEC(const char *strDeviceName, cec_device_type_list types, uint16_t iPhysicalAddress = 0);
-      CLibCEC(libcec_configuration *configuration);
+      CLibCEC(void);
       virtual ~CLibCEC(void);
 
-    /*!
-     * ICECAdapter implementation
-     */
-    //@{
       bool Open(const char *strPort, uint32_t iTimeout = CEC_DEFAULT_CONNECT_TIMEOUT);
       void Close(void);
       bool EnableCallbacks(void *cbParam, ICECCallbacks *callbacks);
       int8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL);
+      int8_t DetectAdapters(cec_adapter_descriptor *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL);
       bool PingAdapter(void);
       bool StartBootloader(void);
 
-      int8_t GetMinLibVersion(void) const   { return CEC_MIN_LIB_VERSION; };
-      int8_t GetLibVersionMajor(void) const { return CEC_LIB_VERSION_MAJOR; };
-      int8_t GetLibVersionMinor(void) const { return CEC_LIB_VERSION_MINOR; };
-
-      bool GetNextLogMessage(cec_log_message *message);
-      bool GetNextKeypress(cec_keypress *key);
-      bool GetNextCommand(cec_command *command);
-
       bool Transmit(const cec_command &data);
       bool SetLogicalAddress(cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1);
       bool SetPhysicalAddress(uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
 
       bool PowerOnDevices(cec_logical_address address = CECDEVICE_TV);
       bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST);
-      bool SetActiveView(void);
       bool SetActiveSource(cec_device_type type = CEC_DEVICE_TYPE_RESERVED);
       bool SetDeckControlMode(cec_deck_control_mode mode, bool bSendUpdate = true);
       bool SetDeckInfo(cec_deck_info info, bool bSendUpdate = true);
@@ -97,7 +85,6 @@ namespace CEC
       bool SendKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait = true);
       bool SendKeyRelease(cec_logical_address iDestination, bool bWait = true);
       cec_osd_name GetDeviceOSDName(cec_logical_address iAddress);
-      bool EnablePhysicalAddressDetection(void);
       cec_logical_address GetActiveSource(void);
       bool IsActiveSource(cec_logical_address iAddress);
       bool SetStreamPath(cec_logical_address iAddress);
@@ -110,56 +97,52 @@ namespace CEC
       void RescanActiveDevices(void);
       bool IsLibCECActiveSource(void);
 
-      const char *ToString(const cec_menu_state state);
-      const char *ToString(const cec_version version);
-      const char *ToString(const cec_power_status status);
-      const char *ToString(const cec_logical_address address);
-      const char *ToString(const cec_deck_control_mode mode);
-      const char *ToString(const cec_deck_info status);
-      const char *ToString(const cec_opcode opcode);
-      const char *ToString(const cec_system_audio_status mode);
-      const char *ToString(const cec_audio_status status);
-      const char *ToString(const cec_vendor_id vendor);
-      const char *ToString(const cec_client_version version);
-      const char *ToString(const cec_server_version version);
-      const char *ToString(const cec_device_type type);
+      const char *ToString(const cec_menu_state state)         { return CCECTypeUtils::ToString(state); }
+      const char *ToString(const cec_version version)          { return CCECTypeUtils::ToString(version); }
+      const char *ToString(const cec_power_status status)      { return CCECTypeUtils::ToString(status); }
+      const char *ToString(const cec_logical_address address)  { return CCECTypeUtils::ToString(address); }
+      const char *ToString(const cec_deck_control_mode mode)   { return CCECTypeUtils::ToString(mode); }
+      const char *ToString(const cec_deck_info status)         { return CCECTypeUtils::ToString(status); }
+      const char *ToString(const cec_opcode opcode)            { return CCECTypeUtils::ToString(opcode); }
+      const char *ToString(const cec_system_audio_status mode) { return CCECTypeUtils::ToString(mode); }
+      const char *ToString(const cec_audio_status status)      { return CCECTypeUtils::ToString(status); }
+      const char *ToString(const cec_vendor_id vendor)         { return CCECTypeUtils::ToString(vendor); }
+      const char *ToString(const cec_client_version version)   { return CCECTypeUtils::ToString(version); }
+      const char *ToString(const cec_server_version version)   { return CCECTypeUtils::ToString(version); }
+      const char *ToString(const cec_device_type type)         { return CCECTypeUtils::ToString(type); }
+      const char *ToString(const cec_user_control_code key)    { return CCECTypeUtils::ToString(key); }
+      const char *ToString(const cec_adapter_type type)        { return CCECTypeUtils::ToString(type); }
 
       static cec_device_type GetType(cec_logical_address address);
       static uint16_t GetMaskForType(cec_logical_address address);
       static uint16_t GetMaskForType(cec_device_type type);
 
       bool GetDeviceInformation(const char *strPort, libcec_configuration *config, uint32_t iTimeoutMs = CEC_DEFAULT_CONNECT_TIMEOUT);
-    //@}
 
       void AddLog(const cec_log_level level, const char *strFormat, ...);
-      static void AddKey(void) {}                                           //UNUSED
-      static void AddKey(const cec_keypress &key);                          //UNUSED
-      static void AddCommand(const cec_command &command);                   //UNUSED
-      static void ConfigurationChanged(const libcec_configuration &config); //UNUSED
-      static void SetCurrentButton(cec_user_control_code iButtonCode);      //UNUSED
+      void AddCommand(const cec_command &command);
       void CheckKeypressTimeout(void);
       void Alert(const libcec_alert type, const libcec_parameter &param);
-      static CLibCEC *GetInstance(void);                                    //UNUSED
-      static void SetInstance(CLibCEC *instance);                           //UNUSED
 
       static bool IsValidPhysicalAddress(uint16_t iPhysicalAddress);
-      CCECClient *RegisterClient(libcec_configuration *configuration);
+      CCECClient *RegisterClient(libcec_configuration &configuration);
       void UnregisterClients(void);
+      std::vector<CCECClient *> GetClients(void) { return m_clients; };
+      const char *GetLibInfo(void);
+      void InitVideoStandalone(void);
+      uint16_t GetAdapterVendorId(void) const;
+      uint16_t GetAdapterProductId(void) const;
+
+      uint8_t AudioToggleMute(void);
+      uint8_t AudioMute(void);
+      uint8_t AudioUnmute(void);
+      uint8_t AudioStatus(void);
 
       CCECProcessor *           m_cec;
 
     protected:
-      int64_t                                 m_iStartTime;
-      cec_user_control_code                   m_iCurrentButton;             //UNUSED
-      int64_t                                 m_buttontime;                 //UNUSED
-      PLATFORM::SyncedBuffer<cec_log_message> m_logBuffer;                  //UNUSED
-      PLATFORM::SyncedBuffer<cec_keypress>    m_keyBuffer;                  //UNUSED
-      PLATFORM::SyncedBuffer<cec_command>     m_commandBuffer;              //UNUSED
-      ICECCallbacks *                         m_callbacks;                  //UNUSED
-      void *                                  m_cbParam;                    //UNUSED
-      PLATFORM::CMutex                        m_mutex;
-      PLATFORM::CMutex                        m_logMutex;                   //UNUSED
-
+      int64_t                   m_iStartTime;
+      PLATFORM::CMutex          m_mutex;
       CCECClient *              m_client;
       std::vector<CCECClient *> m_clients;
   };