updated copyright messages for 2013
[deb_libcec.git] / src / lib / adapter / Pulse-Eight / USBCECAdapterCommands.cpp
index cf97ea9f3593e7ab01320f25b7a2deff6811616e..f70c8ef76f80582955fd9222e85552241824a2b3 100644 (file)
@@ -1,7 +1,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.
@@ -85,7 +85,9 @@ uint16_t CUSBCECAdapterCommands::RequestFirmwareVersion(void)
 
   while (m_persistedConfiguration.iFirmwareVersion == CEC_FW_VERSION_UNKNOWN && iFwVersionTry++ < 3)
   {
+#ifdef CEC_DEBUGGING
     LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting the firmware version");
+#endif
     cec_datapacket response = RequestSetting(MSGCODE_FIRMWARE_VERSION);
     if (response.size == 2)
       m_persistedConfiguration.iFirmwareVersion = (response[0] << 8 | response[1]);
@@ -102,12 +104,18 @@ uint16_t CUSBCECAdapterCommands::RequestFirmwareVersion(void)
     m_persistedConfiguration.iFirmwareVersion = 1;
   }
 
+  // firmware versions < 2 don't have an autonomous mode
+  if (m_persistedConfiguration.iFirmwareVersion < 2)
+    m_bControlledMode = true;
+
   return m_persistedConfiguration.iFirmwareVersion;
 }
 
 bool CUSBCECAdapterCommands::RequestSettingAutoEnabled(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting autonomous mode setting");
+#endif
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_AUTO_ENABLED);
   if (response.size == 1)
@@ -121,7 +129,9 @@ bool CUSBCECAdapterCommands::RequestSettingAutoEnabled(void)
 
 bool CUSBCECAdapterCommands::RequestSettingCECVersion(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting CEC version setting");
+#endif
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_HDMI_VERSION);
   if (response.size == 1)
@@ -137,7 +147,9 @@ p8_cec_adapter_type CUSBCECAdapterCommands::RequestAdapterType(void)
 {
   if (m_adapterType == P8_ADAPTERTYPE_UNKNOWN)
   {
+#ifdef CEC_DEBUGGING
     LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting adapter type");
+#endif
 
     cec_datapacket response = RequestSetting(MSGCODE_GET_ADAPTER_TYPE);
     if (response.size == 1)
@@ -150,7 +162,9 @@ uint32_t CUSBCECAdapterCommands::RequestBuildDate(void)
 {
   if (m_iBuildDate == CEC_FW_BUILD_UNKNOWN)
   {
+#ifdef CEC_DEBUGGING
     LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting firmware build date");
+#endif
 
     cec_datapacket response = RequestSetting(MSGCODE_GET_BUILDDATE);
     if (response.size == 4)
@@ -161,7 +175,9 @@ uint32_t CUSBCECAdapterCommands::RequestBuildDate(void)
 
 bool CUSBCECAdapterCommands::RequestSettingDefaultLogicalAddress(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting default logical address setting");
+#endif
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_DEFAULT_LOGICAL_ADDRESS);
   if (response.size == 1)
@@ -175,7 +191,9 @@ bool CUSBCECAdapterCommands::RequestSettingDefaultLogicalAddress(void)
 
 bool CUSBCECAdapterCommands::RequestSettingDeviceType(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting device type setting");
+#endif
   m_persistedConfiguration.deviceTypes.Clear();
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_DEVICE_TYPE);
@@ -191,7 +209,9 @@ bool CUSBCECAdapterCommands::RequestSettingDeviceType(void)
 
 bool CUSBCECAdapterCommands::RequestSettingLogicalAddressMask(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting logical address mask setting");
+#endif
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_LOGICAL_ADDRESS_MASK);
   if (response.size == 2)
@@ -205,7 +225,9 @@ bool CUSBCECAdapterCommands::RequestSettingLogicalAddressMask(void)
 
 bool CUSBCECAdapterCommands::RequestSettingOSDName(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting OSD name setting");
+#endif
 
   memset(m_persistedConfiguration.strDeviceName, 0, 13);
   cec_datapacket response = RequestSetting(MSGCODE_GET_OSD_NAME);
@@ -227,7 +249,9 @@ bool CUSBCECAdapterCommands::RequestSettingOSDName(void)
 
 bool CUSBCECAdapterCommands::RequestSettingPhysicalAddress(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "requesting physical address setting");
+#endif
 
   cec_datapacket response = RequestSetting(MSGCODE_GET_PHYSICAL_ADDRESS);
   if (response.size == 2)
@@ -544,7 +568,9 @@ bool CUSBCECAdapterCommands::GetConfiguration(libcec_configuration &configuratio
 
 bool CUSBCECAdapterCommands::PingAdapter(void)
 {
+#ifdef CEC_DEBUGGING
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "sending ping");
+#endif
 
   CCECAdapterMessage params;
   CCECAdapterMessage *message = m_comm->SendCommand(MSGCODE_PING, params);
@@ -566,6 +592,19 @@ bool CUSBCECAdapterCommands::SetAckMask(uint16_t iMask)
   return bReturn;
 }
 
+void CUSBCECAdapterCommands::SetActiveSource(bool bSetTo, bool bClientUnregistered)
+{
+  if (bClientUnregistered) return;
+  if (m_persistedConfiguration.iFirmwareVersion >= 3)
+  {
+    LIB_CEC->AddLog(CEC_LOG_DEBUG, "marking the adapter as %s source", bSetTo ? "active" : "inactive");
+    CCECAdapterMessage params;
+    params.PushEscaped(bSetTo ? 1 : 0);
+    CCECAdapterMessage *message = m_comm->SendCommand(MSGCODE_SET_ACTIVE_SOURCE, params);
+    delete message;
+  }
+}
+
 bool CUSBCECAdapterCommands::StartBootloader(void)
 {
   LIB_CEC->AddLog(CEC_LOG_DEBUG, "starting the bootloader");