repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
p8: don't disable controlled mode when switching to monitoring mode
[deb_libcec.git]
/
src
/
lib
/
CECProcessor.cpp
diff --git
a/src/lib/CECProcessor.cpp
b/src/lib/CECProcessor.cpp
index 6461ca9b2bd1da66f2e134f3d465ed868aa609af..88795e92b9dde65123abe66f6b4de546371b9759 100644
(file)
--- a/
src/lib/CECProcessor.cpp
+++ b/
src/lib/CECProcessor.cpp
@@
-62,7
+62,8
@@
CCECProcessor::CCECProcessor(CLibCEC *libcec) :
m_libcec(libcec),
m_iStandardLineTimeout(3),
m_iRetryLineTimeout(3),
m_libcec(libcec),
m_iStandardLineTimeout(3),
m_iRetryLineTimeout(3),
- m_iLastTransmission(0)
+ m_iLastTransmission(0),
+ m_bMonitor(true)
{
m_busDevices = new CCECDeviceMap(this);
}
{
m_busDevices = new CCECDeviceMap(this);
}
@@
-800,7
+801,7
@@
bool CCECProcessor::UnregisterClient(CCECClient *client)
if (SetLogicalAddresses(addresses))
{
// no more clients left, disable controlled mode
if (SetLogicalAddresses(addresses))
{
// no more clients left, disable controlled mode
- if (addresses.IsEmpty())
+ if (addresses.IsEmpty()
&& !m_bMonitor
)
m_communication->SetControlledMode(false);
return true;
m_communication->SetControlledMode(false);
return true;
@@
-873,3
+874,13
@@
bool CCECProcessor::IsRunningLatestFirmware(void)
m_communication->IsRunningLatestFirmware() :
true;
}
m_communication->IsRunningLatestFirmware() :
true;
}
+
+void CCECProcessor::SwitchMonitoring(bool bSwitchTo)
+{
+ {
+ CLockObject lock(m_mutex);
+ m_bMonitor = bSwitchTo;
+ }
+ if (bSwitchTo)
+ UnregisterClients();
+}