1 #pragma once
2 
3 #ifndef ANDROID_HARDWARE_FLAGS
4 #define ANDROID_HARDWARE_FLAGS(FLAG) ANDROID_HARDWARE_FLAGS_##FLAG
5 #endif
6 
7 #ifndef ANDROID_HARDWARE_FLAGS_LUTS_API
8 #define ANDROID_HARDWARE_FLAGS_LUTS_API false
9 #endif
10 
11 #ifdef __cplusplus
12 
13 #include <memory>
14 
15 namespace android::hardware::flags {
16 
17 class flag_provider_interface {
18 public:
19     virtual ~flag_provider_interface() = default;
20     virtual bool luts_api() = 0;
21     virtual bool overlayproperties_class_api() = 0;
22 };
23 
24 extern std::unique_ptr<flag_provider_interface> provider_;
25 
26 
luts_api()27 inline bool luts_api() {
28     return ANDROID_HARDWARE_FLAGS_LUTS_API;
29 }
overlayproperties_class_api()30 inline bool overlayproperties_class_api() {
31     return true;
32 }
33 
34 }
35 
36 extern "C" {
37 #endif // __cplusplus
38 
39 
40 bool android_hardware_flags_luts_api();
41 bool android_hardware_flags_overlayproperties_class_api();
42 
43 #ifdef __cplusplus
44 } // extern "C"
45 #endif
46 
47