+void CLibCEC::AddKey(const cec_keypress &key)
+{
+ CLibCEC *instance = CLibCEC::GetInstance();
+ if (!instance)
+ return;
+ CLockObject lock(instance->m_mutex);
+
+ AddLog(CEC_LOG_DEBUG, "key pressed: %1x", key.keycode);
+
+ if (instance->m_callbacks)
+ instance->m_callbacks->CBCecKeyPress(instance->m_cbParam, key);
+ else
+ instance->m_keyBuffer.Push(key);
+
+ instance->m_iCurrentButton = key.duration > 0 ? CEC_USER_CONTROL_CODE_UNKNOWN : key.keycode;
+ instance->m_buttontime = key.duration > 0 ? 0 : GetTimeMs();
+}
+
+void CLibCEC::ConfigurationChanged(const libcec_configuration &config)
+{
+ CLibCEC *instance = CLibCEC::GetInstance();
+ CLockObject lock(instance->m_mutex);
+
+ if (instance->m_callbacks &&
+ config.clientVersion >= CEC_CLIENT_VERSION_1_5_0 &&
+ instance->m_callbacks->CBCecConfigurationChanged != NULL &&
+ instance->m_cec->IsInitialised())
+ instance->m_callbacks->CBCecConfigurationChanged(instance->m_cbParam, config);
+}
+
+void CLibCEC::SetCurrentButton(cec_user_control_code iButtonCode)