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.media.eco;
18 
19 import android.media.eco.ECOData;
20 
21 /**
22  * Binder interface for ECO service information listener.
23 *
24 * {@hide}
25 */
26 interface IECOServiceInfoListener {
27     /**
28      * All listener Binder calls may return a ServiceSpecificException with the following error
29      * codes.
30      */
31     const int ERROR_PERMISSION_DENIED = 1;
32     const int ERROR_ILLEGAL_ARGUMENT = 2;
33     const int ERROR_INVALID_OPERATION = 3;
34     const int ERROR_UNSUPPORTED = 4;
35 
36     /**
37      * Constants for the type of the listener.
38      */
39     const int INFO_LISTENER_TYPE_UNKNOWN = 1;
40     const int INFO_LISTENER_TYPE_VIDEO_ENCODER = 2;
41     const int INFO_LISTENER_TYPE_CAMERA = 3;
42 
43     /**
44      * Return the type of the listener.
45      */
getType()46     int getType();
47 
48     /**
49      * Return the name of the listener.
50      */
getName()51     String getName();
52 
53     /**
54      * Return the IBinder instance of the ECOSession associated the provider.
55      */
getECOSession()56     IBinder getECOSession();
57 
58     /**
59      * Handle the new info from ECOSession. This should only be called by ECOSession.
60      */
onNewInfo(in ECOData newInfo)61     oneway void onNewInfo(in ECOData newInfo);
62 }
63