From aa585a5d49347e43d90aa27515457f507504cbcf Mon Sep 17 00:00:00 2001 From: codeworkx Date: Fri, 30 Dec 2011 15:59:44 +0100 Subject: [PATCH] samsung: add support for tvout and yamahaplayer services Change-Id: I653f9876b7fb83734abf3a0b9b9b5af1920b8112 --- cmds/servicemanager/Android.mk | 6 ++++++ cmds/servicemanager/service_manager.c | 6 ++++++ media/libmedia/Android.mk | 4 ++++ media/libmedia/AudioSystem.cpp | 20 ++++++++++++++++++++ media/mediaserver/Android.mk | 10 ++++++++++ media/mediaserver/main_mediaserver.cpp | 18 ++++++++++++++++++ 6 files changed, 64 insertions(+) diff --git a/cmds/servicemanager/Android.mk b/cmds/servicemanager/Android.mk index ea80c7d85dc8a..11916a726408e 100644 --- a/cmds/servicemanager/Android.mk +++ b/cmds/servicemanager/Android.mk @@ -12,4 +12,10 @@ LOCAL_MODULE := servicemanager ifeq ($(BOARD_USE_LVMX),true) LOCAL_CFLAGS += -DLVMX endif +ifeq ($(BOARD_USE_YAMAHAPLAYER),true) + LOCAL_CFLAGS += -DYAMAHAPLAYER +endif +ifeq ($(BOARD_USE_SECTVOUT),true) + LOCAL_CFLAGS += -DSECTVOUT +endif include $(BUILD_EXECUTABLE) diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c index 2df450f34defc..5c9a8b39f28b9 100644 --- a/cmds/servicemanager/service_manager.c +++ b/cmds/servicemanager/service_manager.c @@ -34,6 +34,12 @@ static struct { { AID_MEDIA, "media.player" }, { AID_MEDIA, "media.camera" }, { AID_MEDIA, "media.audio_policy" }, +#ifdef YAMAHAPLAYER + { AID_MEDIA, "media.yamahaplayer" }, +#endif +#ifdef SECTVOUT + { AID_MEDIA, "SecTVOutService" }, +#endif { AID_DRM, "drm.drmManager" }, { AID_NFC, "nfc" }, { AID_RADIO, "radio.phone" }, diff --git a/media/libmedia/Android.mk b/media/libmedia/Android.mk index 9ca1a24d7f391..4383ff48996f0 100644 --- a/media/libmedia/Android.mk +++ b/media/libmedia/Android.mk @@ -56,6 +56,10 @@ ifeq ($(BOARD_USES_AUDIO_LEGACY),true) endif endif +ifeq ($(BOARD_USE_YAMAHAPLAYER),true) + LOCAL_CFLAGS += -DYAMAHAPLAYER +endif + LOCAL_SHARED_LIBRARIES := \ libui libcutils libutils libbinder libsonivox libicuuc libexpat \ libcamera_client libstagefright_foundation \ diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index 7d28b6fc53ac5..99cc4e0fdee33 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -810,5 +810,25 @@ extern "C" bool _ZN7android11AudioSystem15isLowVisibilityENS0_11stream_typeE(aud #endif // AUDIO_LEGACY +#ifdef YAMAHAPLAYER +extern "C" bool _ZN7android11AudioSystem17isSeparatedStreamE19audio_stream_type_t(audio_stream_type_t stream) +{ + LOGD("android::AudioSystem::isSeparatedStream(audio_stream_type_t) called!"); + LOGD("audio_stream_type_t: %d", stream); + +/* this is the correct implementation, but breaks headset volume rocker. + if (stream == 3 || stream == 9 || stream == 10 + || stream == 12 || stream == 13 || stream == 14) + { + LOGD("isSeparatedStream: true"); + return true; + } +*/ + + LOGD("isSeparatedStream: false"); + return false; +} +#endif // YAMAHAPLAYER + }; // namespace android diff --git a/media/mediaserver/Android.mk b/media/mediaserver/Android.mk index 05598129646d5..376fc5291c696 100644 --- a/media/mediaserver/Android.mk +++ b/media/mediaserver/Android.mk @@ -11,6 +11,16 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ libbinder +ifeq ($(BOARD_USE_YAMAHAPLAYER),true) + LOCAL_CFLAGS += -DYAMAHAPLAYER + LOCAL_SHARED_LIBRARIES += libmediayamahaservice +endif + +ifeq ($(BOARD_USE_SECTVOUT),true) + LOCAL_CFLAGS += -DSECTVOUT + LOCAL_SHARED_LIBRARIES += libTVOut +endif + base := $(LOCAL_PATH)/../.. LOCAL_C_INCLUDES := \ diff --git a/media/mediaserver/main_mediaserver.cpp b/media/mediaserver/main_mediaserver.cpp index 7094cfa3a1f28..2adddf22de077 100644 --- a/media/mediaserver/main_mediaserver.cpp +++ b/media/mediaserver/main_mediaserver.cpp @@ -33,11 +33,29 @@ using namespace android; +#ifdef YAMAHAPLAYER +namespace android { namespace yamaha { namespace media { +void InstantiateService(void); +} } } +#endif + +#ifdef SECTVOUT +namespace android { namespace SecTVOutService { +void instantiate(void); +} } +#endif + int main(int argc, char** argv) { sp proc(ProcessState::self()); sp sm = defaultServiceManager(); LOGI("ServiceManager: %p", sm.get()); +#ifdef YAMAHAPLAYER + yamaha::media::InstantiateService(); +#endif +#ifdef SECTVOUT + SecTVOutService::instantiate(); +#endif AudioFlinger::instantiate(); MediaPlayerService::instantiate(); CameraService::instantiate();