}
// persist the new configuration
- if (m_processor->CECInitialised())
- m_processor->PersistConfiguration(m_configuration);
+ m_processor->PersistConfiguration(m_configuration);
// set the physical address for each device
SetDevicePhysicalAddress(iPhysicalAddress);
memcpy(configuration.strDeviceLanguage, m_configuration.strDeviceLanguage, 3);
configuration.iFirmwareBuildDate = m_configuration.iFirmwareBuildDate;
}
+
+ // client version 1.6.3
+ if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_3)
+ {
+ configuration.bMonitorOnly = m_configuration.bMonitorOnly;
+ }
+
return true;
}
memcpy(m_configuration.strDeviceLanguage, configuration.strDeviceLanguage, 3);
}
+ // client version 1.6.3
+ if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_3)
+ {
+ m_configuration.bMonitorOnly = configuration.bMonitorOnly;
+ }
+
// ensure that there is at least 1 device type set
if (m_configuration.deviceTypes.IsEmpty())
m_configuration.deviceTypes.Add(CEC_DEVICE_TYPE_RECORDING_DEVICE);
SetPhysicalAddress(configuration);
}
- if (bIsRunning)
- m_processor->PersistConfiguration(m_configuration);
+ m_processor->PersistConfiguration(m_configuration);
if (!primary)
primary = GetPrimaryDevice();
if (bEnable)
return m_processor->UnregisterClient(this);
else
+ {
+ m_configuration.bMonitorOnly = false;
return m_processor->RegisterClient(this);
+ }
}
return false;