SM_ENTER_CRITICAL_SECTION_WITH_RETURN(&ducking_mutex, SOUND_MANAGER_ERROR_INTERNAL);
- ducking->duration = duration;
- ducking->ratio = ratio;
-
ret = _activate_ducking(ducking->pa_info.index,
- true, ducking->target_stream, ducking->duration, ducking->ratio);
+ true, ducking->target_stream, (uint32_t)duration, ratio);
+
+ if (ret == MM_ERROR_NONE) {
+ ducking->duration = duration;
+ ducking->ratio = ratio;
+ }
SM_LEAVE_CRITICAL_SECTION(&ducking_mutex);
SM_ENTER_CRITICAL_SECTION_WITH_RETURN(&ducking_mutex, SOUND_MANAGER_ERROR_INTERNAL);
ret = _activate_ducking(ducking->pa_info.index,
- false, ducking->target_stream, ducking->duration, ducking->ratio);
+ false, ducking->target_stream, (uint32_t)ducking->duration, ducking->ratio);
SM_LEAVE_CRITICAL_SECTION(&ducking_mutex);
LOGI("g_dbus_connection_call_sync() success, method return value is (%s)", dbus_ret);
- if (strncmp("STREAM_MANAGER_RETURN_OK", dbus_ret, strlen(dbus_ret)))
+ if (!strncmp("STREAM_MANAGER_RETURN_ERROR_INVALID_STATE", dbus_ret, strlen(dbus_ret)))
+ ret = MM_ERROR_SOUND_INVALID_STATE;
+ else if (strncmp("STREAM_MANAGER_RETURN_OK", dbus_ret, strlen(dbus_ret)))
ret = MM_ERROR_SOUND_INTERNAL;
LEAVE: