X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcectypes.h;h=188e7de8df1402a121df919e9d7c16bca6e34c27;hb=a8919ed7f926bd101a4977b2e8b9598b84f65b45;hp=df9af817ef303b8aa3d4c10bc237395b05d4fbdc;hpb=0500da96dfbf6f09aabb944b4127b5d2ea1b076f;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index df9af81..188e7de 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -599,6 +599,15 @@ typedef struct cec_datapacket uint8_t size; #ifdef __cplusplus + cec_datapacket &operator =(const struct cec_datapacket &packet) + { + clear(); + for (uint8_t iPtr = 0; iPtr < packet.size; iPtr++) + push_back(packet[iPtr]); + + return *this; + } + bool empty(void) const { return size == 0; } bool full(void) const { return size == 100; } uint8_t operator[](uint8_t pos) const { return pos < size ? data[pos] : 0; } @@ -642,17 +651,30 @@ typedef struct cec_command cec_opcode opcode; cec_datapacket parameters; int8_t opcode_set; - int32_t ack_timeout; + int32_t transmit_timeout; #ifdef __cplusplus + cec_command &operator =(const struct cec_command &command) + { + initiator = command.initiator; + destination = command.destination; + ack = command.ack; + eom = command.eom; + opcode = command.opcode; + opcode_set = command.opcode_set; + transmit_timeout = command.transmit_timeout; + parameters = command.parameters; + + return *this; + } + static void format(cec_command &command, cec_logical_address initiator, cec_logical_address destination, cec_opcode opcode) { command.clear(); - command.initiator = initiator; - command.destination = destination; - command.opcode = opcode; - command.opcode_set = 1; - command.ack_timeout = 1000; + command.initiator = initiator; + command.destination = destination; + command.opcode = opcode; + command.opcode_set = 1; } void push_back(uint8_t data) @@ -673,13 +695,13 @@ typedef struct cec_command void clear(void) { - initiator = CECDEVICE_UNKNOWN; - destination = CECDEVICE_UNKNOWN; - ack = 0; - eom = 0; - opcode_set = 0; - opcode = CEC_OPCODE_FEATURE_ABORT; - ack_timeout = 1000; + initiator = CECDEVICE_UNKNOWN; + destination = CECDEVICE_UNKNOWN; + ack = 0; + eom = 0; + opcode_set = 0; + opcode = CEC_OPCODE_FEATURE_ABORT; + transmit_timeout = 1000; parameters.clear(); }; #endif @@ -716,9 +738,11 @@ typedef struct cec_vendor #define MSGEND 0xFE #define MSGESC 0xFD #define ESCOFFSET 3 +#define CEC_BUTTON_TIMEOUT 500 + #define CEC_MIN_VERSION 8 #define CEC_LIB_VERSION 8 -#define CEC_BUTTON_TIMEOUT 500 +#define CEC_LIB_VERSION_MINOR 1 #ifdef __cplusplus };