bool CCECProcessor::IsInitialised(void)
{
- CLockObject lock(m_mutex);
+ CLockObject lock(m_threadMutex);
return m_bInitialised;
}
bool CCECProcessor::SetAckMask(uint16_t iMask)
{
- return m_communication->SetAckMask(iMask);
+ return m_communication ? m_communication->SetAckMask(iMask) : false;
}
bool CCECProcessor::TransmitKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait /* = true */)
for (uint8_t iPtr = 0; iPtr <= 0xF; iPtr++)
{
if (m_configuration.powerOffDevices[iPtr])
+ {
+ CLibCEC::AddLog(CEC_LOG_DEBUG, "%s - putting '%s' in standby mode", __FUNCTION__, ToString((cec_logical_address)iPtr));
bReturn &= m_busDevices[iPtr]->Standby();
+ }
}
return bReturn;
}
bool bReturn(true);
for (uint8_t iPtr = 0; iPtr <= 0xF; iPtr++)
{
- if (m_configuration.powerOffDevices[iPtr])
+ if (m_configuration.wakeDevices[iPtr])
+ {
+ CLibCEC::AddLog(CEC_LOG_DEBUG, "%s - powering on '%s'", __FUNCTION__, ToString((cec_logical_address)iPtr));
bReturn &= m_busDevices[iPtr]->PowerOn();
+ }
}
return bReturn;
}
return "1.6.0";
case CEC_CLIENT_VERSION_1_6_1:
return "1.6.1";
+ case CEC_CLIENT_VERSION_1_6_2:
+ return "1.6.2";
default:
return "Unknown";
}
return "1.6.0";
case CEC_SERVER_VERSION_1_6_1:
return "1.6.1";
+ case CEC_SERVER_VERSION_1_6_2:
+ return "1.6.2";
default:
return "Unknown";
}
}
-void *CCECBusScan::Process(void)
-{
- CCECBusDevice *device(NULL);
- uint8_t iCounter(0);
-
- while (!IsStopped())
- {
- if (++iCounter < 10)
- {
- Sleep(1000);
- continue;
- }
- for (unsigned int iPtr = 0; iPtr <= 11 && !IsStopped(); iPtr++)
- {
- device = m_processor->m_busDevices[iPtr];
- WaitUntilIdle();
- if (device && device->GetStatus(true) == CEC_DEVICE_STATUS_PRESENT)
- {
- WaitUntilIdle();
- if (!IsStopped())
- device->GetVendorId();
-
- WaitUntilIdle();
- if (!IsStopped())
- device->GetPowerStatus(true);
- }
- }
- }
-
- return NULL;
-}
-
-void CCECBusScan::WaitUntilIdle(void)
-{
- if (IsStopped())
- return;
-
- int32_t iWaitTime = 3000 - (int32_t)(GetTimeMs() - m_processor->GetLastTransmission());
- while (iWaitTime > 0)
- {
- Sleep(iWaitTime);
- iWaitTime = 3000 - (int32_t)(GetTimeMs() - m_processor->GetLastTransmission());
- }
-}
-
bool CCECProcessor::StartBootloader(const char *strPort /* = NULL */)
{
if (!m_communication && strPort)
bool CCECProcessor::CanPersistConfiguration(void)
{
- return m_communication->GetFirmwareVersion() >= 2;
+ return m_communication ? m_communication->GetFirmwareVersion() >= 2 : false;
}
bool CCECProcessor::PersistConfiguration(libcec_configuration *configuration)
{
- return m_communication->PersistConfiguration(configuration);
+ return m_communication ? m_communication->PersistConfiguration(configuration) : false;
}
void CCECProcessor::RescanActiveDevices(void)
{
- for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
+ for (unsigned int iPtr = 0; iPtr < CECDEVICE_BROADCAST; iPtr++)
m_busDevices[iPtr]->GetStatus(true);
}
m_communication = NULL;
return true;
}
+
+bool CCECProcessor::TransmitPendingActiveSourceCommands(void)
+{
+ bool bReturn(true);
+ for (unsigned int iPtr = 0; iPtr < CECDEVICE_BROADCAST; iPtr++)
+ bReturn &= m_busDevices[iPtr]->TransmitPendingActiveSourceCommands();
+ return bReturn;
+}