Add radio set/get volume code
[platform/core/api/radio.git] / src / radio.c
index 6684f1b..5fd19f3 100644 (file)
@@ -604,3 +604,40 @@ int radio_get_channel_spacing(radio_h radio, int *channel_spacing)
        else
                return RADIO_ERROR_NONE;
 }
+
+int radio_set_volume(radio_h radio, float volume)
+{
+       LOGI("[%s] Enter", __func__);
+       RADIO_SUPPORT_CHECK(__radio_check_system_info_feature_supported());
+       RADIO_INSTANCE_CHECK(radio);
+       if (volume < 0.0 || volume > 1.0) {
+               LOGE("[%s] RADIO_ERROR_INVALID_PARAMETER(0x%08x) : Out of range (0.0 ~ 1.0)", __FUNCTION__, RADIO_ERROR_INVALID_PARAMETER);
+               return RADIO_ERROR_INVALID_PARAMETER;
+       }
+       float vol = volume;
+       radio_s *handle = (radio_s *)radio;
+       int ret = mm_radio_set_volume(handle->mm_handle, vol);
+       if (ret != MM_ERROR_NONE)
+               return __convert_error_code(ret, (char *)__FUNCTION__);
+       else
+               return RADIO_ERROR_NONE;
+}
+
+int radio_get_volume(radio_h radio, float *volume)
+{
+       LOGI("[%s] Enter", __func__);
+       RADIO_SUPPORT_CHECK(__radio_check_system_info_feature_supported());
+       RADIO_INSTANCE_CHECK(radio);
+       RADIO_NULL_ARG_CHECK(volume);
+       radio_s *handle = (radio_s *)radio;
+
+       float vol;
+       int ret = mm_radio_get_volume(handle->mm_handle, &vol);
+       if (ret != MM_ERROR_NONE) {
+               return __convert_error_code(ret, (char *)__FUNCTION__);
+       } else {
+               *volume = vol;
+               return RADIO_ERROR_NONE;
+       }
+}
+