Loading include/ui/FramebufferNativeWindow.h +10 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,10 @@ #define MIN_NUM_FRAME_BUFFERS 2 #define MAX_NUM_FRAME_BUFFERS 3 #ifdef SAMSUNG_HDMI_SUPPORT #include "SecHdmiClient.h" #endif extern "C" EGLNativeWindowType android_createDisplaySurface(void); // --------------------------------------------------------------------------- Loading @@ -39,6 +43,9 @@ namespace android { class Surface; class NativeBuffer; #ifdef SAMSUNG_HDMI_SUPPORT class SecHdmiClient; #endif // --------------------------------------------------------------------------- Loading Loading @@ -88,6 +95,9 @@ private: int32_t mBufferHead; int32_t mCurrentBufferIndex; bool mUpdateOnDemand; #ifdef SAMSUNG_HDMI_SUPPORT SecHdmiClient *mHdmiClient; #endif }; // --------------------------------------------------------------------------- Loading libs/ui/Android.mk +19 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,25 @@ ifeq ($(TARGET_USES_QCOM_BSP),true) LOCAL_CFLAGS += -DQCOM_BSP endif ifeq ($(TARGET_SOC),exynos4210) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS4210 endif ifeq ($(TARGET_SOC),exynos4x12) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS4x12 endif ifeq ($(TARGET_SOC),exynos5250) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS5250 endif ifeq ($(BOARD_USES_SAMSUNG_HDMI),true) LOCAL_CFLAGS += -DSAMSUNG_HDMI_SUPPORT LOCAL_SHARED_LIBRARIES += libhdmiclient LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/libhdmi/libhdmiservice LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/include endif LOCAL_MODULE:= libui include $(BUILD_SHARED_LIBRARY) Loading libs/ui/FramebufferNativeWindow.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ FramebufferNativeWindow::FramebufferNativeWindow() : BASE(), fbDev(0), grDev(0), mUpdateOnDemand(false) { hw_module_t const* module; #ifdef SAMSUNG_HDMI_SUPPORT mHdmiClient = android::SecHdmiClient::getInstance(); #endif if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module) == 0) { int stride; int err; Loading Loading @@ -287,6 +292,25 @@ int FramebufferNativeWindow::queueBuffer(ANativeWindow* window, self->front = static_cast<NativeBuffer*>(buffer); self->mNumFreeBuffers++; self->mCondition.broadcast(); #ifdef SAMSUNG_HDMI_SUPPORT #if defined(SAMSUNG_EXYNOS4210) || defined(SAMSUNG_EXYNOS4x12) if (self->mHdmiClient != NULL) self->mHdmiClient->blit2Hdmi(buffer->width, buffer->height, HAL_PIXEL_FORMAT_BGRA_8888, 0, 0, 0, 0, 0, android::SecHdmiClient::HDMI_MODE_UI, 0); #elif defined(SAMSUNG_EXYNOS5250) if (self->mHdmiClient != NULL) self->mHdmiClient->blit2Hdmi(buffer->width, buffer->height, HAL_PIXEL_FORMAT_BGRA_8888, 0, 0, 0, 0, 0, android::SecHdmiClient::HDMI_MODE_MIRROR, 0); #endif #endif return res; } Loading services/surfaceflinger/Android.mk +7 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ ifeq ($(TARGET_USES_QCOM_BSP), true) LOCAL_CFLAGS += -DQCOM_BSP endif ifeq ($(BOARD_USES_SAMSUNG_HDMI),true) LOCAL_CFLAGS += -DSAMSUNG_HDMI_SUPPORT LOCAL_SHARED_LIBRARIES += libTVOut libhdmiclient LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/libhdmi/libhdmiservice LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/include endif LOCAL_MODULE:= libsurfaceflinger include $(BUILD_SHARED_LIBRARY) Loading services/surfaceflinger/SurfaceFlinger.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,10 @@ #include "DisplayHardware/HWComposer.h" #include "DisplayHardware/VirtualDisplaySurface.h" #ifdef SAMSUNG_HDMI_SUPPORT #include "SecTVOutService.h" #endif #define DISPLAY_COUNT 1 EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); Loading Loading @@ -125,6 +129,16 @@ SurfaceFlinger::SurfaceFlinger() } ALOGI_IF(mDebugRegion, "showupdates enabled"); ALOGI_IF(mDebugDDMS, "DDMS debugging enabled"); #ifdef SAMSUNG_HDMI_SUPPORT ALOGD(">>> Run service"); android::SecTVOutService::instantiate(); #if defined(SAMSUNG_EXYNOS5250) mHdmiClient = SecHdmiClient::getInstance(); mHdmiClient->setHdmiEnable(1); #endif #endif } void SurfaceFlinger::onFirstRef() Loading @@ -132,7 +146,6 @@ void SurfaceFlinger::onFirstRef() mEventQueue.init(this); run("SurfaceFlinger", PRIORITY_URGENT_DISPLAY); // Wait for the main thread to be done with its initialization mReadyToRunBarrier.wait(); } Loading Loading
include/ui/FramebufferNativeWindow.h +10 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,10 @@ #define MIN_NUM_FRAME_BUFFERS 2 #define MAX_NUM_FRAME_BUFFERS 3 #ifdef SAMSUNG_HDMI_SUPPORT #include "SecHdmiClient.h" #endif extern "C" EGLNativeWindowType android_createDisplaySurface(void); // --------------------------------------------------------------------------- Loading @@ -39,6 +43,9 @@ namespace android { class Surface; class NativeBuffer; #ifdef SAMSUNG_HDMI_SUPPORT class SecHdmiClient; #endif // --------------------------------------------------------------------------- Loading Loading @@ -88,6 +95,9 @@ private: int32_t mBufferHead; int32_t mCurrentBufferIndex; bool mUpdateOnDemand; #ifdef SAMSUNG_HDMI_SUPPORT SecHdmiClient *mHdmiClient; #endif }; // --------------------------------------------------------------------------- Loading
libs/ui/Android.mk +19 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,25 @@ ifeq ($(TARGET_USES_QCOM_BSP),true) LOCAL_CFLAGS += -DQCOM_BSP endif ifeq ($(TARGET_SOC),exynos4210) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS4210 endif ifeq ($(TARGET_SOC),exynos4x12) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS4x12 endif ifeq ($(TARGET_SOC),exynos5250) LOCAL_CFLAGS += -DSAMSUNG_EXYNOS5250 endif ifeq ($(BOARD_USES_SAMSUNG_HDMI),true) LOCAL_CFLAGS += -DSAMSUNG_HDMI_SUPPORT LOCAL_SHARED_LIBRARIES += libhdmiclient LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/libhdmi/libhdmiservice LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/include endif LOCAL_MODULE:= libui include $(BUILD_SHARED_LIBRARY) Loading
libs/ui/FramebufferNativeWindow.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ FramebufferNativeWindow::FramebufferNativeWindow() : BASE(), fbDev(0), grDev(0), mUpdateOnDemand(false) { hw_module_t const* module; #ifdef SAMSUNG_HDMI_SUPPORT mHdmiClient = android::SecHdmiClient::getInstance(); #endif if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module) == 0) { int stride; int err; Loading Loading @@ -287,6 +292,25 @@ int FramebufferNativeWindow::queueBuffer(ANativeWindow* window, self->front = static_cast<NativeBuffer*>(buffer); self->mNumFreeBuffers++; self->mCondition.broadcast(); #ifdef SAMSUNG_HDMI_SUPPORT #if defined(SAMSUNG_EXYNOS4210) || defined(SAMSUNG_EXYNOS4x12) if (self->mHdmiClient != NULL) self->mHdmiClient->blit2Hdmi(buffer->width, buffer->height, HAL_PIXEL_FORMAT_BGRA_8888, 0, 0, 0, 0, 0, android::SecHdmiClient::HDMI_MODE_UI, 0); #elif defined(SAMSUNG_EXYNOS5250) if (self->mHdmiClient != NULL) self->mHdmiClient->blit2Hdmi(buffer->width, buffer->height, HAL_PIXEL_FORMAT_BGRA_8888, 0, 0, 0, 0, 0, android::SecHdmiClient::HDMI_MODE_MIRROR, 0); #endif #endif return res; } Loading
services/surfaceflinger/Android.mk +7 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ ifeq ($(TARGET_USES_QCOM_BSP), true) LOCAL_CFLAGS += -DQCOM_BSP endif ifeq ($(BOARD_USES_SAMSUNG_HDMI),true) LOCAL_CFLAGS += -DSAMSUNG_HDMI_SUPPORT LOCAL_SHARED_LIBRARIES += libTVOut libhdmiclient LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/libhdmi/libhdmiservice LOCAL_C_INCLUDES += hardware/samsung/$(TARGET_BOARD_PLATFORM)/include endif LOCAL_MODULE:= libsurfaceflinger include $(BUILD_SHARED_LIBRARY) Loading
services/surfaceflinger/SurfaceFlinger.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,10 @@ #include "DisplayHardware/HWComposer.h" #include "DisplayHardware/VirtualDisplaySurface.h" #ifdef SAMSUNG_HDMI_SUPPORT #include "SecTVOutService.h" #endif #define DISPLAY_COUNT 1 EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); Loading Loading @@ -125,6 +129,16 @@ SurfaceFlinger::SurfaceFlinger() } ALOGI_IF(mDebugRegion, "showupdates enabled"); ALOGI_IF(mDebugDDMS, "DDMS debugging enabled"); #ifdef SAMSUNG_HDMI_SUPPORT ALOGD(">>> Run service"); android::SecTVOutService::instantiate(); #if defined(SAMSUNG_EXYNOS5250) mHdmiClient = SecHdmiClient::getInstance(); mHdmiClient->setHdmiEnable(1); #endif #endif } void SurfaceFlinger::onFirstRef() Loading @@ -132,7 +146,6 @@ void SurfaceFlinger::onFirstRef() mEventQueue.init(this); run("SurfaceFlinger", PRIORITY_URGENT_DISPLAY); // Wait for the main thread to be done with its initialization mReadyToRunBarrier.wait(); } Loading