blob: 87c9ffb47407f0bf99b0ea8686ba1958a6611858 [file] [log] [blame]
Jiyong Park200825e2017-01-14 19:40:33 +09001#include "SurfaceFlingerConfigs.h"
2
3#include <android-base/logging.h>
4
5namespace android {
6namespace hardware {
7namespace configstore {
8namespace V1_0 {
9namespace implementation {
10
11// Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow.
12Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
13#ifdef VSYNC_EVENT_PHASE_OFFSET_NS
14 _hidl_cb({true, VSYNC_EVENT_PHASE_OFFSET_NS});
15 LOG(INFO) << "vsync event phase offset ns = " << VSYNC_EVENT_PHASE_OFFSET_NS;
16#else
17 _hidl_cb({false, 0});
18#endif
19 return Void();
20}
21
Fabien Sanglardeebc9252017-03-06 11:46:36 -080022Return<void> SurfaceFlingerConfigs::vsyncSfEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
23#ifdef SF_VSYNC_EVENT_PHASE_OFFSET_NS
24 _hidl_cb({true, SF_VSYNC_EVENT_PHASE_OFFSET_NS});
25 LOG(INFO) << "sfvsync event phase offset ns = " << SF_VSYNC_EVENT_PHASE_OFFSET_NS;
26#else
27 _hidl_cb({false, 0});
28#endif
29 return Void();
30}
31
Fabien Sanglardcbece282017-03-13 13:03:04 -070032Return<void> SurfaceFlingerConfigs::useContextPriority(useContextPriority_cb _hidl_cb) {
33#ifdef USE_CONTEXT_PRIORITY
34 _hidl_cb({true, USE_CONTEXT_PRIORITY});
35 LOG(INFO) << "SurfaceFlinger useContextPriority=" << USE_CONTEXT_PRIORITY;
36#else
37 _hidl_cb({false, false});
38#endif
39 return Void();
40}
41
Fabien Sanglard3d9f5ad2017-03-10 15:37:07 -080042Return<void> SurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb) {
43#ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS
44 _hidl_cb({true, NUM_FRAMEBUFFER_SURFACE_BUFFERS});
45 LOG(INFO) << "SurfaceFlinger FrameBuffer max acquired buffers : " << NUM_FRAMEBUFFER_SURFACE_BUFFERS;
46#else
47 _hidl_cb({false, 0});
48#endif
49 return Void();
50}
51
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070052Return<void> SurfaceFlingerConfigs::hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb) {
53 bool value = false;
54#ifdef HAS_WIDE_COLOR_DISPLAY
55 value = true;
56#endif
57 _hidl_cb({true, value});
58 LOG(INFO) << "SurfaceFlinger Display: " << (value ? "Wide Color" : "Standard Color");
59 return Void();
60}
61
Fabien Sanglardbf4da3d2017-03-10 17:15:43 -080062Return<void> SurfaceFlingerConfigs::hasSyncFramework(hasSyncFramework_cb _hidl_cb) {
63 bool value = true;
64#ifdef RUNNING_WITHOUT_SYNC_FRAMEWORK
65 value = false;
66#endif
67 _hidl_cb({true, value});
68 LOG(INFO) << "SurfaceFlinger hasSyncFramework: " << value;
69 return Void();
70}
71
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070072Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
73 bool value = false;
74#ifdef HAS_HDR_DISPLAY
75 value = true;
76#endif
77 _hidl_cb({true, value});
78 LOG(INFO) << "SurfaceFlinger Display: " << (value ? "HDR" : "SDR");
79 return Void();
80}
81
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070082Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) {
83#ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS
84 _hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS});
85 LOG(INFO) << "SurfaceFlinger presentTimeStampOffsetNs = " << PRESENT_TIME_OFFSET_FROM_VSYNC_NS;
86#else
87 _hidl_cb({false, 0});
88#endif
89 return Void();
90}
91
Fabien Sanglard38295e72017-03-14 11:43:18 -070092Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) {
93 bool value = false;
94#ifdef FORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS
95 value = true;
96#endif
97 _hidl_cb({true, value});
98 LOG(INFO) << "SurfaceFlinger forceHwcForRGBtoYUV: " << value;
99 return Void();
100}
Jiyong Park200825e2017-01-14 19:40:33 +0900101
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800102Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
103 uint64_t maxSize = 0;
104#ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
105 maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
106 _hidl_cb({true, maxSize});
107 LOG(INFO) << "SurfaceFlinger MaxVirtualDisplaySize: " << maxSize;
108#else
109 _hidl_cb({false, maxSize});
110#endif
111 return Void();
112}
113
Steven Thomascb4172a2017-03-13 17:42:18 -0700114Return<void> SurfaceFlingerConfigs::useVrFlinger(useVrFlinger_cb _hidl_cb) {
115 bool value = false;
116 bool specified = false;
117#ifdef USE_VR_FLINGER
118 value = true;
119 specified = true;
120#endif
121 _hidl_cb({specified, value});
122 LOG(INFO) << "SurfaceFlinger UseVrFlinger: " << (value ? "true" : "false");
123 return Void();
124}
125
Fabien Sanglard38295e72017-03-14 11:43:18 -0700126// Methods from ::android::hidl::base::V1_0::IBase follow.
Jiyong Park200825e2017-01-14 19:40:33 +0900127ISurfaceFlingerConfigs* HIDL_FETCH_ISurfaceFlingerConfigs(const char* /* name */) {
128 return new SurfaceFlingerConfigs();
129}
130
131} // namespace implementation
132} // namespace V1_0
133} // namespace configstore
134} // namespace hardware
135} // namespace android