repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cosmetics
[deb_libcec.git]
/
src
/
lib
/
CECProcessor.cpp
diff --git
a/src/lib/CECProcessor.cpp
b/src/lib/CECProcessor.cpp
index d995345c01df94c3f144d21bb4962a4a90404c68..1daa7b60d2d8d421f879fa9b530ce07039725b1f 100644
(file)
--- a/
src/lib/CECProcessor.cpp
+++ b/
src/lib/CECProcessor.cpp
@@
-118,14
+118,6
@@
CCECProcessor::CCECProcessor(CLibCEC *controller, const char *strDeviceName, con
CCECProcessor::~CCECProcessor(void)
{
m_bStarted = false;
CCECProcessor::~CCECProcessor(void)
{
m_bStarted = false;
- StopThread(false);
-
- if (m_busScan)
- {
- m_busScan->StopThread();
- delete m_busScan;
- }
-
m_startCondition.Broadcast();
StopThread();
m_startCondition.Broadcast();
StopThread();
@@
-268,7
+260,9
@@
void *CCECProcessor::Process(void)
}
else
{
}
else
{
- m_busDevices[m_logicalAddresses.primary]->TransmitPhysicalAddress();
+ m_busDevices[CECDEVICE_TV]->GetVendorId();
+ m_busDevices[m_logicalAddresses.primary]->TransmitVendorID(CECDEVICE_TV, false);
+
CLockObject lock(&m_mutex);
m_bStarted = true;
m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
CLockObject lock(&m_mutex);
m_bStarted = true;
m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
@@
-302,6
+296,13
@@
void *CCECProcessor::Process(void)
m_controller->CheckKeypressTimeout();
}
m_controller->CheckKeypressTimeout();
}
+ if (m_busScan)
+ {
+ m_busScan->StopThread();
+ delete m_busScan;
+ m_busScan = NULL;
+ }
+
if (m_communication)
m_communication->Close();
if (m_communication)
m_communication->Close();
@@
-353,11
+354,6
@@
void CCECProcessor::SetRetryLineTimeout(uint8_t iTimeout)
m_iRetryLineTimeout = iTimeout;
}
m_iRetryLineTimeout = iTimeout;
}
-bool CCECProcessor::SetActiveSource(cec_logical_address iAddress)
-{
- return SetStreamPath(m_busDevices[iAddress]->GetPhysicalAddress(false));
-}
-
bool CCECProcessor::SetActiveView(void)
{
return SetActiveSource(m_types.IsEmpty() ? CEC_DEVICE_TYPE_RESERVED : m_types[0]);
bool CCECProcessor::SetActiveView(void)
{
return SetActiveSource(m_types.IsEmpty() ? CEC_DEVICE_TYPE_RESERVED : m_types[0]);
@@
-524,7
+520,10
@@
bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress)
{
for (uint8_t iPtr = 0; iPtr < 15; iPtr++)
if (m_logicalAddresses[iPtr])
{
for (uint8_t iPtr = 0; iPtr < 15; iPtr++)
if (m_logicalAddresses[iPtr])
+ {
m_busDevices[iPtr]->SetPhysicalAddress(iPhysicalAddress);
m_busDevices[iPtr]->SetPhysicalAddress(iPhysicalAddress);
+ m_busDevices[iPtr]->TransmitPhysicalAddress();
+ }
return SetActiveView();
}
return false;
return SetActiveView();
}
return false;
@@
-540,7
+539,7
@@
bool CCECProcessor::SwitchMonitoring(bool bEnable)
CLockObject lock(&m_mutex);
m_bMonitor = bEnable;
CLockObject lock(&m_mutex);
m_bMonitor = bEnable;
- if (bEnable)
+ if (
!
bEnable)
{
if (!m_busScan)
{
{
if (!m_busScan)
{
@@
-1297,9
+1296,15
@@
const char *CCECProcessor::ToString(const cec_vendor_id vendor)
void *CCECBusScan::Process(void)
{
CCECBusDevice *device(NULL);
void *CCECBusScan::Process(void)
{
CCECBusDevice *device(NULL);
+ uint8_t iCounter(0);
while (!IsStopped())
{
while (!IsStopped())
{
+ if (++iCounter < 30)
+ {
+ Sleep(1000);
+ continue;
+ }
for (unsigned int iPtr = 0; iPtr <= 11 && !IsStopped(); iPtr++)
{
device = m_processor->m_busDevices[iPtr];
for (unsigned int iPtr = 0; iPtr <= 11 && !IsStopped(); iPtr++)
{
device = m_processor->m_busDevices[iPtr];