- cec_opcode opCode = (cec_opcode) frame.data[1];
- if (destination == (uint16_t) m_iLogicalAddress)
- {
- switch(opCode)
- {
- case CEC_OPCODE_GIVE_PHYSICAL_ADDRESS:
- ReportPhysicalAddress();
- break;
- case CEC_OPCODE_GIVE_OSD_NAME:
- ReportOSDName((cec_logical_address)initiator);
- break;
- case CEC_OPCODE_GIVE_DEVICE_VENDOR_ID:
- ReportVendorID((cec_logical_address)initiator);
- break;
- case CEC_OPCODE_VENDOR_COMMAND_WITH_ID:
- frame.shift(2);
- ParseVendorId((cec_logical_address)initiator, frame);
- TransmitAbort((cec_logical_address)initiator, CEC_OPCODE_VENDOR_COMMAND_WITH_ID);
- break;
- case CEC_OPCODE_GIVE_DECK_STATUS:
- // need to support opcodes play and deck control before doing anything with this
- TransmitAbort((cec_logical_address)initiator, CEC_OPCODE_GIVE_DECK_STATUS);
- break;
- case CEC_OPCODE_MENU_REQUEST:
- frame.shift(2);
- if (frame.data[0] == CEC_MENU_REQUEST_TYPE_QUERY)
- ReportMenuState((cec_logical_address)initiator);
- break;
- case CEC_OPCODE_GIVE_DEVICE_POWER_STATUS:
- ReportPowerState((cec_logical_address)initiator);
- SetActiveView();
- break;
- case CEC_OPCODE_GET_CEC_VERSION:
- ReportCECVersion((cec_logical_address)initiator);
- break;
- case CEC_OPCODE_USER_CONTROL_PRESSED:
- if (frame.size > 2)
- {
- m_controller->AddKey();
+ output->push_back(MSGSTART);
+ output->push_escaped(MSGCODE_SET_ACK_MASK);
+ output->push_escaped(iMask >> 8);
+ output->push_escaped((uint8_t)iMask);
+ output->push_back(MSGEND);