fixed typo in the changelog version
[deb_libcec.git] / src / lib / LibCECC.cpp
index d062dff9357f39ccdd76b6156eee1663a3ac58f2..938e0b716daa571893ea52f45f96e17f7ca3f9cf 100644 (file)
@@ -42,12 +42,18 @@ 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;
 }
 
+int cec_init_typed(const char *strDeviceName, cec_device_type_list devicesTypes)
+{
+  cec_parser = (ICECAdapter *) CECInit(strDeviceName, devicesTypes);
+  return (cec_parser != NULL) ? 1 : 0;
+}
+
 void cec_destroy(void)
 {
   cec_close();
@@ -92,14 +98,21 @@ int cec_start_bootloader(void)
 int8_t cec_get_min_version(void)
 {
   if (cec_parser)
-    return cec_parser->GetMinVersion();
+    return cec_parser->GetMinLibVersion();
   return -1;
 }
 
-int8_t cec_get_lib_version(void)
+int8_t cec_get_lib_version_major(void)
 {
   if (cec_parser)
-    return cec_parser->GetLibVersion();
+    return cec_parser->GetLibVersionMajor();
+  return -1;
+}
+
+int8_t cec_get_lib_version_minor(void)
+{
+  if (cec_parser)
+    return cec_parser->GetLibVersionMinor();
   return -1;
 }
 
@@ -124,10 +137,10 @@ int cec_get_next_command(cec_command *command)
   return -1;
 }
 
-int cec_transmit(const CEC::cec_command &data, int bWaitForAck /* = true */)
+int cec_transmit(const CEC::cec_command *data)
 {
   if (cec_parser)
-    return cec_parser->Transmit(data, bWaitForAck == 1) ? 1 : 0;
+    return cec_parser->Transmit(*data) ? 1 : 0;
   return -1;
 }
 
@@ -166,6 +179,26 @@ 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_deck_control_mode(cec_deck_control_mode mode, int bSendUpdate) {
+  if (cec_parser)
+    return cec_parser->SetDeckControlMode(mode, bSendUpdate == 1) ? 1 : 0;
+  return -1;
+}
+
+int cec_set_deck_info(cec_deck_info info, int bSendUpdate) {
+  if (cec_parser)
+    return cec_parser->SetDeckInfo(info, bSendUpdate == 1) ? 1 : 0;
+  return -1;
+
+}
+
 int cec_set_inactive_view(void)
 {
   if (cec_parser)
@@ -173,6 +206,12 @@ int cec_set_inactive_view(void)
   return -1;
 }
 
+int cec_set_menu_state(cec_menu_state state, int bSendUpdate) {
+  if (cec_parser)
+    return cec_parser->SetMenuState(state, bSendUpdate == 1) ? 1 : 0;
+  return -1;
+}
+
 int cec_set_osd_string(cec_logical_address iLogicalAddress, cec_display_control duration, const char *strMessage)
 {
   if (cec_parser)
@@ -180,4 +219,149 @@ int cec_set_osd_string(cec_logical_address iLogicalAddress, cec_display_control
   return -1;
 }
 
+int cec_switch_monitoring(int bEnable)
+{
+  if (cec_parser)
+    return cec_parser->SwitchMonitoring(bEnable == 1) ? 1 : 0;
+  return -1;
+}
+
+cec_version cec_get_device_cec_version(cec_logical_address iLogicalAddress)
+{
+  if (cec_parser)
+    return cec_parser->GetDeviceCecVersion(iLogicalAddress);
+  return CEC_VERSION_UNKNOWN;
+}
+
+int cec_get_device_menu_language(cec_logical_address iLogicalAddress, cec_menu_language *language)
+{
+  if (cec_parser)
+    return cec_parser->GetDeviceMenuLanguage(iLogicalAddress, language) ? 1 : 0;
+  return -1;
+}
+
+uint64_t cec_get_device_vendor_id(cec_logical_address iLogicalAddress)
+{
+  if (cec_parser)
+    return cec_parser->GetDeviceVendorId(iLogicalAddress);
+  return 0;
+}
+
+uint16_t cec_get_device_physical_address(cec_logical_address iLogicalAddress)
+{
+  if (cec_parser)
+    return cec_parser->GetDevicePhysicalAddress(iLogicalAddress);
+  return 0;
+}
+
+cec_logical_address cec_get_active_source(void)
+{
+  if (cec_parser)
+    return cec_parser->GetActiveSource();
+  return CECDEVICE_UNKNOWN;
+}
+
+int cec_is_active_source(cec_logical_address iAddress)
+{
+  if (cec_parser)
+    return cec_parser->IsActiveSource(iAddress);
+  return false;
+}
+
+cec_power_status cec_get_device_power_status(cec_logical_address iLogicalAddress)
+{
+  if (cec_parser)
+    return cec_parser->GetDevicePowerStatus(iLogicalAddress);
+  return CEC_POWER_STATUS_UNKNOWN;
+}
+
+int cec_poll_device(cec_logical_address iLogicalAddress)
+{
+  if (cec_parser)
+    return cec_parser->PollDevice(iLogicalAddress) ? 1 : 0;
+  return -1;
+}
+
+cec_logical_addresses cec_get_active_devices(void)
+{
+  cec_logical_addresses addresses;
+  addresses.Clear();
+  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;
+}
+
+int cec_set_hdmi_port(cec_logical_address iBaseDevice, uint8_t iPort)
+{
+  if (cec_parser)
+    return cec_parser->SetHDMIPort(iBaseDevice, iPort) ? 1 : 0;
+  return -1;
+}
+
+int cec_volume_up(int bWait)
+{
+  if (cec_parser)
+    return cec_parser->VolumeUp(bWait == 1);
+  return -1;
+}
+
+int cec_volume_down(int bWait)
+{
+  if (cec_parser)
+    return cec_parser->VolumeDown(bWait == 1);
+  return -1;
+}
+
+int cec_mute_audio(int bWait)
+{
+  if (cec_parser)
+    return cec_parser->MuteAudio(bWait == 1);
+  return -1;
+}
+
+int cec_send_keypress(cec_logical_address iDestination, cec_user_control_code key, int bWait)
+{
+  if (cec_parser)
+    return cec_parser->SendKeypress(iDestination, key, bWait == 1) ? 1 : 0;
+  return -1;
+}
+
+int cec_send_key_release(cec_logical_address iDestination, int bWait)
+{
+  if (cec_parser)
+    return cec_parser->SendKeyRelease(iDestination, bWait == 1) ? 1 : 0;
+  return -1;
+}
+
+cec_osd_name cec_get_device_osd_name(cec_logical_address iAddress)
+{
+  cec_osd_name retVal;
+  retVal.device = iAddress;
+  retVal.name[0] = 0;
+
+  if (cec_parser)
+    retVal = cec_parser->GetDeviceOSDName(iAddress);
+
+  return retVal;
+}
+
+int cec_enable_physical_address_detection(void)
+{
+  return cec_parser ? (cec_parser->EnablePhysicalAddressDetection() ? 1 : 0) : -1;
+}
+
 //@}