X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FUSBCECAdapterMessage.h;h=4ff920a9060c8883b5461b4db289359ad463a256;hb=e69d8f191784c77c156ffec90db50767f91421e3;hp=169c115dc4fdef55ca8b34637e3951ec089e36cb;hpb=7bb4ed43f15a0fa2be17d2c3f580b181ac7430a7;p=deb_libcec.git diff --git a/src/lib/adapter/USBCECAdapterMessage.h b/src/lib/adapter/USBCECAdapterMessage.h index 169c115..4ff920a 100644 --- a/src/lib/adapter/USBCECAdapterMessage.h +++ b/src/lib/adapter/USBCECAdapterMessage.h @@ -38,7 +38,8 @@ namespace CEC class CCECAdapterMessage { public: - CCECAdapterMessage(void) + CCECAdapterMessage(void) : + event(false) { Clear(); } @@ -108,7 +109,7 @@ namespace CEC } else { - strMsg = MessageCodeAsString(); + strMsg = ToString(Message()); switch (Message()) { @@ -138,89 +139,97 @@ namespace CEC return strMsg; } - CStdString MessageCodeAsString(void) const + static const char *ToString(cec_adapter_messagecode msgCode) { - CStdString strMsg; - switch (Message()) + switch (msgCode) { case MSGCODE_NOTHING: - strMsg = "NOTHING"; - break; + return "NOTHING"; case MSGCODE_PING: - strMsg = "PING"; - break; + return "PING"; case MSGCODE_TIMEOUT_ERROR: - strMsg = "TIMEOUT"; - break; + return "TIMEOUT"; case MSGCODE_HIGH_ERROR: - strMsg = "HIGH_ERROR"; - break; + return "HIGH_ERROR"; case MSGCODE_LOW_ERROR: - strMsg = "LOW_ERROR"; - break; + return "LOW_ERROR"; case MSGCODE_FRAME_START: - strMsg = "FRAME_START"; - break; + return "FRAME_START"; case MSGCODE_FRAME_DATA: - strMsg = "FRAME_DATA"; - break; + return "FRAME_DATA"; case MSGCODE_RECEIVE_FAILED: - strMsg = "RECEIVE_FAILED"; - break; + return "RECEIVE_FAILED"; case MSGCODE_COMMAND_ACCEPTED: - strMsg = "COMMAND_ACCEPTED"; - break; + return "COMMAND_ACCEPTED"; case MSGCODE_COMMAND_REJECTED: - strMsg = "COMMAND_REJECTED"; - break; + return "COMMAND_REJECTED"; case MSGCODE_SET_ACK_MASK: - strMsg = "SET_ACK_MASK"; - break; + return "SET_ACK_MASK"; case MSGCODE_TRANSMIT: - strMsg = "TRANSMIT"; - break; + return "TRANSMIT"; case MSGCODE_TRANSMIT_EOM: - strMsg = "TRANSMIT_EOM"; - break; + return "TRANSMIT_EOM"; case MSGCODE_TRANSMIT_IDLETIME: - strMsg = "TRANSMIT_IDLETIME"; - break; + return "TRANSMIT_IDLETIME"; case MSGCODE_TRANSMIT_ACK_POLARITY: - strMsg = "TRANSMIT_ACK_POLARITY"; - break; + return "TRANSMIT_ACK_POLARITY"; case MSGCODE_TRANSMIT_LINE_TIMEOUT: - strMsg = "TRANSMIT_LINE_TIMEOUT"; - break; + return "TRANSMIT_LINE_TIMEOUT"; case MSGCODE_TRANSMIT_SUCCEEDED: - strMsg = "TRANSMIT_SUCCEEDED"; - break; + return "TRANSMIT_SUCCEEDED"; case MSGCODE_TRANSMIT_FAILED_LINE: - strMsg = "TRANSMIT_FAILED_LINE"; - break; + return "TRANSMIT_FAILED_LINE"; case MSGCODE_TRANSMIT_FAILED_ACK: - strMsg = "TRANSMIT_FAILED_ACK"; - break; + return "TRANSMIT_FAILED_ACK"; case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA: - strMsg = "TRANSMIT_FAILED_TIMEOUT_DATA"; - break; + return "TRANSMIT_FAILED_TIMEOUT_DATA"; case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE: - strMsg = "TRANSMIT_FAILED_TIMEOUT_LINE"; - break; + return "TRANSMIT_FAILED_TIMEOUT_LINE"; case MSGCODE_FIRMWARE_VERSION: - strMsg = "FIRMWARE_VERSION"; - break; + return "FIRMWARE_VERSION"; case MSGCODE_START_BOOTLOADER: - strMsg = "START_BOOTLOADER"; - break; + return "START_BOOTLOADER"; case MSGCODE_FRAME_EOM: - strMsg = "FRAME_EOM"; - break; + return "FRAME_EOM"; case MSGCODE_FRAME_ACK: - strMsg = "FRAME_ACK"; - break; + return "FRAME_ACK"; + case MSGCODE_SET_POWERSTATE: + return "SET_POWERSTATE"; + case MSGCODE_SET_CONTROLLED: + return "SET_CONTROLLED"; + case MSGCODE_GET_AUTO_ENABLED: + return "GET_AUTO_ENABLED"; + case MSGCODE_SET_AUTO_ENABLED: + return "SET_AUTO_ENABLED"; + case MSGCODE_GET_DEFAULT_LOGICAL_ADDRESS: + return "GET_DEFAULT_LOGICAL_ADDRESS"; + case MSGCODE_SET_DEFAULT_LOGICAL_ADDRESS: + return "SET_DEFAULT_LOGICAL_ADDRESS"; + case MSGCODE_GET_LOGICAL_ADDRESS_MASK: + return "GET_LOGICAL_ADDRESS_MASK"; + case MSGCODE_SET_LOGICAL_ADDRESS_MASK: + return "SET_LOGICAL_ADDRESS_MASK"; + case MSGCODE_GET_PHYSICAL_ADDRESS: + return "GET_PHYSICAL_ADDRESS"; + case MSGCODE_SET_PHYSICAL_ADDRESS: + return "SET_PHYSICAL_ADDRESS"; + case MSGCODE_GET_DEVICE_TYPE: + return "GET_DEVICE_TYPE"; + case MSGCODE_SET_DEVICE_TYPE: + return "SET_DEVICE_TYPE"; + case MSGCODE_GET_HDMI_VERSION: + return "GET_HDMI_VERSION"; + case MSGCODE_SET_HDMI_VERSION: + return "SET_HDMI_VERSION"; + case MSGCODE_GET_OSD_NAME: + return "GET_OSD_NAME"; + case MSGCODE_SET_OSD_NAME: + return "SET_OSD_NAME"; + case MSGCODE_WRITE_EEPROM: + return "WRITE_EEPROM"; } - return strMsg; + return "unknown"; } uint8_t operator[](uint8_t pos) const @@ -262,6 +271,17 @@ namespace CEC packet.Shift(iShiftBy); } + void Append(CCECAdapterMessage &data) + { + Append(data.packet); + } + + void Append(cec_datapacket &data) + { + for (uint8_t iPtr = 0; iPtr < data.size; iPtr++) + PushBack(data[iPtr]); + } + void PushBack(uint8_t add) { packet.PushBack(add); @@ -340,17 +360,16 @@ namespace CEC CECDEVICE_UNKNOWN; } - uint8_t maxTries; - uint8_t tries; - cec_adapter_messagecode reply; - cec_datapacket packet; - cec_adapter_message_state state; - int32_t transmit_timeout; - bool isTransmission; - bool expectControllerAck; - uint8_t lineTimeout; - uint8_t retryTimeout; - PLATFORM::CMutex mutex; - PLATFORM::CCondition condition; + uint8_t maxTries; + uint8_t tries; + cec_adapter_messagecode reply; + cec_datapacket packet; + cec_adapter_message_state state; + int32_t transmit_timeout; + bool isTransmission; + bool expectControllerAck; + uint8_t lineTimeout; + uint8_t retryTimeout; + PLATFORM::CEvent event; }; }