1 #include "SurfaceFlingerConfigs.h"
2
3 #include <android-base/logging.h>
4
5 namespace android {
6 namespace hardware {
7 namespace configstore {
8 namespace V1_0 {
9 namespace implementation {
10
11 // Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow.
vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb)12 Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
13 #ifdef VSYNC_EVENT_PHASE_OFFSET_NS
14 _hidl_cb({true, VSYNC_EVENT_PHASE_OFFSET_NS});
15 #else
16 _hidl_cb({false, 0});
17 #endif
18 return Void();
19 }
20
vsyncSfEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb)21 Return<void> SurfaceFlingerConfigs::vsyncSfEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
22 #ifdef SF_VSYNC_EVENT_PHASE_OFFSET_NS
23 _hidl_cb({true, SF_VSYNC_EVENT_PHASE_OFFSET_NS});
24 #else
25 _hidl_cb({false, 0});
26 #endif
27 return Void();
28 }
29
useContextPriority(useContextPriority_cb _hidl_cb)30 Return<void> SurfaceFlingerConfigs::useContextPriority(useContextPriority_cb _hidl_cb) {
31 #ifdef USE_CONTEXT_PRIORITY
32 _hidl_cb({true, USE_CONTEXT_PRIORITY});
33 #else
34 _hidl_cb({false, false});
35 #endif
36 return Void();
37 }
38
maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb)39 Return<void> SurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb) {
40 #ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS
41 _hidl_cb({true, NUM_FRAMEBUFFER_SURFACE_BUFFERS});
42 #else
43 _hidl_cb({false, 0});
44 #endif
45 return Void();
46 }
47
hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb)48 Return<void> SurfaceFlingerConfigs::hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb) {
49 bool value = false;
50 #ifdef HAS_WIDE_COLOR_DISPLAY
51 value = true;
52 #endif
53 _hidl_cb({true, value});
54 return Void();
55 }
56
hasSyncFramework(hasSyncFramework_cb _hidl_cb)57 Return<void> SurfaceFlingerConfigs::hasSyncFramework(hasSyncFramework_cb _hidl_cb) {
58 bool value = true;
59 #ifdef RUNNING_WITHOUT_SYNC_FRAMEWORK
60 value = false;
61 #endif
62 _hidl_cb({true, value});
63 return Void();
64 }
65
hasHDRDisplay(hasHDRDisplay_cb _hidl_cb)66 Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
67 bool value = false;
68 #ifdef HAS_HDR_DISPLAY
69 value = true;
70 #endif
71 _hidl_cb({true, value});
72 return Void();
73 }
74
presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb)75 Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) {
76 #ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS
77 _hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS});
78 #else
79 _hidl_cb({false, 0});
80 #endif
81 return Void();
82 }
83
useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb)84 Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) {
85 bool value = false;
86 #ifdef FORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS
87 value = true;
88 #endif
89 _hidl_cb({true, value});
90 return Void();
91 }
92
maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb)93 Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
94 uint64_t maxSize = 0;
95 #ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
96 maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
97 _hidl_cb({true, maxSize});
98 #else
99 _hidl_cb({false, maxSize});
100 #endif
101 return Void();
102 }
103
useVrFlinger(useVrFlinger_cb _hidl_cb)104 Return<void> SurfaceFlingerConfigs::useVrFlinger(useVrFlinger_cb _hidl_cb) {
105 bool value = false;
106 bool specified = false;
107 #ifdef USE_VR_FLINGER
108 value = true;
109 specified = true;
110 #endif
111 _hidl_cb({specified, value});
112 return Void();
113 }
114
startGraphicsAllocatorService(startGraphicsAllocatorService_cb _hidl_cb)115 Return<void> SurfaceFlingerConfigs::startGraphicsAllocatorService(
116 startGraphicsAllocatorService_cb _hidl_cb) {
117 bool value = false;
118 #ifdef START_GRAPHICS_ALLOCATOR_SERVICE
119 value = true;
120 #endif
121 _hidl_cb({true, value});
122 return Void();
123 }
124
125 } // namespace implementation
126 } // namespace V1_0
127 } // namespace configstore
128 } // namespace hardware
129 } // namespace android
130