MCPcopy Create free account
hub / github.com/Pulse-Eight/libcec / IsResponse

Method IsResponse

src/libcec/adapter/Pulse-Eight/USBCECAdapterMessageQueue.cpp:134–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132}
133
134bool CCECAdapterMessageQueueEntry::IsResponse(const CCECAdapterMessage &msg)
135{
136 if (m_message->state == ADAPTER_MESSAGE_STATE_SENT_ACKED)
137 return false;
138
139 cec_adapter_messagecode thisMsgCode = m_message->Message();
140 cec_adapter_messagecode msgCode = msg.Message();
141 cec_adapter_messagecode msgResponse = msg.ResponseTo();
142
143 // msgcode matches, always a response
144 if (msgCode == MessageCode())
145 return true;
146
147 if (!ProvidesExtendedResponse())
148 return IsResponseOld(msg);
149
150 // response without a msgcode
151 if (msgResponse == MSGCODE_NOTHING)
152 return false;
153
154 // commands that only repond with accepted/rejected
155 if (thisMsgCode == MSGCODE_PING ||
156 thisMsgCode == MSGCODE_SET_ACK_MASK ||
157 thisMsgCode == MSGCODE_SET_CONTROLLED ||
158 thisMsgCode == MSGCODE_SET_AUTO_ENABLED ||
159 thisMsgCode == MSGCODE_SET_DEFAULT_LOGICAL_ADDRESS ||
160 thisMsgCode == MSGCODE_SET_LOGICAL_ADDRESS_MASK ||
161 thisMsgCode == MSGCODE_SET_PHYSICAL_ADDRESS ||
162 thisMsgCode == MSGCODE_SET_DEVICE_TYPE ||
163 thisMsgCode == MSGCODE_SET_HDMI_VERSION ||
164 thisMsgCode == MSGCODE_SET_OSD_NAME ||
165 thisMsgCode == MSGCODE_WRITE_EEPROM ||
166 thisMsgCode == MSGCODE_TRANSMIT_IDLETIME ||
167 thisMsgCode == MSGCODE_SET_ACTIVE_SOURCE ||
168 thisMsgCode == MSGCODE_SET_AUTO_POWER_ON)
169 return thisMsgCode == msgResponse;
170
171 if (!m_message->IsTransmission())
172 return false;
173
174 return ((msgCode == MSGCODE_COMMAND_ACCEPTED || msgCode == MSGCODE_COMMAND_REJECTED) &&
175 (msgResponse == MSGCODE_TRANSMIT_ACK_POLARITY || msgResponse == MSGCODE_TRANSMIT || msgResponse == MSGCODE_TRANSMIT_EOM)) ||
176 msgCode == MSGCODE_TIMEOUT_ERROR ||
177 msgCode == MSGCODE_RECEIVE_FAILED ||
178 msgCode == MSGCODE_TRANSMIT_FAILED_ACK ||
179 msgCode == MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA ||
180 msgCode == MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE ||
181 msgCode == MSGCODE_TRANSMIT_SUCCEEDED;
182}
183
184const char *CCECAdapterMessageQueueEntry::ToString(void) const
185{

Callers

nothing calls this directly

Calls 3

MessageMethod · 0.80
ResponseToMethod · 0.80
IsTransmissionMethod · 0.80

Tested by

no test coverage detected