blob: 6b44b71417c920ad707f17dfbe06d7163a93e208 [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
Jaesoo Leed643fc02017-01-23 19:09:02 +090032Return<void> SurfaceFlingerConfigs::useTripleFramebuffer(useTripleFramebuffer_cb _hidl_cb) {
33 bool value = false;
34#ifdef USE_TRIPLE_FRAMEBUFFER
35 value = true;
36#endif
37 _hidl_cb({true, value});
38 LOG(INFO) << "SurfaceFlinger FrameBuffer: " << (value ? "triple" : "double");
39 return Void();
40}
Jiyong Park200825e2017-01-14 19:40:33 +090041
Fabien Sanglardcbece282017-03-13 13:03:04 -070042Return<void> SurfaceFlingerConfigs::useContextPriority(useContextPriority_cb _hidl_cb) {
43#ifdef USE_CONTEXT_PRIORITY
44 _hidl_cb({true, USE_CONTEXT_PRIORITY});
45 LOG(INFO) << "SurfaceFlinger useContextPriority=" << USE_CONTEXT_PRIORITY;
46#else
47 _hidl_cb({false, false});
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
62Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
63 bool value = false;
64#ifdef HAS_HDR_DISPLAY
65 value = true;
66#endif
67 _hidl_cb({true, value});
68 LOG(INFO) << "SurfaceFlinger Display: " << (value ? "HDR" : "SDR");
69 return Void();
70}
71
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070072Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) {
73#ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS
74 _hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS});
75 LOG(INFO) << "SurfaceFlinger presentTimeStampOffsetNs = " << PRESENT_TIME_OFFSET_FROM_VSYNC_NS;
76#else
77 _hidl_cb({false, 0});
78#endif
79 return Void();
80}
81
Fabien Sanglard38295e72017-03-14 11:43:18 -070082Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) {
83 bool value = false;
84#ifdef FORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS
85 value = true;
86#endif
87 _hidl_cb({true, value});
88 LOG(INFO) << "SurfaceFlinger forceHwcForRGBtoYUV: " << value;
89 return Void();
90}
Jiyong Park200825e2017-01-14 19:40:33 +090091
Fabien Sanglarda33c7e42017-03-10 10:31:14 -080092Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
93 uint64_t maxSize = 0;
94#ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
95 maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
96 _hidl_cb({true, maxSize});
97 LOG(INFO) << "SurfaceFlinger MaxVirtualDisplaySize: " << maxSize;
98#else
99 _hidl_cb({false, maxSize});
100#endif
101 return Void();
102}
103
Fabien Sanglard38295e72017-03-14 11:43:18 -0700104// Methods from ::android::hidl::base::V1_0::IBase follow.
Jiyong Park200825e2017-01-14 19:40:33 +0900105ISurfaceFlingerConfigs* HIDL_FETCH_ISurfaceFlingerConfigs(const char* /* name */) {
106 return new SurfaceFlingerConfigs();
107}
108
109} // namespace implementation
110} // namespace V1_0
111} // namespace configstore
112} // namespace hardware
113} // namespace android