cec: sync win32
[deb_libcec.git] / src / lib / adapter / AdapterMessage.h
index 4fadbed97cb19198312bc894702ff35a96f0a725..8e8c965b1e21636d7f2a1e1b04e6d92c8bb1c710 100644 (file)
  *     http://www.pulse-eight.net/
  */
 
+#include "../platform/util/StdString.h"
+
 namespace CEC
 {
   typedef enum cec_adapter_message_state
   {
     ADAPTER_MESSAGE_STATE_UNKNOWN = 0,
-    ADAPTER_MESSAGE_STATE_WAITING,
+    ADAPTER_MESSAGE_STATE_WAITING_TO_BE_SENT,
     ADAPTER_MESSAGE_STATE_SENT,
-    ADAPTER_MESSAGE_STATE_RECEIVED,
+    ADAPTER_MESSAGE_STATE_SENT_NOT_ACKED,
+    ADAPTER_MESSAGE_STATE_SENT_ACKED,
+    ADAPTER_MESSAGE_STATE_INCOMING,
     ADAPTER_MESSAGE_STATE_ERROR
   } cec_adapter_message_state;
 
@@ -97,6 +101,7 @@ namespace CEC
 
       // set timeout
       transmit_timeout = command.transmit_timeout;
+      //TODO
     }
 
     CCECAdapterMessage &operator=(const CCECAdapterMessage &msg)
@@ -252,12 +257,14 @@ namespace CEC
 
     void Clear(void)
     {
-      state = ADAPTER_MESSAGE_STATE_UNKNOWN;
-      transmit_timeout = 0;
+      state               = ADAPTER_MESSAGE_STATE_UNKNOWN;
+      transmit_timeout    = CEC_DEFAULT_TRANSMIT_TIMEOUT;
       packet.Clear();
-      maxTries = CEC_DEFAULT_TRANSMIT_RETRIES + 1;
-      tries = 0;
-      reply = MSGCODE_NOTHING;
+      maxTries            = CEC_DEFAULT_TRANSMIT_RETRIES + 1;
+      tries               = 0;
+      reply               = MSGCODE_NOTHING;
+      isTransmission      = true;
+      expectControllerAck = true;
     }
 
     void Shift(uint8_t iShiftBy)
@@ -349,6 +356,8 @@ namespace CEC
     cec_datapacket            packet;
     cec_adapter_message_state state;
     int32_t                   transmit_timeout;
+    bool                      isTransmission;
+    bool                      expectControllerAck;
     PLATFORM::CMutex          mutex;
     PLATFORM::CCondition      condition;
   };