summaryrefslogtreecommitdiff
path: root/libvirtualdisplaymodule
diff options
context:
space:
mode:
authorcodewalker <codewalker@hardkernel.com>2014-08-19 18:20:50 +0900
committerDongjin Kim <tobetter@gmail.com>2014-08-19 18:47:59 +0900
commit500214a10db4a78d4eee9649ced413716b7c2fbb (patch)
tree5731fbcab43476265d26996e5be9e6fe50545f8b /libvirtualdisplaymodule
parent6414706ded5e58737ec115a9963d24627e02f8e1 (diff)
downloadandroid_hardware_samsung_slsi_exynos5430-500214a10db4a78d4eee9649ced413716b7c2fbb.tar.gz
android_hardware_samsung_slsi_exynos5430-500214a10db4a78d4eee9649ced413716b7c2fbb.tar.xz
android_hardware_samsung_slsi_exynos5430-500214a10db4a78d4eee9649ced413716b7c2fbb.zip
Samsung Patch (05/27/2014) - RTM 1.00
Change-Id: I013f933ac0a52c4cc1b5e5b550a92b06534a0a34
Diffstat (limited to 'libvirtualdisplaymodule')
-rw-r--r--libvirtualdisplaymodule/Android.mk43
-rw-r--r--libvirtualdisplaymodule/ExynosVirtualDisplayModule.cpp37
-rw-r--r--libvirtualdisplaymodule/ExynosVirtualDisplayModule.h14
3 files changed, 94 insertions, 0 deletions
diff --git a/libvirtualdisplaymodule/Android.mk b/libvirtualdisplaymodule/Android.mk
new file mode 100644
index 0000000..bc422eb
--- /dev/null
+++ b/libvirtualdisplaymodule/Android.mk
@@ -0,0 +1,43 @@
+# Copyright (C) 2008 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ifeq ($(filter-out exynos5,$(TARGET_BOARD_PLATFORM)),)
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_PRELINK_MODULE := false
+LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libexynosutils libexynosv4l2 libsync libdisplay libvirtualdisplay
+
+LOCAL_CFLAGS += -DUSES_VIRTUAL_DISPLAY
+
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH)/../../exynos5/include \
+ $(TOP)/hardware/samsung_slsi/exynos/include \
+ $(TOP)/hardware/samsung_slsi/exynos/libexynosutils \
+ $(TOP)/hardware/samsung_slsi/$(TARGET_SOC)/include \
+ $(TOP)/hardware/samsung_slsi/$(TARGET_SOC)/libhwcmodule \
+ $(TOP)/hardware/samsung_slsi/exynos/libhwc \
+ $(TOP)/hardware/samsung_slsi/exynos/libhwcutils \
+ $(TOP)/hardware/samsung_slsi/exynos/libdisplay \
+ $(TOP)/hardware/samsung_slsi/exynos/libvirtualdisplay
+
+LOCAL_SRC_FILES := \
+ ExynosVirtualDisplayModule.cpp
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := libvirtualdisplaymodule
+include $(BUILD_SHARED_LIBRARY)
+
+endif
diff --git a/libvirtualdisplaymodule/ExynosVirtualDisplayModule.cpp b/libvirtualdisplaymodule/ExynosVirtualDisplayModule.cpp
new file mode 100644
index 0000000..10fe1fc
--- /dev/null
+++ b/libvirtualdisplaymodule/ExynosVirtualDisplayModule.cpp
@@ -0,0 +1,37 @@
+#include "ExynosVirtualDisplayModule.h"
+
+ExynosVirtualDisplayModule::ExynosVirtualDisplayModule(struct exynos5_hwc_composer_device_1_t *pdev)
+ : ExynosVirtualDisplay(pdev)
+{
+ mGLESFormat = HAL_PIXEL_FORMAT_RGBA_8888;
+}
+
+ExynosVirtualDisplayModule::~ExynosVirtualDisplayModule()
+{
+}
+
+int32_t ExynosVirtualDisplayModule::getDisplayAttributes(const uint32_t attribute)
+{
+ switch(attribute) {
+ case HWC_DISPLAY_COMPOSITION_TYPE:
+ return mCompositionType;
+ case HWC_DISPLAY_GLES_FORMAT:
+ return mGLESFormat;
+ case HWC_DISPLAY_SINK_BQ_FORMAT:
+ return HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M;
+ case HWC_DISPLAY_SINK_BQ_USAGE:
+ return mSinkUsage;
+ case HWC_DISPLAY_SINK_BQ_WIDTH:
+ if (mDisplayWidth == 0)
+ return mWidth;
+ return mDisplayWidth;
+ case HWC_DISPLAY_SINK_BQ_HEIGHT:
+ if (mDisplayHeight == 0)
+ return mHeight;
+ return mDisplayHeight;
+ default:
+ ALOGE("unknown display attribute %u", attribute);
+ return -EINVAL;
+ }
+ return 0;
+}
diff --git a/libvirtualdisplaymodule/ExynosVirtualDisplayModule.h b/libvirtualdisplaymodule/ExynosVirtualDisplayModule.h
new file mode 100644
index 0000000..44c31ff
--- /dev/null
+++ b/libvirtualdisplaymodule/ExynosVirtualDisplayModule.h
@@ -0,0 +1,14 @@
+#ifndef EXYNOS_VIRTUAL_DISPLAY_MODULE_H
+#define EXYNOS_VIRTUAL_DISPLAY_MODULE_H
+
+#include "ExynosVirtualDisplay.h"
+
+class ExynosVirtualDisplayModule : public ExynosVirtualDisplay {
+ public:
+ ExynosVirtualDisplayModule(struct exynos5_hwc_composer_device_1_t *pdev);
+ ~ExynosVirtualDisplayModule();
+
+ virtual int32_t getDisplayAttributes(const uint32_t attribute);
+};
+
+#endif