diff options
author | Steven Moreland <smoreland@google.com> | 2019-07-25 17:13:52 -0700 |
---|---|---|
committer | Ivailo Karamanolev <ivailok@google.com> | 2020-01-22 23:28:07 +0100 |
commit | bb89a958e5d762743393aab99b30f937474cf104 (patch) | |
tree | 27c4f56235cdc11aaa8852efeea403bb3bad2be8 /light/aidl/default/main.cpp | |
parent | 79b9f5026dcbed99a609d06893f0291c3e750384 (diff) |
Add AIDL Lights HAL to support multiple lights per type
This is a revision of the previous 2.0 HIDL-based light HAL.
It accomplishes 2 goals:
1) Support more than 1 light for a given type. This allows Assistant to
use the HAL on TV platforms that have usually 4 indicator lights.
2) Use AIDL, which is the more modern way of writing HALs.
The previous HAL is in hardware/interfaces/light/2.0 and the new one is
in versioned as aidl, as that supports forward compatibility.
Test: atest VtsHalLightTargetTest
Bug: 142715294, 142230898
Change-Id: I08d831ca0380d8bb187e43f6d5c214810ff72f50
Diffstat (limited to 'light/aidl/default/main.cpp')
-rw-r--r-- | light/aidl/default/main.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/light/aidl/default/main.cpp b/light/aidl/default/main.cpp new file mode 100644 index 0000000000..a860bf4a98 --- /dev/null +++ b/light/aidl/default/main.cpp @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2020 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. + */ + +#include "Lights.h" + +#include <android-base/logging.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> + +using ::aidl::android::hardware::light::Lights; + +int main() { + ABinderProcess_setThreadPoolMaxThreadCount(0); + std::shared_ptr<Lights> lights = ndk::SharedRefBase::make<Lights>(); + + const std::string instance = std::string() + Lights::descriptor + "/default"; + binder_status_t status = AServiceManager_addService(lights->asBinder().get(), instance.c_str()); + CHECK(status == STATUS_OK); + + ABinderProcess_joinThreadPool(); + return EXIT_FAILURE; // should not reached +} |