if (m_processor->IsInitialised())
HandleGivePhysicalAddress(command);
break;
+ case CEC_OPCODE_GET_MENU_LANGUAGE:
+ if (m_processor->IsInitialised())
+ HandleGiveMenuLanguage(command);
+ break;
case CEC_OPCODE_GIVE_OSD_NAME:
if (m_processor->IsInitialised())
HandleGiveOSDName(command);
return false;
}
+bool CCECCommandHandler::HandleGiveMenuLanguage(const cec_command &command)
+{
+ if (m_processor->IsRunning() && m_busDevice->MyLogicalAddressContains(command.destination))
+ {
+ CCECBusDevice *device = GetDevice(command.destination);
+ if (device)
+ return device->TransmitSetMenuLanguage(command.initiator);
+ }
+
+ return false;
+}
+
bool CCECCommandHandler::HandleGiveSystemAudioModeStatus(const cec_command &command)
{
if (m_processor->IsRunning() && m_busDevice->MyLogicalAddressContains(command.destination))
return Transmit(command, false);
}
+bool CCECCommandHandler::TransmitSetMenuLanguage(const cec_logical_address iInitiator, const char lang[3])
+{
+ cec_command command;
+ command.Format(command, iInitiator, CECDEVICE_BROADCAST, CEC_OPCODE_SET_MENU_LANGUAGE);
+ command.parameters.PushBack((uint8_t) lang[0]);
+ command.parameters.PushBack((uint8_t) lang[1]);
+ command.parameters.PushBack((uint8_t) lang[2]);
+
+ return Transmit(command, false);
+}
+
bool CCECCommandHandler::TransmitPoll(const cec_logical_address iInitiator, const cec_logical_address iDestination)
{
cec_command command;