using namespace std;
using namespace PLATFORM;
-CCECProcessor::CCECProcessor(CLibCEC *controller, const libcec_configuration *configuration) :
+CCECProcessor::CCECProcessor(CLibCEC *controller, libcec_configuration *configuration) :
m_bInitialised(false),
m_communication(NULL),
m_controller(controller),
m_logicalAddresses.Clear();
CreateBusDevices();
m_configuration.Clear();
-
+ m_configuration.serverVersion = CEC_SERVER_VERSION_1_5_0;
SetConfiguration(configuration);
if (m_configuration.tvVendor != CEC_VENDOR_UNKNOWN)
m_busDevices[CECDEVICE_TV]->ReplaceHandler(false);
+
+ GetCurrentConfiguration(configuration);
}
CCECProcessor::CCECProcessor(CLibCEC *controller, const char *strDeviceName, const cec_device_type_list &types, uint16_t iPhysicalAddress) :
m_iLastTransmission(0)
{
m_configuration.Clear();
+ m_configuration.serverVersion = CEC_SERVER_VERSION_1_5_0;
// client version < 1.5.0
- m_configuration.clientVersion = CEC_CLIENT_VERSION_PRE_1_5;
+ m_configuration.clientVersion = (uint32_t)CEC_CLIENT_VERSION_PRE_1_5;
snprintf(m_configuration.strDeviceName, 13, "%s", strDeviceName);
m_configuration.deviceTypes = types;
m_configuration.iPhysicalAddress = iPhysicalAddress;
}
if (bReturn)
- CLibCEC::AddLog(CEC_LOG_NOTICE, "connected to the CEC adapter. firmware version = %d, client version = %s", m_communication->GetFirmwareVersion(), ToString(m_configuration.clientVersion));
+ CLibCEC::AddLog(CEC_LOG_NOTICE, "connected to the CEC adapter. firmware version = %d, client version = %s", m_communication->GetFirmwareVersion(), ToString((cec_client_version)m_configuration.clientVersion));
return bReturn;
}
}
}
+const char *CCECProcessor::ToString(const cec_server_version version)
+{
+ switch (version)
+ {
+ case CEC_SERVER_VERSION_PRE_1_5:
+ return "pre-1.5";
+ case CEC_SERVER_VERSION_1_5_0:
+ return "1.5.0";
+ default:
+ return "Unknown";
+ }
+}
+
void *CCECBusScan::Process(void)
{
CCECBusDevice *device(NULL);
}
// just copy these
+ m_configuration.clientVersion = configuration->clientVersion;
+ m_configuration.bActivateSource = configuration->bActivateSource;
m_configuration.bGetSettingsFromROM = configuration->bGetSettingsFromROM;
m_configuration.powerOffDevices = configuration->powerOffDevices;
m_configuration.bPowerOffScreensaver = configuration->bPowerOffScreensaver;
bool CCECProcessor::GetCurrentConfiguration(libcec_configuration *configuration)
{
// client version 1.5.0
- configuration->clientVersion = m_configuration.clientVersion;
snprintf(configuration->strDeviceName, 13, "%s", m_configuration.strDeviceName);
configuration->deviceTypes = m_configuration.deviceTypes;
configuration->bAutodetectAddress = m_configuration.bAutodetectAddress;
configuration->iPhysicalAddress = m_configuration.iPhysicalAddress;
configuration->baseDevice = m_configuration.baseDevice;
configuration->iHDMIPort = m_configuration.iHDMIPort;
+ configuration->clientVersion = m_configuration.clientVersion;
+ configuration->serverVersion = m_configuration.serverVersion;
configuration->tvVendor = m_configuration.tvVendor;
- configuration->wakeDevices = m_configuration.wakeDevices;
+
configuration->bGetSettingsFromROM = m_configuration.bGetSettingsFromROM;
+ configuration->bUseTVMenuLanguage = m_configuration.bUseTVMenuLanguage;
+ configuration->bActivateSource = m_configuration.bActivateSource;
+ configuration->wakeDevices = m_configuration.wakeDevices;
configuration->powerOffDevices = m_configuration.powerOffDevices;
configuration->bPowerOffScreensaver = m_configuration.bPowerOffScreensaver;
configuration->bPowerOffOnStandby = m_configuration.bPowerOffOnStandby;
{
return m_communication->PersistConfiguration(configuration);
}
+
+void CCECProcessor::RescanActiveDevices(void)
+{
+ for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
+ m_busDevices[iPtr]->GetStatus(true);
+}