cec: fixed - don't report a changed physical address when it hasn't changed
[deb_libcec.git] / src / lib / LibCECC.cpp
index a2e58c509434ce5a4fb37a8408b15b306bcec340..ec703f2d69ba6c178fb3365f012b8d91977c1195 100644 (file)
@@ -42,7 +42,7 @@ using namespace std;
 //@{
 ICECAdapter *cec_parser;
 
-int cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress /* = CECDEVICE_PLAYBACKDEVICE1 */, uint8_t iPhysicalAddress /* = CEC_DEFAULT_PHYSICAL_ADDRESS */)
+int cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress, uint16_t iPhysicalAddress)
 {
   cec_parser = (ICECAdapter *) CECCreate(strDeviceName, iLogicalAddress, iPhysicalAddress);
   return (cec_parser != NULL) ? 1 : 0;
@@ -137,10 +137,10 @@ int cec_get_next_command(cec_command *command)
   return -1;
 }
 
-int cec_transmit(const CEC::cec_command &data)
+int cec_transmit(const CEC::cec_command *data)
 {
   if (cec_parser)
-    return cec_parser->Transmit(data) ? 1 : 0;
+    return cec_parser->Transmit(*data) ? 1 : 0;
   return -1;
 }
 
@@ -179,6 +179,13 @@ int cec_set_active_view(void)
   return -1;
 }
 
+int cec_set_active_source(cec_device_type type)
+{
+  if (cec_parser)
+    return cec_parser->SetActiveSource(type) ? 1 : 0;
+  return -1;
+}
+
 int cec_set_inactive_view(void)
 {
   if (cec_parser)
@@ -231,7 +238,29 @@ cec_power_status cec_get_device_power_status(cec_logical_address iLogicalAddress
 int cec_poll_device(cec_logical_address iLogicalAddress)
 {
   if (cec_parser)
-    return cec_parser->PollDevice(iLogicalAddress);
+    return cec_parser->PollDevice(iLogicalAddress) ? 1 : 0;
+  return -1;
+}
+
+cec_logical_addresses cec_get_active_devices(void)
+{
+  cec_logical_addresses addresses;
+  if (cec_parser)
+    addresses = cec_parser->GetActiveDevices();
+  return addresses;
+}
+
+int cec_is_active_device(cec_logical_address iAddress)
+{
+  if (cec_parser)
+    return cec_parser->IsActiveDevice(iAddress) ? 1 : 0;
+  return -1;
+}
+
+int cec_is_active_device_type(cec_device_type type)
+{
+  if (cec_parser)
+    return cec_parser->IsActiveDeviceType(type) ? 1 : 0;
   return -1;
 }