//@{
ICECDevice *cec_parser;
-bool cec_init(const char *strDeviceName)
+bool cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress /* = CECDEVICE_PLAYBACKDEVICE1 */, int iPhysicalAddress /* = CEC_DEFAULT_PHYSICAL_ADDRESS */)
{
- cec_parser = (ICECDevice *) CECCreate(strDeviceName);
+ cec_parser = (ICECDevice *) CECCreate(strDeviceName, iLogicalAddress, iPhysicalAddress);
return (cec_parser != NULL);
}
-bool cec_close(void)
+void cec_destroy(void)
{
+ cec_close();
delete cec_parser;
cec_parser = NULL;
- return true;
}
bool cec_open(const char *strPort, int iTimeout)
return false;
}
+void cec_close(void)
+{
+ if (cec_parser)
+ cec_parser->Close();
+}
+
bool cec_ping(void)
{
if (cec_parser)
return false;
}
-bool cec_transmit(const CEC::cec_frame &data, bool bWaitForAck /* = true */, int64_t iTimeout /* = 2000 */)
+bool cec_get_next_command(cec_command *command)
+{
+ if (cec_parser)
+ return cec_parser->GetNextCommand(command);
+ return false;
+}
+
+bool cec_transmit(const CEC::cec_frame &data, bool bWaitForAck /* = true */)
+{
+ if (cec_parser)
+ return cec_parser->Transmit(data, bWaitForAck);
+ return false;
+}
+
+bool cec_set_logical_address(cec_logical_address iLogicalAddress)
{
if (cec_parser)
- return cec_parser->Transmit(data, bWaitForAck, iTimeout);
+ return cec_parser->SetLogicalAddress(iLogicalAddress);
return false;
}
-bool cec_set_ack_mask(uint16_t ackmask)
+bool cec_set_ack_mask(uint16_t iMask)
{
if (cec_parser)
- return cec_parser->SetAckMask((cec_logical_address) ackmask);
+ return cec_parser->SetAckMask(iMask);
return false;
}