/* * 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. */ package android.hardware.contexthub@1.2; import @1.0::ContextHub; import @1.0::Result; import @1.1::IContexthub; import @1.1::SettingValue; import IContexthubCallback; interface IContexthub extends @1.1::IContexthub { /** * Enumerate all available context hubs on the system. * * @return hubs list of hubs on this system. * @return supportedPermissions list of Android permissions all hubs * support for nanoapps to enforce host * endpoints are granted in order to * communicate with them. */ getHubs_1_2() generates (vec hubs, vec supportedPermissions); /** * Register a callback for the HAL implementation to send asynchronous * messages to the service from a context hub. There can be a maximum of * one callback registered with the HAL. A call to this function when a * callback has already been registered must override the previous * registration. * * @param hubId identifier for the hub * @param callback an implementation of the IContextHubCallbacks * * @return result OK on success * BAD_VALUE if parameters are not valid * */ registerCallback_1_2(uint32_t hubId, IContexthubCallback cb) generates (Result result); /** * Notification sent by the framework to indicate that the user * has changed a setting. * * @param setting User setting that has been modified. * @param newValue The update value of the user setting. */ onSettingChanged_1_2(Setting setting, @1.1::SettingValue newValue); };