summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSangchul Lee <sc11.lee@samsung.com>2019-07-11 10:43:38 +0900
committerSangchul Lee <sc11.lee@samsung.com>2019-07-11 14:14:58 +0900
commitafb640dea119e62254ecf245250b0905c9a7514b (patch)
tree6632d7aa7af8282170261ac3f180b28d7ff7b161 /src
parent9b293d1377d40904e15efe67dbf9be422ca82bdc (diff)
downloadlibmm-radio-afb640dea119e62254ecf245250b0905c9a7514b.tar.gz
libmm-radio-afb640dea119e62254ecf245250b0905c9a7514b.tar.bz2
libmm-radio-afb640dea119e62254ecf245250b0905c9a7514b.zip
Remove radio volume logic for media volumesubmit/tizen/20190715.061154
It is moved to audio HAL. :10ab0a383a32f1a69f8d95cb8304343579d70477 For emulator gstpipeline, volume element is remove. Instead, audiosink volume/mute properties are used. The dependency of libmm-sound is removed. [Version] 0.2.46 [Issue Type] Refactoring Change-Id: I322ca6b00d503d0e8844536d3f92457c8a7ac2a1 Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/include/mm_radio_priv.h2
-rw-r--r--src/include/mm_radio_priv_hal.h4
-rw-r--r--src/mm_radio_priv_emulator.c14
-rw-r--r--src/mm_radio_priv_hal.c120
4 files changed, 13 insertions, 127 deletions
diff --git a/src/include/mm_radio_priv.h b/src/include/mm_radio_priv.h
index a806c12..1c88fe2 100644
--- a/src/include/mm_radio_priv.h
+++ b/src/include/mm_radio_priv.h
@@ -169,7 +169,6 @@ typedef struct _mm_radio_gstreamer_s {
GstElement *pipeline;
GstElement *audiosrc;
GstElement *queue2;
- GstElement *volume;
GstElement *audiosink;
GstBuffer *output_buffer;
} mm_radio_gstreamer_s;
@@ -220,7 +219,6 @@ typedef struct {
mm_resource_manager_res_h radio_resource;
int interrupted_by_resource_conflict;
- unsigned int subs_id;
float local_volume;
/* region settings */
diff --git a/src/include/mm_radio_priv_hal.h b/src/include/mm_radio_priv_hal.h
index 3270314..6f011e3 100644
--- a/src/include/mm_radio_priv_hal.h
+++ b/src/include/mm_radio_priv_hal.h
@@ -201,15 +201,11 @@ typedef struct {
sound_stream_info_h stream_info;
virtual_sound_stream_h vstream;
#endif
- unsigned int volume_subs_id;
-
int freq;
/* command lock */
pthread_mutex_t volume_lock;
- unsigned int max_media_volume;
- unsigned int media_volume;
float local_volume;
/* region settings */
diff --git a/src/mm_radio_priv_emulator.c b/src/mm_radio_priv_emulator.c
index 4c4d94f..9df743e 100644
--- a/src/mm_radio_priv_emulator.c
+++ b/src/mm_radio_priv_emulator.c
@@ -227,7 +227,6 @@ int _mmradio_create_radio(mm_radio_t * radio)
radio->radio_fd = -1;
radio->freq = DEFAULT_FREQ;
memset(&radio->region_setting, 0, sizeof(MMRadioRegion_t));
- radio->subs_id = 0;
radio->local_volume = 1.0;
/* create msg queue for msg thread */
@@ -450,7 +449,7 @@ int _mmradio_mute(mm_radio_t * radio)
#ifdef USE_GST_PIPELINE
if (radio->pGstreamer_s) {
- g_object_set(radio->pGstreamer_s->volume, "mute", 1, NULL);
+ g_object_set(radio->pGstreamer_s->audiosink, "mute", 1, NULL);
MMRADIO_LOG_DEBUG("g_object set mute");
}
#endif
@@ -470,7 +469,7 @@ int _mmradio_unmute(mm_radio_t * radio)
#ifdef USE_GST_PIPELINE
if (radio->pGstreamer_s) {
- g_object_set(radio->pGstreamer_s->volume, "mute", 0, NULL);
+ g_object_set(radio->pGstreamer_s->audiosink, "mute", 0, NULL);
MMRADIO_LOG_DEBUG("g_object set unmute");
}
#endif
@@ -679,13 +678,12 @@ int _mmradio_realize_pipeline(mm_radio_t * radio)
radio->pGstreamer_s->audiosrc = gst_element_factory_make("audiotestsrc", "fm audio src");
radio->pGstreamer_s->queue2 = gst_element_factory_make("queue2", "queue2");
- radio->pGstreamer_s->volume = gst_element_factory_make("volume", "volume");
radio->pGstreamer_s->audiosink = gst_element_factory_make("pulsesink", "audio sink");
val = __mmradio_get_wave_num(radio);
g_object_set(radio->pGstreamer_s->audiosrc, "wave", val, "volume", 0.8, NULL);
- if (!radio->pGstreamer_s->pipeline || !radio->pGstreamer_s->audiosrc || !radio->pGstreamer_s->queue2 || !radio->pGstreamer_s->volume || !radio->pGstreamer_s->audiosink) {
+ if (!radio->pGstreamer_s->pipeline || !radio->pGstreamer_s->audiosrc || !radio->pGstreamer_s->queue2 || !radio->pGstreamer_s->audiosink) {
MMRADIO_LOG_DEBUG("One element could not be created. Exiting.");
return MM_ERROR_RADIO_NOT_INITIALIZED;
}
@@ -693,13 +691,11 @@ int _mmradio_realize_pipeline(mm_radio_t * radio)
gst_bin_add_many(GST_BIN(radio->pGstreamer_s->pipeline),
radio->pGstreamer_s->audiosrc,
radio->pGstreamer_s->queue2,
- radio->pGstreamer_s->volume,
radio->pGstreamer_s->audiosink,
NULL);
if (!gst_element_link_many(
radio->pGstreamer_s->audiosrc,
radio->pGstreamer_s->queue2,
- radio->pGstreamer_s->volume,
radio->pGstreamer_s->audiosink,
NULL)) {
MMRADIO_LOG_DEBUG("failed to element link (src - queue - volue - sink)");
@@ -1457,8 +1453,8 @@ int _mmradio_set_volume(mm_radio_t *radio, float volume)
radio->local_volume = volume;
#ifdef USE_GST_PIPELINE
- if (radio->pGstreamer_s && radio->pGstreamer_s->volume) {
- g_object_set(radio->pGstreamer_s->volume, "volume", volume, NULL);
+ if (radio->pGstreamer_s && radio->pGstreamer_s->audiosink) {
+ g_object_set(radio->pGstreamer_s->audiosink, "volume", volume, NULL);
MMRADIO_LOG_DEBUG("g_object set volume");
}
#endif
diff --git a/src/mm_radio_priv_hal.c b/src/mm_radio_priv_hal.c
index c3c3bdc..67d4a0f 100644
--- a/src/mm_radio_priv_hal.c
+++ b/src/mm_radio_priv_hal.c
@@ -35,7 +35,6 @@
#include <mm_error.h>
#include <mm_message.h>
-#include <mm_sound.h>
#include "mm_radio_priv_hal.h"
@@ -128,8 +127,6 @@ static void __mmradio_destroy_threads(mm_radio_t *radio);
static int __mmradio_create_thread_type(mm_radio_t *radio, MMRadioThreadTypes type);
static void __mmradio_destroy_thread_type(mm_radio_t *radio, MMRadioThreadTypes type);
-static void __mmradio_volume_changed_cb(volume_type_t type, unsigned int volume, void *user_data);
-static int __mmradio_set_media_volume(mm_radio_t *radio, unsigned int level);
static int __resource_release_cb(mm_resource_manager_h rm,
mm_resource_manager_res_h res, void *user_data);
static void __mmradio_msg_thread(mm_radio_t *radio);
@@ -303,8 +300,6 @@ int _mmradio_realize(mm_radio_t *radio)
{
int ret = MM_ERROR_NONE;
bool update = false;
- int max = 0;
- unsigned volume = 0;
MMRadioRegionType region = MM_RADIO_REGION_GROUP_NONE;
MMRADIO_LOG_FENTER();
@@ -337,28 +332,6 @@ int _mmradio_realize(mm_radio_t *radio)
return ret;
}
#endif
-
- ret = sound_manager_get_max_volume(SOUND_TYPE_MEDIA, &max);
- if (ret != MM_ERROR_NONE) {
- MMRADIO_LOG_WARNING("failed to get max volume");
- radio->max_media_volume = DEFAULT_MAX_MEDIA_VOLUME;
- } else {
- radio->max_media_volume = max;
- }
-
- ret = mm_sound_volume_get_value(VOLUME_TYPE_MEDIA, &volume);
-
- if (ret != MM_ERROR_NONE)
- MMRADIO_LOG_WARNING("failed to get media volume");
-
- MMRADIO_VOLUME_LOCK(radio);
- radio->media_volume = volume;
- MMRADIO_VOLUME_UNLOCK(radio);
-
- ret = mm_sound_add_volume_changed_callback(__mmradio_volume_changed_cb, (void *)radio, &radio->volume_subs_id);
- if (ret != MM_ERROR_NONE)
- MMRADIO_LOG_WARNING("failed to register volume changed callback");
-
MMRADIO_SET_STATE(radio, MM_RADIO_STATE_READY);
MMRADIO_LOG_FLEAVE();
@@ -375,10 +348,6 @@ int _mmradio_unrealize(mm_radio_t *radio)
MMRADIO_CHECK_INSTANCE(radio);
MMRADIO_CHECK_STATE_RETURN_IF_FAIL(radio, MMRADIO_COMMAND_UNREALIZE);
- ret = mm_sound_remove_volume_changed_callback(radio->volume_subs_id);
- if (ret != MM_ERROR_NONE)
- MMRADIO_LOG_WARNING("mm_sound_remove_volume_changed_callback error");
-
/*Finish if there are scans*/
_mmradio_stop_scan(radio);
@@ -578,7 +547,6 @@ int _mmradio_get_state(mm_radio_t *radio, int *pState)
int _mmradio_start(mm_radio_t *radio)
{
int ret = MM_ERROR_NONE;
- unsigned int volume = 0;
MMRADIO_LOG_FENTER();
@@ -632,16 +600,6 @@ int _mmradio_start(mm_radio_t *radio)
MMRADIO_LOG_DEBUG("radio prepared and opened");
}
- ret = mm_sound_volume_get_value(VOLUME_TYPE_MEDIA, &volume);
- if (ret != MM_ERROR_NONE)
- MMRADIO_LOG_WARNING("failed to get media volume");
-
- ret = __mmradio_set_media_volume(radio, volume);
- if (ret != MM_ERROR_NONE) {
- MMRADIO_LOG_ERROR("failed to set media volume");
- goto error1;
- }
-
ret = radio_hal_start(radio->hal_inf);
if (ret) {
ret = __convert_error_code(ret, (char *)__FUNCTION__);
@@ -1449,20 +1407,6 @@ static int __mmradio_get_state(mm_radio_t *radio)
return radio->current_state;
}
-static void __mmradio_volume_changed_cb(volume_type_t type, unsigned int volume, void *user_data)
-{
- mm_radio_t *radio = (mm_radio_t *)user_data;
- int ret = MM_ERROR_NONE;
- MMRADIO_CHECK_INSTANCE_RETURN_VOID(radio);
- if (type == VOLUME_TYPE_MEDIA) {
- MMRADIO_LOG_INFO("Change FM Radio volume to %d", volume);
- ret = __mmradio_set_media_volume(radio, volume);
- if (ret != MM_ERROR_NONE)
- MMRADIO_LOG_ERROR("failed to set media volume");
- return;
- }
-}
-
int _mmradio_get_region_type(mm_radio_t *radio, MMRadioRegionType *type)
{
MMRADIO_LOG_FENTER();
@@ -1519,27 +1463,22 @@ int _mmradio_set_volume(mm_radio_t *radio, float volume)
MMRADIO_VOLUME_LOCK(radio);
radio->local_volume = volume;
- MMRADIO_VOLUME_UNLOCK(radio);
- ret = radio_hal_set_volume(radio->hal_inf, volume);
- if (ret) {
- ret = __convert_error_code(ret, (char *)__FUNCTION__);
- if (ret == MM_ERROR_NOT_IMPLEMENTED)
- MMRADIO_LOG_WARNING("radio_hal_set_volume is not supported");
- else
- MMRADIO_LOG_ERROR("failed to set radio hal volume");
- return ret;
- }
+#ifdef TIZEN_FEATURE_SOUND_VSTREAM
+ if (radio->vstream)
+ ret = sound_manager_set_virtual_stream_volume(radio->vstream, (double)radio->local_volume);
+#endif
+ MMRADIO_VOLUME_UNLOCK(radio);
MMRADIO_LOG_FLEAVE();
- return MM_ERROR_NONE;
+ return ret;
}
int _mmradio_get_volume(mm_radio_t *radio, float *pVolume)
{
int ret = MM_ERROR_NONE;
- float volume = 0.0;
+
MMRADIO_LOG_FENTER();
MMRADIO_CHECK_INSTANCE(radio);
@@ -1547,20 +1486,8 @@ int _mmradio_get_volume(mm_radio_t *radio, float *pVolume)
MMRADIO_RETURN_VAL_IF_FAIL(pVolume, MM_ERROR_INVALID_ARGUMENT);
- ret = radio_hal_get_volume(radio->hal_inf, &volume);
- if (ret) {
- ret = __convert_error_code(ret, (char *)__FUNCTION__);
- if (ret == MM_ERROR_NOT_IMPLEMENTED)
- MMRADIO_LOG_WARNING("radio_hal_get_volume is not supported");
- else
- MMRADIO_LOG_ERROR("failed to get radio hal volume");
- *pVolume = 0;
- return ret;
- }
-
MMRADIO_VOLUME_LOCK(radio);
- radio->local_volume = volume;
- *pVolume = (float)radio->local_volume;
+ *pVolume = radio->local_volume;
MMRADIO_VOLUME_UNLOCK(radio);
MMRADIO_LOG_FLEAVE();
@@ -1568,37 +1495,6 @@ int _mmradio_get_volume(mm_radio_t *radio, float *pVolume)
return ret;
}
-static int __mmradio_set_media_volume(mm_radio_t *radio, unsigned int level)
-{
- int ret = MM_ERROR_NONE;
-
- MMRADIO_LOG_FENTER();
-
- MMRADIO_CHECK_INSTANCE(radio);
- MMRADIO_CHECK_STATE_RETURN_IF_FAIL(radio, MMRADIO_COMMAND_SET_VOLUME);
-
- MMRADIO_LOG_INFO("Setting %d volume", level);
-
- MMRADIO_VOLUME_LOCK(radio);
- radio->media_volume = level;
- MMRADIO_VOLUME_UNLOCK(radio);
-
- ret = radio_hal_set_media_volume(radio->hal_inf, level);
- if (ret) {
- ret = __convert_error_code(ret, (char *)__FUNCTION__);
- if (ret == MM_ERROR_NOT_IMPLEMENTED) {
- MMRADIO_LOG_WARNING("radio_hal_set_media_volume is not supported");
- } else if (ret != MM_ERROR_NONE) {
- MMRADIO_LOG_ERROR("failed to set radio hal media volume");
- return ret;
- }
- }
-
- MMRADIO_LOG_FLEAVE();
-
- return MM_ERROR_NONE;
-}
-
static int __resource_release_cb(mm_resource_manager_h rm,
mm_resource_manager_res_h res, void *user_data)
{