blob: 3239274f9fa7dc1706b0d16baff006cd4d35e43b [file] [log] [blame]
Jaesoo Lee812e85e2017-04-28 18:29:40 +09001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.1
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Jiyong Park200825e2017-01-14 19:40:33 +090016
Jaesoo Lee812e85e2017-04-28 18:29:40 +090017#include "SurfaceFlingerConfigs.h"
Jiyong Park200825e2017-01-14 19:40:33 +090018
19namespace android {
20namespace hardware {
21namespace configstore {
Sundong Ahna54e67a2017-07-10 13:56:10 +090022namespace V1_0 {
Jiyong Park200825e2017-01-14 19:40:33 +090023namespace implementation {
24
Jaesoo Lee812e85e2017-04-28 18:29:40 +090025// Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs
26// follow.
Jiyong Park200825e2017-01-14 19:40:33 +090027Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
28#ifdef VSYNC_EVENT_PHASE_OFFSET_NS
29 _hidl_cb({true, VSYNC_EVENT_PHASE_OFFSET_NS});
Jiyong Park200825e2017-01-14 19:40:33 +090030#else
31 _hidl_cb({false, 0});
32#endif
33 return Void();
34}
35
Fabien Sanglardeebc9252017-03-06 11:46:36 -080036Return<void> SurfaceFlingerConfigs::vsyncSfEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
37#ifdef SF_VSYNC_EVENT_PHASE_OFFSET_NS
38 _hidl_cb({true, SF_VSYNC_EVENT_PHASE_OFFSET_NS});
Fabien Sanglardeebc9252017-03-06 11:46:36 -080039#else
40 _hidl_cb({false, 0});
41#endif
42 return Void();
43}
44
Fabien Sanglardcbece282017-03-13 13:03:04 -070045Return<void> SurfaceFlingerConfigs::useContextPriority(useContextPriority_cb _hidl_cb) {
46#ifdef USE_CONTEXT_PRIORITY
47 _hidl_cb({true, USE_CONTEXT_PRIORITY});
Fabien Sanglardcbece282017-03-13 13:03:04 -070048#else
49 _hidl_cb({false, false});
50#endif
51 return Void();
52}
53
Jaesoo Lee812e85e2017-04-28 18:29:40 +090054Return<void> SurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers(
55 maxFrameBufferAcquiredBuffers_cb _hidl_cb) {
Fabien Sanglard3d9f5ad2017-03-10 15:37:07 -080056#ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS
57 _hidl_cb({true, NUM_FRAMEBUFFER_SURFACE_BUFFERS});
Fabien Sanglard3d9f5ad2017-03-10 15:37:07 -080058#else
59 _hidl_cb({false, 0});
60#endif
61 return Void();
62}
63
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070064Return<void> SurfaceFlingerConfigs::hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb) {
65 bool value = false;
66#ifdef HAS_WIDE_COLOR_DISPLAY
67 value = true;
68#endif
69 _hidl_cb({true, value});
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070070 return Void();
71}
72
Fabien Sanglardbf4da3d2017-03-10 17:15:43 -080073Return<void> SurfaceFlingerConfigs::hasSyncFramework(hasSyncFramework_cb _hidl_cb) {
74 bool value = true;
75#ifdef RUNNING_WITHOUT_SYNC_FRAMEWORK
76 value = false;
77#endif
78 _hidl_cb({true, value});
Fabien Sanglardbf4da3d2017-03-10 17:15:43 -080079 return Void();
80}
81
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070082Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
83 bool value = false;
84#ifdef HAS_HDR_DISPLAY
85 value = true;
86#endif
87 _hidl_cb({true, value});
Courtney Goeltzenleuchter3670b442017-03-09 09:04:29 -070088 return Void();
89}
90
Jaesoo Lee812e85e2017-04-28 18:29:40 +090091Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(
92 presentTimeOffsetFromVSyncNs_cb _hidl_cb) {
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070093#ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS
Jaesoo Lee812e85e2017-04-28 18:29:40 +090094 _hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS});
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070095#else
Jaesoo Lee812e85e2017-04-28 18:29:40 +090096 _hidl_cb({false, 0});
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070097#endif
Jaesoo Lee812e85e2017-04-28 18:29:40 +090098 return Void();
Fabien Sanglard8d7e31e2017-03-14 13:16:30 -070099}
100
Fabien Sanglard38295e72017-03-14 11:43:18 -0700101Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) {
102 bool value = false;
103#ifdef FORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS
104 value = true;
105#endif
106 _hidl_cb({true, value});
Fabien Sanglard38295e72017-03-14 11:43:18 -0700107 return Void();
108}
Jiyong Park200825e2017-01-14 19:40:33 +0900109
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800110Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
Jaesoo Lee812e85e2017-04-28 18:29:40 +0900111 uint64_t maxSize = 0;
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800112#ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
Jaesoo Lee812e85e2017-04-28 18:29:40 +0900113 maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
114 _hidl_cb({true, maxSize});
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800115#else
Jaesoo Lee812e85e2017-04-28 18:29:40 +0900116 _hidl_cb({false, maxSize});
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800117#endif
Jaesoo Lee812e85e2017-04-28 18:29:40 +0900118 return Void();
Fabien Sanglarda33c7e42017-03-10 10:31:14 -0800119}
120
Steven Thomascb4172a2017-03-13 17:42:18 -0700121Return<void> SurfaceFlingerConfigs::useVrFlinger(useVrFlinger_cb _hidl_cb) {
122 bool value = false;
123 bool specified = false;
124#ifdef USE_VR_FLINGER
125 value = true;
126 specified = true;
127#endif
128 _hidl_cb({specified, value});
Steven Thomascb4172a2017-03-13 17:42:18 -0700129 return Void();
130}
131
Chia-I Wu12246402017-04-11 15:17:24 -0700132Return<void> SurfaceFlingerConfigs::startGraphicsAllocatorService(
133 startGraphicsAllocatorService_cb _hidl_cb) {
134 bool value = false;
135#ifdef START_GRAPHICS_ALLOCATOR_SERVICE
136 value = true;
137#endif
138 _hidl_cb({true, value});
139 return Void();
140}
141
Jaesoo Lee812e85e2017-04-28 18:29:40 +0900142// Methods from ::android::hidl::base::V1_0::IBase follow.
143
Jiyong Park200825e2017-01-14 19:40:33 +0900144} // namespace implementation
Sundong Ahna54e67a2017-07-10 13:56:10 +0900145} // namespace V1_0
Jiyong Park200825e2017-01-14 19:40:33 +0900146} // namespace configstore
147} // namespace hardware
148} // namespace android