Fix codes to return valid error type in sound_manager_private.c 41/47141/3 tizen_3.0.m1_mobile tizen_3.0.m1_tv accepted/tizen/mobile/20150901.002032 accepted/tizen/tv/20150901.002050 accepted/tizen/wearable/20150901.002101 submit/tizen/20150831.082013 submit/tizen_common/20151023.083358 submit/tizen_common/20151026.085049 tizen_3.0.m1_mobile_release tizen_3.0.m1_tv_release tizen_3.0.m2.a1_mobile_release tizen_3.0.m2.a1_tv_release
authorSangchul Lee <sc11.lee@samsung.com>
Mon, 31 Aug 2015 07:27:45 +0000 (16:27 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Mon, 31 Aug 2015 07:47:25 +0000 (16:47 +0900)
[Version] Release 0.3.20
[profile] Common
[Issue Type] Fix bug

Change-Id: I628268b8b061335d3da48b11da89ea20f1a0a75d

include/sound_manager_private.h
packaging/capi-media-sound-manager.spec
src/sound_manager_private.c

index 7ed7e8a45d8e202bab9690cb920e795f3c570a74..00d20d22e96027055ce81b62a1484953b38f5f75 100644 (file)
@@ -48,7 +48,7 @@ extern "C"
     { LOGE("[%s] %s(0x%08x)",__FUNCTION__, msg,error); return error;}; \
 
 #define SM_INSTANCE_CHECK(handle)   \
-        _CHECK_CONDITION(handle != NULL, SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
+        _CHECK_CONDITION(handle != NULL,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
 
 #define SM_NULL_ARG_CHECK(arg)      \
         _CHECK_CONDITION(arg != NULL,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
@@ -60,6 +60,15 @@ extern "C"
         _CHECK_CONDITION(arg <= max,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER") \
         _CHECK_CONDITION(arg >= min,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
 
+#define SM_INSTANCE_CHECK_FOR_PRIV(handle)   \
+        _CHECK_CONDITION(handle != NULL,MM_ERROR_INVALID_ARGUMENT,"MM_ERROR_INVALID_ARGUMENT")
+
+#define SM_NULL_ARG_CHECK_FOR_PRIV(arg)      \
+        _CHECK_CONDITION(arg != NULL,MM_ERROR_INVALID_ARGUMENT,"MM_ERROR_INVALID_ARGUMENT")
+
+#define SM_STATE_CHECK_FOR_PRIV(handle,expected_state)       \
+        _CHECK_CONDITION(handle->state == expected_state,MM_ERROR_SOUND_INVALID_STATE,"MM_ERROR_SOUND_INVALID_STATE")
+
 #define SM_ENTER_CRITICAL_SECTION_WITH_RETURN(x_mutex,x_return) \
 switch ( pthread_mutex_lock( x_mutex ) ) \
 { \
index 919b0d421e46b679e49739960b51a90994cf13df..29642cd1ee9811ed6dc9831c8fbf4da4cab7dcc7 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-sound-manager
 Summary:    Sound Manager library
-Version:    0.3.19
+Version:    0.3.20
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 61245563fd9a0d1e848c7e9290d2a21590a08f9b..617f9942e90352236a14c72be471572a698cbfd7 100644 (file)
@@ -183,8 +183,8 @@ int _convert_stream_type_to_change_reason (const char *stream_type, sound_stream
 {
        int ret = MM_ERROR_NONE;
 
-       SM_NULL_ARG_CHECK(stream_type);
-       SM_NULL_ARG_CHECK(change_reason);
+       SM_NULL_ARG_CHECK_FOR_PRIV(stream_type);
+       SM_NULL_ARG_CHECK_FOR_PRIV(change_reason);
 
        if (!strncmp(stream_type, "media", SOUND_STREAM_TYPE_LEN) ||
                !strncmp(stream_type, "radio", SOUND_STREAM_TYPE_LEN) ||
@@ -230,8 +230,8 @@ static int _convert_stream_type_to_interrupt_reason (const char *stream_type, so
 {
        int ret = MM_ERROR_NONE;
 
-       SM_NULL_ARG_CHECK(stream_type);
-       SM_NULL_ARG_CHECK(change_reason);
+       SM_NULL_ARG_CHECK_FOR_PRIV(stream_type);
+       SM_NULL_ARG_CHECK_FOR_PRIV(change_reason);
 
        if (!strncmp(stream_type, "media", SOUND_STREAM_TYPE_LEN) ||
                !strncmp(stream_type, "radio", SOUND_STREAM_TYPE_LEN) ||
@@ -268,7 +268,7 @@ int _convert_sound_type (sound_type_e sound_type, const char **volume_type)
 {
        int ret = MM_ERROR_NONE;
 
-       SM_NULL_ARG_CHECK(volume_type);
+       SM_NULL_ARG_CHECK_FOR_PRIV(volume_type);
 
        switch (sound_type) {
        case SOUND_TYPE_SYSTEM:
@@ -305,8 +305,8 @@ int _convert_sound_type_to_enum (char *sound_type, sound_type_e *sound_type_enum
 {
        int ret = MM_ERROR_NONE;
 
-       SM_NULL_ARG_CHECK(sound_type);
-       SM_NULL_ARG_CHECK(sound_type_enum);
+       SM_NULL_ARG_CHECK_FOR_PRIV(sound_type);
+       SM_NULL_ARG_CHECK_FOR_PRIV(sound_type_enum);
 
        if (!strncmp(sound_type, "system", strlen(sound_type))) {
                *sound_type_enum = SOUND_TYPE_SYSTEM;
@@ -336,7 +336,7 @@ int _convert_device_type (sound_device_type_e device_type_enum, char **device_ty
 {
        int ret = MM_ERROR_NONE;
 
-       SM_NULL_ARG_CHECK(device_type);
+       SM_NULL_ARG_CHECK_FOR_PRIV(device_type);
 
        switch (device_type_enum) {
        case SOUND_DEVICE_BUILTIN_SPEAKER:
@@ -1354,8 +1354,8 @@ int _add_device_for_stream_routing (sound_stream_info_s *stream_info, sound_devi
        mm_sound_device_type_e device_type;
        mm_sound_device_io_direction_e device_direction;
 
-       SM_INSTANCE_CHECK(stream_info);
-       SM_NULL_ARG_CHECK(device);
+       SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
+       SM_NULL_ARG_CHECK_FOR_PRIV(device);
 
        if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
                ret = mm_sound_get_device_id(device, &device_id);
@@ -1436,8 +1436,8 @@ int _remove_device_for_stream_routing (sound_stream_info_s *stream_info, sound_d
        mm_sound_device_type_e device_type;
        mm_sound_device_io_direction_e device_direction;
 
-       SM_INSTANCE_CHECK(stream_info);
-       SM_NULL_ARG_CHECK(device);
+       SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
+       SM_NULL_ARG_CHECK_FOR_PRIV(device);
 
        if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
                ret = mm_sound_get_device_id(device, &device_id);
@@ -1502,7 +1502,7 @@ int _apply_stream_routing (sound_stream_info_s *stream_info)
        int i = 0;
        bool need_to_apply = false;
 
-       SM_INSTANCE_CHECK(stream_info);
+       SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
 
        if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
                for (i = 0; i < AVAIL_DEVICES_MAX; i++) {
@@ -1534,8 +1534,8 @@ int _create_virtual_stream (sound_stream_info_s *stream_info, virtual_sound_stre
        const char *name = NULL;
        int i = 0;
 
-       SM_INSTANCE_CHECK(virtual_stream);
-       SM_INSTANCE_CHECK(stream_info);
+       SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+       SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
 
        /* check if this stream_info is available for virtual stream */
        name = _convert_api_name(NATIVE_API_SOUND_MANAGER);
@@ -1571,8 +1571,8 @@ int _destroy_virtual_stream (virtual_sound_stream_info_s *virtual_stream)
 {
        int ret = MM_ERROR_NONE;
 
-       SM_INSTANCE_CHECK(virtual_stream);
-       SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_READY);
+       SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+       SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_READY);
 
        virtual_stream->pa_mainloop = NULL;
        virtual_stream->pa_context = NULL;
@@ -1594,8 +1594,8 @@ int _start_virtual_stream (virtual_sound_stream_info_s *virtual_stream)
        pa_sample_spec ss;
        pa_channel_map maps;
 
-       SM_INSTANCE_CHECK(virtual_stream);
-       SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_READY);
+       SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+       SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_READY);
 
        if (virtual_stream->stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
                /* check if the manual route info. is set when it comes to the manual route type */
@@ -1691,8 +1691,8 @@ int _stop_virtual_stream (virtual_sound_stream_info_s *virtual_stream)
        int ret = MM_ERROR_NONE;
        int i = 0;
 
-       SM_INSTANCE_CHECK(virtual_stream);
-       SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_RUNNING);
+       SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+       SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_RUNNING);
 
        /* LOCK the pa_threaded_mainloop */
        pa_threaded_mainloop_lock(virtual_stream->pa_mainloop);