Force to use earjack only for headless profile 44/202244/2 accepted/tizen/unified/20190327.160455 submit/tizen/20190327.104232
authorSeungbae Shin <seungbae.shin@samsung.com>
Tue, 26 Mar 2019 06:25:37 +0000 (15:25 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Tue, 26 Mar 2019 08:45:34 +0000 (17:45 +0900)
[Version] 0.1.3
[Issue Type] Add

Change-Id: Ic4142c971ac9c8a623b78c285b7c97d1ab40929b

Makefile.am
configure.ac
packaging/audio-hal-bcm2837.spec
tizen-audio-routing.c

index 2543080..b93a076 100644 (file)
@@ -10,12 +10,11 @@ libtizen_audio_la_SOURCES = tizen-audio.c \
                tizen-audio-impl-ucm.c \
                tizen-audio-impl-ctrl.c
 libtizen_audio_la_LDFLAGS = $(AM_LDFLAGS) -disable-static -avoid-version
+libtizen_audio_la_LIBADD = $(AM_LDADD) $(ASOUNDLIB_LIBS) $(VCONF_LIBS) $(DLOG_LIBS) $(INIPARSER_LIBS) $(SYSTEM_INFO_LIBS)
+libtizen_audio_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) $(VCONF_CFLAGS) $(DLOG_CFLAGS) $(INIPARSER_CFLAGS) $(SYSTEM_INFO_CFLAGS) -DUSE_DLOG
+
 if USE_TINYALSA
-libtizen_audio_la_LIBADD = $(AM_LDADD) $(ASOUNDLIB_LIBS) $(TINYALSA_LIBS) $(VCONF_LIBS) $(DLOG_LIBS) $(INIPARSER_LIBS)
-libtizen_audio_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) $(TINYALSA_CFLAGS) $(VCONF_CFLAGS) $(DLOG_CFLAGS) $(INIPARSER_CFLAGS) -D__USE_TINYALSA__
-else
-libtizen_audio_la_LIBADD = $(AM_LDADD) $(ASOUNDLIB_LIBS) $(VCONF_LIBS) $(DLOG_LIBS) $(INIPARSER_LIBS)
-libtizen_audio_la_CFLAGS = $(AM_CFLAGS) $(ASOUNDLIB_CFLAGS) $(VCONF_CFLAGS) $(DLOG_CFLAGS) $(INIPARSER_CFLAGS)
+libtizen_audio_la_LIBADD += $(TINYALSA_LIBS)
+libtizen_audio_la_CFLAGS += $(TINYALSA_CFLAGS) -D__USE_TINYALSA__
 endif
-libtizen_audio_la_CFLAGS += -DUSE_DLOG
 
index 5f221f2..a8b820b 100644 (file)
@@ -47,6 +47,10 @@ PKG_CHECK_MODULES(DLOG, dlog)
 AC_SUBST(DLOG_CFLAGS)
 AC_SUBST(DLOG_LIBS)
 
+PKG_CHECK_MODULES(SYSTEM_INFO, capi-system-info)
+AC_SUBST(SYSTEM_INFO_CFLAGS)
+AC_SUBST(SYSTEM_INFO_LIBS)
+
 # Checks for header files.
 
 # Checks for typedefs, structures, and compiler characteristics.
index 5f1dfed..f4b77fb 100644 (file)
@@ -1,6 +1,6 @@
 Name:       audio-hal-bcm2837
 Summary:    TIZEN Audio HAL for BCM2837
-Version:    0.1.2
+Version:    0.1.3
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
@@ -10,6 +10,7 @@ BuildRequires: pkgconfig(vconf)
 BuildRequires: pkgconfig(iniparser)
 BuildRequires: pkgconfig(dlog)
 BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(capi-system-info)
 #BuildRequires: pkgconfig(tinyalsa)
 Provides: libtizen-audio.so
 
index 0cdadb6..b78473f 100644 (file)
@@ -29,6 +29,9 @@
 #include "tizen-audio-internal.h"
 #include "tizen-audio-impl.h"
 
+#include <system_info.h>
+#define FEATURE_DISPLAY_STATE "http://tizen.org/feature/display.state"
+
 /* #define DEBUG_TIMING */
 
 static device_type_t outDeviceTypes[] = {
@@ -260,6 +263,23 @@ static audio_return_t __update_route_reset(audio_hal_t *ah, uint32_t direction)
     return audio_ret;
 }
 
+static void __audio_routing_playback_rpi3(audio_hal_t *ah)
+{
+    bool display_enable = false;
+    int ret = SYSTEM_INFO_ERROR_NONE;
+
+    ret = system_info_get_platform_bool(FEATURE_DISPLAY_STATE, &display_enable);
+    AUDIO_LOG_INFO("system_info_platform [%s]=[%d], ret[%d]", FEATURE_DISPLAY_STATE, display_enable, ret);
+    if (ret != SYSTEM_INFO_ERROR_NONE)
+        AUDIO_LOG_ERROR("Failed to get feature...");
+
+    if (!display_enable) {
+        /* no hdmi support means headless, force to use earjack(1) only.
+           supported value : (0)auto (1)earjack (2)hdmi */
+        _mixer_control_set_value(ah, "PCM Playback Route", 1);
+    }
+}
+
 audio_return_t _audio_routing_init(audio_hal_t *ah)
 {
     audio_return_t audio_ret = AUDIO_RET_OK;
@@ -273,6 +293,9 @@ audio_return_t _audio_routing_init(audio_hal_t *ah)
     if ((audio_ret = _ucm_init(ah)))
         AUDIO_LOG_ERROR("failed to _ucm_init(), ret(0x%x)", audio_ret);
 
+    /* additional setting for rpi3 playback route mixer control */
+    __audio_routing_playback_rpi3(ah);
+
     return audio_ret;
 }