| /* |
| * Copyright (C) 2022 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef ANDROID_HWC_COMMON_H |
| #define ANDROID_HWC_COMMON_H |
| |
| #include <inttypes.h> |
| |
| #include <string> |
| |
| #define ATRACE_TAG (ATRACE_TAG_GRAPHICS | ATRACE_TAG_HAL) |
| |
| #undef LOG_TAG |
| #define LOG_TAG "RanchuHwc" |
| |
| #include <aidl/android/hardware/graphics/composer3/IComposerClient.h> |
| #include <android-base/logging.h> |
| #include <log/log.h> |
| #include <utils/Trace.h> |
| |
| // Uncomment to enable additional debug logging. |
| //#define DEBUG_RANCHU_HWC |
| |
| #if defined(DEBUG_RANCHU_HWC) |
| #define DEBUG_LOG ALOGE |
| #else |
| #define DEBUG_LOG(...) ((void)0) |
| #endif |
| |
| namespace aidl::android::hardware::graphics::composer3::impl { |
| |
| bool IsCuttlefish(); |
| bool IsCuttlefishFoldable(); |
| bool IsNoOpMode(); |
| |
| namespace HWC3 { |
| enum class Error : int32_t { |
| None = 0, |
| BadConfig = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_BAD_CONFIG, |
| BadDisplay = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_BAD_DISPLAY, |
| BadLayer = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_BAD_LAYER, |
| BadParameter = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_BAD_PARAMETER, |
| NoResources = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_NO_RESOURCES, |
| NotValidated = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_NOT_VALIDATED, |
| Unsupported = aidl::android::hardware::graphics::composer3::IComposerClient:: |
| EX_UNSUPPORTED, |
| SeamlessNotAllowed = aidl::android::hardware::graphics::composer3:: |
| IComposerClient::EX_SEAMLESS_NOT_ALLOWED, |
| }; |
| } // namespace HWC3 |
| |
| std::string toString(HWC3::Error error); |
| |
| inline ndk::ScopedAStatus ToBinderStatus(HWC3::Error error) { |
| if (error != HWC3::Error::None) { |
| return ndk::ScopedAStatus::fromServiceSpecificError( |
| static_cast<int32_t>(error)); |
| } |
| return ndk::ScopedAStatus::ok(); |
| } |
| |
| } // namespace aidl::android::hardware::graphics::composer3::impl |
| |
| #endif |