}
}
- // mark as initialised
- SetCECInitialised(true);
-
return true;
}
m_libcec->AddLog(CEC_LOG_NOTICE, "connection opened");
+ // mark as initialised
+ SetCECInitialised(true);
+
return bReturn;
}
bool CCECProcessor::RegisterClient(CCECClient *client)
{
- if (!client || !IsRunning())
+ if (!client)
+ return false;
+
+ libcec_configuration &configuration = *client->GetConfiguration();
+
+ if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_3 && configuration.bMonitorOnly == 1)
+ return true;
+
+ if (!CECInitialised())
+ {
+ m_libcec->AddLog(CEC_LOG_ERROR, "failed to register a new CEC client: CEC processor is not initialised");
return false;
+ }
// unregister the client first if it's already been marked as registered
if (client->IsRegistered())
UnregisterClient(client);
// get the configuration from the client
- libcec_configuration &configuration = *client->GetConfiguration();
m_libcec->AddLog(CEC_LOG_NOTICE, "registering new CEC client - v%s", ToString((cec_client_version)configuration.clientVersion));
// mark as uninitialised and unregistered