1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (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.0
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  */
16 
17 package android.car.experimental;
18 
19 import android.car.experimental.DriverAwarenessEvent;
20 import android.car.experimental.DriverAwarenessSupplierConfig;
21 
22 /**
23  * Binder callback for IDriverAwarenessSupplier.
24  *
25  * @hide
26  */
27 interface IDriverAwarenessSupplierCallback {
28    /**
29     * Sets the awareness level for the driver. Determining sufficient data quality is the
30     * responsibility of the AwarenessSupplier and events with insufficient data quality should not
31     * be sent.
32     *
33     * <p>Suppliers could crash in the background or fail to send continuously high data and
34     * therefore should push events, even if the Awareness level hasn't changed, with a frequency
35     * greater than their specified AwarenessSupplier#getMaxStalenessMillis().
36     *
37     * <p>Should be called once when first registered.
38     *
39     * @param event a snapshot of the driver's awareness at a certain point in time.
40     */
41    void onDriverAwarenessUpdated(in DriverAwarenessEvent event) = 0;
42 
43    /**
44     * Sends the configuration for IDriverAwarenessSupplier configuration that this is a callback
45     * for.
46     *
47     * @param config for the IDriverAwarenessSupplier
48     */
49    void onConfigLoaded(in DriverAwarenessSupplierConfig config) = 1;
50 }
51