summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilbok Lee <gilbok.lee@samsung.com>2015-03-03 14:58:39 +0900
committerGilbok Lee <gilbok.lee@samsung.com>2015-03-03 14:58:39 +0900
commit20ef3608560da3b582b3a9627eaa5e49a1a63575 (patch)
treeeea8f08678b50d996279a276d8a3cd14df4cc25c
parent1c3443edde98c0724e4275240be71b8cac87aeea (diff)
downloadlibmm-radio-20ef3608560da3b582b3a9627eaa5e49a1a63575.tar.gz
libmm-radio-20ef3608560da3b582b3a9627eaa5e49a1a63575.tar.bz2
libmm-radio-20ef3608560da3b582b3a9627eaa5e49a1a63575.zip
Change-Id: I3821b7c98f7ad31c40d3237781c07d86c1aa2210
-rwxr-xr-xconfigure.ac4
-rwxr-xr-x[-rw-r--r--]mm-radio.pc.in2
-rw-r--r--packaging/libmm-radio.spec1
-rw-r--r--src/Makefile.am7
-rw-r--r--src/include/mm_radio_utils.h8
-rwxr-xr-x[-rw-r--r--]src/mm_radio.c71
-rwxr-xr-xsrc/mm_radio_priv.c36
-rwxr-xr-x[-rw-r--r--]test/Makefile.am6
-rwxr-xr-x[-rw-r--r--]test/mm_radio_rt_api_test.c29
-rwxr-xr-x[-rw-r--r--]test/mm_radio_testsuite.c10
10 files changed, 102 insertions, 72 deletions
diff --git a/configure.ac b/configure.ac
index eeb81b2..c166112 100755
--- a/configure.ac
+++ b/configure.ac
@@ -38,10 +38,6 @@ PKG_CHECK_MODULES(MMCOMMON, mm-common)
AC_SUBST(MMCOMMON_CFLAGS)
AC_SUBST(MMCOMMON_LIBS)
-PKG_CHECK_MODULES(MMTA, mm-ta)
-AC_SUBST(MMTA_CFLAGS)
-AC_SUBST(MMTA_LIBS)
-
if test "$use_gstreamer_1" = "1"; then
PKG_CHECK_MODULES(GST, gstreamer-1.0)
AC_SUBST(GST_CFLAGS)
diff --git a/mm-radio.pc.in b/mm-radio.pc.in
index 723ca8c..253895f 100644..100755
--- a/mm-radio.pc.in
+++ b/mm-radio.pc.in
@@ -5,7 +5,7 @@ includedir = @includedir@
Name : mm-radio
Description : Multimedia Framwork FM Radio Library
-Requires : mm-common mm-log mm-ta
+Requires : mm-common mm-log
Version : @VERSION@
Libs : -L${libdir} -lmmfradio
Cflags : -I${includedir}/mmf
diff --git a/packaging/libmm-radio.spec b/packaging/libmm-radio.spec
index 1e4302f..cba08fa 100644
--- a/packaging/libmm-radio.spec
+++ b/packaging/libmm-radio.spec
@@ -9,7 +9,6 @@ Source1001: libmm-radio.manifest
BuildRequires: audio-session-manager-devel
BuildRequires: pkgconfig(mm-common)
BuildRequires: pkgconfig(mm-log)
-BuildRequires: pkgconfig(mm-ta)
BuildRequires: pkgconfig(mm-session)
BuildRequires: pkgconfig(mm-sound)
%if %{defined with_Gstreamer0.10}
diff --git a/src/Makefile.am b/src/Makefile.am
index ac06ac6..4f7a481 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -10,18 +10,15 @@ libmmfradio_la_SOURCES = mm_radio.c \
libmmfradio_la_CFLAGS = -I. -I./include \
$(GTHREAD_CFLAGS) \
$(MMCOMMON_CFLAGS) \
- $(MMTA_CFLAGS) \
$(MMSESSION_CFLAGS) \
$(AUDIOSESSIONMGR_CFLAGS) \
$(MMSOUND_CFLAGS) \
$(GST_CFLAGS) \
$(GSTAPP_CFLAGS) \
- -DMMF_LOG_OWNER=0x200000 -DMMF_DEBUG_PREFIX=\"MM-RADIO\" \
- -DGST_EXT_TIME_ANALYSIS
-
+ -DMMF_LOG_OWNER=0x200000 -DMMF_DEBUG_PREFIX=\"MM-RADIO\"
+
libmmfradio_la_LIBADD = $(GTHREAD_LIBS) \
$(MMCOMMON_LIBS) \
- $(MMTA_LIBS)\
$(MMSESSION_LIBS) \
$(AUDIOSESSIONMGR_LIBS) \
$(MMSOUND_LIBS) \
diff --git a/src/include/mm_radio_utils.h b/src/include/mm_radio_utils.h
index 13c3765..b873483 100644
--- a/src/include/mm_radio_utils.h
+++ b/src/include/mm_radio_utils.h
@@ -34,6 +34,7 @@
#define MMRADIO_LOG_ERROR debug_error
#define MMRADIO_LOG_WARNING debug_warning
#define MMRADIO_LOG_CRITICAL debug_critical
+#define MMRADIO_SLOG_DEBUG secure_debug_log
/* general */
#ifndef ARRAY_SIZE
@@ -54,6 +55,13 @@ if ( ! x_radio ) \
return MM_ERROR_RADIO_NOT_INITIALIZED; \
}
+#define MMRADIO_CHECK_INSTANCE_RETURN_VOID( x_radio ) \
+if ( ! x_radio ) \
+{ \
+ debug_error("radio instance is NULL\n"); \
+ return; \
+}
+
#define MMRADIO_CHECK_DEVICE_STATE( x_radio ) \
if ( x_radio->radio_fd < 0 ) \
{ \
diff --git a/src/mm_radio.c b/src/mm_radio.c
index 8370451..ac93895 100644..100755
--- a/src/mm_radio.c
+++ b/src/mm_radio.c
@@ -18,7 +18,7 @@
* limitations under the License.
*
*/
-
+
/*===========================================================================================
| |
| INCLUDE FILES |
@@ -32,7 +32,6 @@
#include <mm_types.h>
#include <mm_message.h>
#include "mm_debug.h"
-#include <mm_ta.h>
/*===========================================================================================
| |
@@ -86,12 +85,11 @@ int mm_radio_create(MMHandleType *hradio)
{
int result = MM_ERROR_NONE;
mm_radio_t* new_radio = NULL;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(hradio, MM_ERROR_RADIO_NOT_INITIALIZED);
- MMTA_INIT();
/* alloc radio structure */
new_radio = (mm_radio_t*) malloc(sizeof(mm_radio_t));
@@ -124,9 +122,9 @@ ERROR:
*hradio = (MMHandleType)0;
MMRADIO_LOG_FLEAVE();
-
+
/* FIXIT : need to specify more error case */
- return MM_ERROR_RADIO_NO_FREE_SPACE;
+ return result;
}
int mm_radio_destroy(MMHandleType hradio)
@@ -135,26 +133,23 @@ int mm_radio_destroy(MMHandleType hradio)
mm_radio_t* radio = (mm_radio_t*)hradio;
MMRADIO_LOG_FENTER();
-
+
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
- result = _mmradio_destroy( radio );
-
+ result = _mmradio_destroy( radio );
+
if ( result != MM_ERROR_NONE )
{
debug_error("failed to destroy radio\n");
}
-
+
/* free radio */
MMRADIO_FREEIF( radio );
- MMTA_ACUM_ITEM_SHOW_RESULT_TO(MMTA_SHOW_FILE);
- //MMTA_ACUM_ITEM_SHOW_RESULT_TO(MMTA_SHOW_STDOUT);
- MMTA_RELEASE();
MMRADIO_LOG_FLEAVE();
-
+
return result;
}
@@ -162,16 +157,14 @@ int mm_radio_realize(MMHandleType hradio)
{
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
MMRADIO_CMD_LOCK( radio );
- __ta__("[KPI] initialize media radio service",
- result = _mmradio_realize( radio );
- )
+ result = _mmradio_realize( radio );
MMRADIO_CMD_UNLOCK( radio );
@@ -184,21 +177,19 @@ int mm_radio_unrealize(MMHandleType hradio)
{
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
MMRADIO_CMD_LOCK( radio );
- __ta__("[KPI] cleanup media radio service",
- result = _mmradio_unrealize( radio );
- )
-
+ result = _mmradio_unrealize( radio );
+
MMRADIO_CMD_UNLOCK( radio );
MMRADIO_LOG_FLEAVE();
-
+
return result;
}
@@ -206,7 +197,7 @@ int mm_radio_set_message_callback(MMHandleType hradio, MMMessageCallback callbac
{
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
@@ -218,7 +209,7 @@ int mm_radio_set_message_callback(MMHandleType hradio, MMMessageCallback callbac
MMRADIO_CMD_UNLOCK( radio );
MMRADIO_LOG_FLEAVE();
-
+
return result;
}
@@ -227,9 +218,9 @@ int mm_radio_get_state(MMHandleType hradio, MMRadioStateType* pState)
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
int state = 0;
-
+
MMRADIO_LOG_FENTER();
-
+
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
return_val_if_fail(pState, MM_ERROR_COMMON_INVALID_ARGUMENT);
@@ -250,14 +241,13 @@ int mm_radio_start(MMHandleType hradio)
{
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
MMRADIO_CMD_LOCK( radio );
- MMTA_ACUM_ITEM_BEGIN("[KPI] start media radio service", false);
result = _mmradio_start( radio );
MMRADIO_CMD_UNLOCK( radio );
@@ -271,16 +261,14 @@ int mm_radio_stop(MMHandleType hradio)
{
int result = MM_ERROR_NONE;
mm_radio_t* radio = (mm_radio_t*)hradio;
-
+
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
MMRADIO_CMD_LOCK( radio );
- __ta__("[KPI] stop media radio service",
- result = _mmradio_stop( radio );
- )
+ result = _mmradio_stop( radio );
MMRADIO_CMD_UNLOCK( radio );
@@ -297,10 +285,12 @@ int mm_radio_seek(MMHandleType hradio, MMRadioSeekDirectionType direction)
MMRADIO_LOG_FENTER();
return_val_if_fail(radio, MM_ERROR_RADIO_NOT_INITIALIZED);
- return_val_if_fail(direction >= MM_RADIO_SEEK_UP && direction <= MM_RADIO_SEEK_DOWN, MM_ERROR_INVALID_ARGUMENT);
+ return_val_if_fail(direction >= MM_RADIO_SEEK_UP && direction <= MM_RADIO_SEEK_DOWN, MM_ERROR_INVALID_ARGUMENT);
MMRADIO_CMD_LOCK( radio );
+ radio->seek_direction = direction;
+
result = _mmradio_seek( radio, direction );
MMRADIO_CMD_UNLOCK( radio );
@@ -405,7 +395,7 @@ int mm_radio_set_mute(MMHandleType hradio, bool muted)
MMRADIO_CMD_LOCK(radio);
- if (muted)
+ if (muted)
{
result = _mmradio_mute(radio);
}
@@ -434,14 +424,7 @@ int mm_radio_get_signal_strength(MMHandleType hradio, int *value)
MMRADIO_CMD_LOCK( radio );
- if (ioctl(radio->radio_fd, VIDIOC_G_TUNER, &(radio->vt)) < 0)
- {
- debug_error("ioctl VIDIOC_G_TUNER error\n");
-
- return MM_ERROR_RADIO_INTERNAL;
- }
-
- *value = radio->vt.signal;
+ ret = _mm_radio_get_signal_strength(radio, value);
MMRADIO_CMD_UNLOCK( radio );
diff --git a/src/mm_radio_priv.c b/src/mm_radio_priv.c
index 8f3eb24..d2bb2df 100755
--- a/src/mm_radio_priv.c
+++ b/src/mm_radio_priv.c
@@ -34,7 +34,6 @@
#include <unistd.h>
#include <errno.h>
#include <mm_sound.h>
-#include <mm_ta.h>
#include <mm_error.h>
#include <mm_debug.h>
@@ -731,7 +730,7 @@ _mmradio_realize_pipeline(mm_radio_t* radio)
radio->pGstreamer_s->avsysaudiosrc= gst_element_factory_make("avsysaudiosrc","fm audio src");
radio->pGstreamer_s->queue2= gst_element_factory_make("queue2","queue2");
- radio->pGstreamer_s->avsysaudiosink= gst_element_factory_make("avsysaudiosink","audio sink");
+ radio->pGstreamer_s->avsysaudiosink= gst_element_factory_make("pulsesink","audio sink");
g_object_set(radio->pGstreamer_s->avsysaudiosrc, "latency", 2, NULL);
g_object_set(radio->pGstreamer_s->avsysaudiosink, "sync", false, NULL);
@@ -830,7 +829,7 @@ _mmradio_destroy_pipeline(mm_radio_t * radio)
g_free (radio->pGstreamer_s);
return MM_ERROR_RADIO_INVALID_STATE;
} else {
- debug_log ("[%s][%05d] GST_STATE_NULL ret_state = %d (GST_STATE_CHANGE_SUCCESS)\n", __func__, __LINE__, ret_state);
+ debug_log("[%s][%05d] GST_STATE_NULL ret_state = %d (GST_STATE_CHANGE_SUCCESS)\n", __func__, __LINE__, ret_state);
}
gst_object_unref (radio->pGstreamer_s->pipeline);
g_free (radio->pGstreamer_s);
@@ -921,6 +920,31 @@ _mmradio_stop_scan(mm_radio_t* radio)
return MM_ERROR_NONE;
}
+int
+_mm_radio_get_signal_strength(mm_radio_t* radio, int *value)
+{
+ MMRADIO_LOG_FENTER();
+ MMRADIO_CHECK_INSTANCE( radio );
+
+ return_val_if_fail( value, MM_ERROR_INVALID_ARGUMENT );
+
+ /* just return stored frequency if radio device is not ready */
+ if ( radio->radio_fd < 0 )
+ {
+ MMRADIO_SLOG_DEBUG("Device not ready so sending 0\n");
+ *value = 0;
+ return MM_ERROR_NONE;
+ }
+ if (ioctl(radio->radio_fd, VIDIOC_G_TUNER, &(radio->vt)) < 0)
+ {
+ debug_error("ioctl VIDIOC_G_TUNER error\n");
+ return MM_ERROR_RADIO_INTERNAL;
+ }
+ *value = radio->vt.signal;
+ MMRADIO_LOG_FLEAVE();
+ return MM_ERROR_NONE;
+}
+
void
__mmradio_scan_thread(mm_radio_t* radio)
{
@@ -933,9 +957,7 @@ __mmradio_scan_thread(mm_radio_t* radio)
vs.seek_upward = 1; /* up : 1 ------- down : 0 */
MMRADIO_LOG_FENTER();
-
MMRADIO_CHECK_INSTANCE( radio );
-
if( _mmradio_mute(radio) != MM_ERROR_NONE)
goto FINISHED;
@@ -1020,6 +1042,8 @@ FINISHED:
MMRADIO_LOG_FLEAVE();
pthread_exit(NULL);
+
+ return;
}
bool
@@ -1051,7 +1075,6 @@ __mmradio_seek_thread(mm_radio_t* radio)
vs.wrap_around = DEFAULT_WRAP_AROUND;
MMRADIO_LOG_FENTER();
-
MMRADIO_CHECK_INSTANCE( radio );
/* check direction */
@@ -1150,6 +1173,7 @@ SEEK_FAILED:
param.radio_scan.frequency = -1;
MMRADIO_POST_MSG(radio, MM_MESSAGE_RADIO_SEEK_FINISH, &param);
pthread_exit(NULL);
+ return;
}
static bool
diff --git a/test/Makefile.am b/test/Makefile.am
index 3b6bc99..f555611 100644..100755
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -4,11 +4,9 @@ mm_radio_testsuite_SOURCES = mm_radio_testsuite.c \
mm_radio_rt_api_test.c
mm_radio_testsuite_CFLAGS = -I$(srcdir)/../src/include \
- $(MMCOMMON_CFLAGS) \
- $(MMTA_CFLAGS)
+ $(MMCOMMON_CFLAGS)
mm_radio_testsuite_DEPENDENCIES = $(top_builddir)/src/libmmfradio.la
mm_radio_testsuite_LDADD = $(top_builddir)/src/libmmfradio.la \
- $(MMCOMMON_LIBS) \
- $(MMTA_LIBS)
+ $(MMCOMMON_LIBS)
diff --git a/test/mm_radio_rt_api_test.c b/test/mm_radio_rt_api_test.c
index 2b611ff..6a881ff 100644..100755
--- a/test/mm_radio_rt_api_test.c
+++ b/test/mm_radio_rt_api_test.c
@@ -23,7 +23,8 @@
#include "mm_radio.h"
#include "mm_radio_rt_api_test.h"
-#define MENU_ITEM_MAX 18
+#define MENU_ITEM_MAX 19
+#define _MAX_INPUT_STRING_ 100
static int __menu(void);
static void __call_api( int choosen );
@@ -40,7 +41,7 @@ void __call_api( int choosen )
case 1:
{
RADIO_TEST__( mm_radio_create( &g_my_radio ); )
- RADIO_TEST__( mm_radio_set_message_callback( g_my_radio, __msg_rt_callback, &g_my_radio); )
+ RADIO_TEST__( mm_radio_set_message_callback( g_my_radio, __msg_rt_callback, g_my_radio); )
}
break;
@@ -153,7 +154,12 @@ void __call_api( int choosen )
printf("region band range: %d ~ %d KHz\n", min_freq, max_freq);
}
break;
-
+ case 19:
+ {
+ int signal_strength = 0;
+ RADIO_TEST__( mm_radio_get_signal_strength(g_my_radio, &signal_strength); )
+ printf("signal strength is : %d \n", signal_strength);
+ }
default:
break;
}
@@ -163,7 +169,6 @@ int mm_radio_rt_api_test(void)
{
while(1)
{
- char key = 0;
int choosen = 0;
choosen = __menu();
@@ -204,12 +209,21 @@ int __menu(void)
printf("[16] mm_radio_set_mute\n");
printf("[17] mm_radio_get_region_type\n");
printf("[18] mm_radio_get_region_frequency_range\n");
+ printf("[19] mm_radio_signal_strength\n");
printf("[0] quit\n");
printf("---------------------------------------------------------\n");
printf("choose one : ");
if ( scanf("%d", &menu_item) == 0)
+ {
+ char temp[_MAX_INPUT_STRING_];
+ if (scanf("%s", temp) ==0)
+ {
+ printf("Error while flushing the input buffer - but lets continue\n");
+ }
return -1;
+ }
+
if ( menu_item > MENU_ITEM_MAX )
menu_item = -1;
@@ -253,6 +267,13 @@ int __msg_rt_callback(int message, void *pParam, void *user_param)
case MM_MESSAGE_RADIO_SEEK_FINISH:
printf("MM_MESSAGE_RADIO_SEEK_FINISHED : freq : %d\n", param->radio_scan.frequency);
break;
+ case MM_MESSAGE_STATE_INTERRUPTED:
+ printf("MM_MESSAGE_STATE_INTERRUPTED code - %d\n", param->code);
+ break;
+ case MM_MESSAGE_READY_TO_RESUME:
+ printf("MM_MESSAGE_READY_TO_RESUME\n");
+ RADIO_TEST__( mm_radio_start(radio); )
+ break;
default:
printf("ERROR : unknown message received!\n");
break;
diff --git a/test/mm_radio_testsuite.c b/test/mm_radio_testsuite.c
index 104ba7f..d9b50cf 100644..100755
--- a/test/mm_radio_testsuite.c
+++ b/test/mm_radio_testsuite.c
@@ -22,7 +22,6 @@
/* testsuite for mm-radio library */
#include <stdlib.h>
#include <stdio.h>
-#include <mm_ta.h>
#include "mm_radio.h"
@@ -114,7 +113,6 @@ int g_num_of_tests = 0;
int main(int argc, char **argv)
{
- MMTA_INIT();
int key = 0;
do {
@@ -195,7 +193,6 @@ static int __msg_callback(int message, void *pParam, void *user_param)
switch(message)
{
case MM_MESSAGE_STATE_CHANGED:
-
printf("MM_MESSAGE_STATE_CHANGED: current : %d old : %d\n"
, param->state.current, param->state.previous);
break;
@@ -219,6 +216,13 @@ static int __msg_callback(int message, void *pParam, void *user_param)
case MM_MESSAGE_RADIO_SEEK_FINISH:
printf("MM_MESSAGE_RADIO_SEEK_FINISHED : freq : %d KHz\n", param->radio_scan.frequency);
break;
+ case MM_MESSAGE_STATE_INTERRUPTED:
+ printf("MM_MESSAGE_STATE_INTERRUPTED code - %d\n", param->code);
+ break;
+ case MM_MESSAGE_READY_TO_RESUME:
+ printf("MM_MESSAGE_READY_TO_RESUME\n");
+ RADIO_TEST__( mm_radio_start(radio); )
+ break;
default:
printf("ERROR : unknown message received!\n");
break;