[Sound] Remove usage of deprecated native API functions 63/104563/2
authorJakub Skowron <j.skowron@samsung.com>
Wed, 14 Dec 2016 09:28:27 +0000 (10:28 +0100)
committerJakub Skowron <j.skowron@samsung.com>
Wed, 14 Dec 2016 09:28:27 +0000 (10:28 +0100)
There were pairs of deprecated callback set/unset functions
(allowing only one callback). Now using add/remove.

[Verification]
  Web TCT auto and manual sound tests 100% PASS

Change-Id: Ieea0ed977831d5aa9695388b39c5b4848ec500d1
Signed-off-by: Jakub Skowron <j.skowron@samsung.com>
src/sound/sound_manager.cc
src/sound/sound_manager.h

index d6e62025f961725b1ad455e828c2e3ab2379c686..9917c0e14fb4e041c82449cd678797af300eb8fb 100644 (file)
@@ -16,6 +16,9 @@
 
 #include "sound/sound_manager.h"
 
+#include <string>
+#include <map>
+
 #include <tizen/tizen.h>
 #include <vconf.h>
 #include <vconf-keys.h>
@@ -122,7 +125,7 @@ std::string SoundManager::SoundIOTypeToString(sound_device_io_direction_e type)
 SoundManager::SoundManager(SoundInstance& instance)
     : is_volume_change_listener_(false),
       soundModeChangeListening(false),
-      sound_device_change_listener_(false),
+      is_sound_device_change_listener_(false),
       instance_(instance),
       soundModeListener(nullptr) {
   FillMaxVolumeMap();
@@ -133,19 +136,19 @@ SoundManager::~SoundManager() {
 
   UnsetSoundModeChangeListener();
 
-  if (sound_device_change_listener_) {
-    if (SOUND_MANAGER_ERROR_NONE != sound_manager_unset_device_connected_cb()) {
-      LoggerE("Cannot unregister connection listener!");
+  if (is_sound_device_change_listener_) {
+    if (SOUND_MANAGER_ERROR_NONE != sound_manager_remove_device_connection_changed_cb(sound_device_connection_listener_id_)) {
+      LoggerE("Cannot unregister connection listener id == %d", sound_device_connection_listener_id_);
     }
 
-    if (SOUND_MANAGER_ERROR_NONE != sound_manager_unset_device_information_changed_cb()) {
-      LoggerE("Cannot unregister information listener!");
+    if (SOUND_MANAGER_ERROR_NONE != sound_manager_remove_device_state_changed_cb(sound_device_state_listener_id_)) {
+      LoggerE("Cannot unregister state listener id == %d", sound_device_state_listener_id_);
     }
   }
 
   if (is_volume_change_listener_) {
-    if (SOUND_MANAGER_ERROR_NONE != sound_manager_unset_volume_changed_cb()) {
-      LoggerE("Cannot unregister volume listener!");
+    if (SOUND_MANAGER_ERROR_NONE != sound_manager_remove_volume_changed_cb(volume_change_listener_id_)) {
+      LoggerE("Cannot unregister volume listener id == %d", volume_change_listener_id_);
     }
   }
 }
@@ -399,12 +402,14 @@ PlatformResult SoundManager::UnsetSoundModeChangeListener() {
 PlatformResult SoundManager::SetVolumeChangeListener() {
   LoggerD("Enter");
   if (!is_volume_change_listener_) {
-    int ret = sound_manager_set_volume_changed_cb(
+    int ret = sound_manager_add_volume_changed_cb(
         [](sound_type_e type, unsigned int value, void* ud) {
           return static_cast<SoundManager*>(ud)
               ->VolumeChangeCallback(type, value);
         },
-        static_cast<void*>(this));
+        static_cast<void*>(this),
+        &volume_change_listener_id_
+        );
 
     if (ret != SOUND_MANAGER_ERROR_NONE) {
       return LogAndCreateResult(
@@ -425,7 +430,7 @@ PlatformResult SoundManager::UnsetVolumeChangeListener() {
     return PlatformResult(ErrorCode::NO_ERROR);
   }
 
-  int ret = sound_manager_unset_volume_changed_cb();
+  int ret = sound_manager_remove_volume_changed_cb(volume_change_listener_id_);
   if (ret != SOUND_MANAGER_ERROR_NONE) {
     return LogAndCreateResult(
               ErrorCode::UNKNOWN_ERR, "Failed to unset volume changed callback",
@@ -617,20 +622,19 @@ void SoundManager::DeviceChangeCB(sound_device_h device, bool is_connected, bool
   }
 }
 
-void DeviceConnectionChangeCB(sound_device_h device, bool is_connected, void *user_data) {
+void DeviceConnectionChangedCB(sound_device_h device, bool is_connected, void *user_data) {
   LoggerD("Entered");
+
   SoundManager* h = static_cast<SoundManager*>(user_data);
   h->DeviceChangeCB(device, is_connected, false);
 }
 
-void DeviceActivationChangeCB(sound_device_h device, sound_device_changed_info_e changed_info,
+void DeviceStateChangedCB(sound_device_h device, sound_device_state_e unused,
                               void *user_data) {
   LoggerD("Entered");
 
-  if (SOUND_DEVICE_CHANGED_INFO_STATE == changed_info) {
-    SoundManager* h = static_cast<SoundManager*>(user_data);
-    h->DeviceChangeCB(device, false, true);
-  }
+  SoundManager* h = static_cast<SoundManager*>(user_data);
+  h->DeviceChangeCB(device, false, true);
 }
 
 PlatformResult SoundManager::AddDeviceStateChangeListener() {
@@ -639,24 +643,28 @@ PlatformResult SoundManager::AddDeviceStateChangeListener() {
   int ret = SOUND_MANAGER_ERROR_NONE;
   sound_device_mask_e mask = SOUND_DEVICE_ALL_MASK;
 
-  if (!sound_device_change_listener_) {
-    ret = sound_manager_set_device_connected_cb(mask, DeviceConnectionChangeCB, this);
+  if (!is_sound_device_change_listener_) {
+    ret = sound_manager_add_device_connection_changed_cb(mask, DeviceConnectionChangedCB,
+                                                         this, &sound_device_connection_listener_id_);
     if (SOUND_MANAGER_ERROR_NONE != ret) {
       return LogAndCreateResult(
                 ErrorCode::UNKNOWN_ERR, "Setting connection listener failed",
-                ("sound_manager_set_device_connected_cb error: %d (%s)",
+                ("sound_manager_add_device_connection_changed_cb error: %d (%s)",
                     ret, get_error_message(ret)));
     }
 
-    ret = sound_manager_set_device_information_changed_cb(mask, DeviceActivationChangeCB, this);
+    ret = sound_manager_add_device_state_changed_cb(mask, DeviceStateChangedCB,
+                                                    this, &sound_device_state_listener_id_);
     if (SOUND_MANAGER_ERROR_NONE != ret) {
+      // silently cleanup connection changed callback registered in previous step
+      sound_manager_remove_device_connection_changed_cb(sound_device_connection_listener_id_);
       return LogAndCreateResult(
-                ErrorCode::UNKNOWN_ERR, "Setting information listener failed",
-                ("sound_manager_set_device_information_changed_cb error: %d (%s)",
+                ErrorCode::UNKNOWN_ERR, "Setting state listener failed",
+                ("sound_manager_add_device_state_changed_cb error: %d (%s)",
                     ret, get_error_message(ret)));
     }
 
-    sound_device_change_listener_ = true;
+    is_sound_device_change_listener_ = true;
   }
 
   return PlatformResult(ErrorCode::NO_ERROR);
@@ -665,22 +673,22 @@ PlatformResult SoundManager::AddDeviceStateChangeListener() {
 PlatformResult SoundManager::RemoveDeviceStateChangeListener() {
   LoggerD("Entered");
 
-  if (sound_device_change_listener_) {
-    int ret = sound_manager_unset_device_connected_cb();
+  if (is_sound_device_change_listener_) {
+    int ret = sound_manager_remove_device_connection_changed_cb(sound_device_connection_listener_id_);
     if (SOUND_MANAGER_ERROR_NONE != ret) {
       return LogAndCreateResult(
-                ErrorCode::UNKNOWN_ERR, "Unsetting information listener failed",
-                ("sound_manager_unset_device_connected_cb error: %d (%s)", ret, get_error_message(ret)));
+                ErrorCode::UNKNOWN_ERR, "Removing connection listener failed",
+                ("sound_manager_remove_device_connection_changed_cb error: %d (%s)", ret, get_error_message(ret)));
     }
 
-    ret = sound_manager_unset_device_information_changed_cb();
+    ret = sound_manager_remove_device_state_changed_cb(sound_device_state_listener_id_);
     if (SOUND_MANAGER_ERROR_NONE != ret) {
       return LogAndCreateResult(
-                ErrorCode::UNKNOWN_ERR, "Unsetting information listener failed",
-                ("sound_manager_unset_device_information_changed_cb error: %d (%s)", ret, get_error_message(ret)));
+                ErrorCode::UNKNOWN_ERR, "Removing state listener failed",
+                ("sound_manager_remove_device_state_changed_cb error: %d (%s)", ret, get_error_message(ret)));
     }
 
-    sound_device_change_listener_ = false;
+    is_sound_device_change_listener_ = false;
   }
 
   return PlatformResult(ErrorCode::NO_ERROR);
index b0319a38a36a5651172f801bad3fb0034e8dc5e6..bb019bc45350b35d02d80328c3f9be6916aa771b 100644 (file)
@@ -57,6 +57,7 @@ class SoundManager {
 
   std::map<sound_type_e, int> max_volume_map_;
   bool is_volume_change_listener_;
+  int volume_change_listener_id_;
 
   static const std::map<std::string, sound_type_e> platform_enum_map_;
 
@@ -81,7 +82,9 @@ class SoundManager {
   static double ConvertToSystemVolume(int max_volume, int volume);
   static void soundModeChangedCb(keynode_t* node, void* user_data);
   bool soundModeChangeListening;
-  bool sound_device_change_listener_;
+  bool is_sound_device_change_listener_;
+  int sound_device_connection_listener_id_;
+  int sound_device_state_listener_id_;
   SoundInstance& instance_;
   SoundManagerSoundModeChangedListener* soundModeListener;
 };