1 /*
2  * Copyright (C) 2022 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.oem;
18 
19 import android.car.CarVersion;
20 import android.car.oem.IOemCarAudioDuckingService;
21 import android.car.oem.IOemCarAudioFocusService;
22 import android.car.oem.IOemCarAudioVolumeService;
23 import android.car.oem.IOemCarServiceCallback;
24 
25 /*
26  * Binder for communicating with OEM Car Service.
27  */
28 
29 /** @hide */
30 interface IOemCarService {
31     // Life cycle methods
32     /*
33      * Called when CarService is ready to take request. OemCarService is initialized before
34      * Car Service is ready. This signals OEM Service that CarService is ready.
35      * OemCarServiceCallback is passed from Car Service to OEM Service. One important call in the
36      * callback is sendOemCarServiceReady() which should be called to inform that OEM service is
37      * ready.
38      */
onCarServiceReady(in IOemCarServiceCallback callback)39     void onCarServiceReady(in IOemCarServiceCallback callback);
40 
41     /*
42      * Gets the supported CarVersion for the OEM service. It is possible that CarModule is updated
43      * but OEM service is not updated. CarService needs to be aware of that.
44      */
getSupportedCarVersion()45     CarVersion getSupportedCarVersion();
46 
47     /*
48      * Gets the supported CarVersion for the OEM service. It is possible that CarModule is updated
49      * but OEM service is not updated. CarService needs to be aware of that.
50      */
getAllStackTraces()51     String getAllStackTraces();
52 
53     /**
54      * Returns the corresponding car audio service, this will be used by car audio service for
55      * audio focus evaluation.
56      */
getOemAudioFocusService()57     IOemCarAudioFocusService getOemAudioFocusService();
58 
59     /**
60      * Returns the corresponding car volume service, this will be used by car audio service for
61      * audio volume evaluations.
62      */
getOemAudioVolumeService()63     IOemCarAudioVolumeService getOemAudioVolumeService();
64 
65     /**
66      * Returns the corresponding car ducking service, this will be used by car audio service for
67      * audio ducking evaluations.
68      */
getOemAudioDuckingService()69     IOemCarAudioDuckingService getOemAudioDuckingService();
70 }
71