Fix invalid signature of mm_sound_get_device_by_id 34/132134/2
authorJeongho Mok <jho.mok@samsung.com>
Thu, 1 Jun 2017 07:06:12 +0000 (16:06 +0900)
committerJeongho Mok <jho.mok@samsung.com>
Thu, 1 Jun 2017 07:41:03 +0000 (16:41 +0900)
[Version] 0.11.4
[Profile] Common
[Issue Type] Enhancement

Change-Id: I7ffd3ae656937012110ae82e90d505285fa2e6e6

include/mm_sound.h
mm_sound_device.c
packaging/libmm-sound.spec
testsuite/mm_sound_testsuite_simple.c

index 67deb68..adb0986 100644 (file)
@@ -1019,9 +1019,11 @@ int mm_sound_remove_device_state_changed_callback(unsigned int id);
 
 int mm_sound_get_current_device_list(mm_sound_device_flags_e device_mask, MMSoundDeviceList_t *device_list);
 int mm_sound_get_device_list(int device_mask, MMSoundDeviceList_t *device_list);
-int mm_sound_get_device_by_id(int device_id, MMSoundDevice_t **device);
+/* Free this device handle with mm_sound_free_device */
+int mm_sound_get_device_by_id(int device_id, MMSoundDevice_t *device);
 int mm_sound_free_device_list(MMSoundDeviceList_t device_list);
-int mm_sound_free_device(MMSoundDevice_t *device);
+/* Use this only for the device handle which got from mm_sound_get_device_by_id */
+int mm_sound_free_device(MMSoundDevice_t device_h);
 int mm_sound_get_next_device (MMSoundDeviceList_t device_list, MMSoundDevice_t *device);
 int mm_sound_get_prev_device (MMSoundDeviceList_t device_list, MMSoundDevice_t *device);
 int mm_sound_get_device_type(MMSoundDevice_t device_h, mm_sound_device_type_e *type);
index 9073281..fc72e58 100644 (file)
@@ -287,26 +287,30 @@ int mm_sound_free_device_list(MMSoundDeviceList_t device_list)
 }
 
 EXPORT_API
-int mm_sound_free_device(MMSoundDevice_t *device)
+int mm_sound_free_device(MMSoundDevice_t device_h)
 {
-       if (device == NULL)
+       if (device_h == NULL)
                return MM_ERROR_INVALID_ARGUMENT;
-       g_free(device);
+
+       g_free(device_h);
 
        return MM_ERROR_NONE;
 }
 
 EXPORT_API
-int mm_sound_get_device_by_id(int device_id, MMSoundDevice_t **device)
+int mm_sound_get_device_by_id(int device_id, MMSoundDevice_t *device_h)
 {
        int ret = MM_ERROR_NONE;
+       mm_sound_device_t *device = NULL;
 
-       if (device_id < 1 || device == NULL)
+       if (device_id < 1 || device_h == NULL)
                return MM_ERROR_INVALID_ARGUMENT;
 
-       ret = mm_sound_client_get_device_by_id(device_id, (mm_sound_device_t**)device);
+       ret = mm_sound_client_get_device_by_id(device_id, &device);
        if (ret < 0)
                debug_error("Could not get device by id, ret = %x\n", ret);
+       else
+               *device_h = device;
 
        return ret;
 }
index 417f274..75278db 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-sound
 Summary:    MMSound Package contains client lib and sound_server binary
-Version:    0.11.3
+Version:    0.11.4
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 554976e..c68fa35 100755 (executable)
@@ -1393,6 +1393,10 @@ static void interpret (char *cmd)
                                } else {
                                        g_print("failed to mm_sound_get_device_by_id()\n");
                                }
+
+                               ret = mm_sound_free_device(device_h);
+                               if (ret)
+                                       g_print("failed to mm_sound_free_device()\n");
                        } else {
                                g_print("### fgets return  NULL\n");
                        }