+ AddLog(CEC_LOG_NOTICE, "<< requesting CEC version");
+ cec_command command;
+ cec_command::format(command, GetMyLogicalAddress(), m_iLogicalAddress, CEC_OPCODE_GET_CEC_VERSION);
+ CLockObject lock(&m_mutex);
+ if (m_processor->Transmit(command))
+ m_condition.Wait(&m_mutex, 1000);
+ }
+
+ return m_cecVersion;
+}
+
+cec_menu_language &CCECBusDevice::GetMenuLanguage(bool bRefresh /* = true */)
+{
+ if (bRefresh || !strcmp(m_menuLanguage.language, "???"))
+ {
+ AddLog(CEC_LOG_NOTICE, "<< requesting menu language");
+ cec_command command;
+ cec_command::format(command, GetMyLogicalAddress(), m_iLogicalAddress, CEC_OPCODE_GET_MENU_LANGUAGE);
+ CLockObject lock(&m_mutex);
+ if (m_processor->Transmit(command))
+ m_condition.Wait(&m_mutex, 1000);
+ }
+
+ return m_menuLanguage;
+}
+
+cec_power_status CCECBusDevice::GetPowerStatus(bool bRefresh /* = true */)
+{
+ if (bRefresh || m_powerStatus == CEC_POWER_STATUS_UNKNOWN)
+ {
+ AddLog(CEC_LOG_NOTICE, "<< requesting power status");
+ cec_command command;
+ cec_command::format(command, GetMyLogicalAddress(), m_iLogicalAddress, CEC_OPCODE_GIVE_DEVICE_POWER_STATUS);
+ CLockObject lock(&m_mutex);
+ if (m_processor->Transmit(command))
+ m_condition.Wait(&m_mutex, 1000);