1 /*
2  * Copyright 2021 HIMSA II K/S - www.himsa.com.
3  * Represented by EHIMA - www.ehima.com
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package android.bluetooth;
19 
20 import android.bluetooth.BluetoothDevice;
21 import android.bluetooth.IBluetoothVolumeControlCallback;
22 import android.content.AttributionSource;
23 
24 /**
25  * APIs for Bluetooth Volume Control service
26  *
27  * @hide
28  */
29 interface IBluetoothVolumeControl {
30 
31     const int VOLUME_CONTROL_UNKNOWN_VOLUME = -1;
32 
33     /* Public API */
34     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
connect(in BluetoothDevice device, in AttributionSource attributionSource)35     boolean connect(in BluetoothDevice device, in AttributionSource attributionSource);
36     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disconnect(in BluetoothDevice device, in AttributionSource attributionSource)37     boolean disconnect(in BluetoothDevice device, in AttributionSource attributionSource);
38     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getConnectedDevices(in AttributionSource attributionSource)39     List<BluetoothDevice> getConnectedDevices(in AttributionSource attributionSource);
40     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource)41     List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource);
42     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource)43     int getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource);
44     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setConnectionPolicy(in BluetoothDevice device, int connectionPolicy, in AttributionSource attributionSource)45     boolean setConnectionPolicy(in BluetoothDevice device, int connectionPolicy, in AttributionSource attributionSource);
46     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource)47     int getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource);
48 
49     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isVolumeOffsetAvailable(in BluetoothDevice device, in AttributionSource attributionSource)50     boolean isVolumeOffsetAvailable(in BluetoothDevice device, in AttributionSource attributionSource);
51     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getNumberOfVolumeOffsetInstances(in BluetoothDevice device, in AttributionSource attributionSource)52     int getNumberOfVolumeOffsetInstances(in BluetoothDevice device, in AttributionSource attributionSource);
53     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setVolumeOffset(in BluetoothDevice device, int instanceId, int volumeOffset, in AttributionSource attributionSource)54     void setVolumeOffset(in BluetoothDevice device, int instanceId, int volumeOffset, in AttributionSource attributionSource);
55     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setGroupVolume(int group_id, int volume, in AttributionSource attributionSource)56     void setGroupVolume(int group_id, int volume, in AttributionSource attributionSource);
57     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getGroupVolume(int group_id, in AttributionSource attributionSource)58     int getGroupVolume(int group_id, in AttributionSource attributionSource);
59     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setGroupActive(int group_id, boolean active, in AttributionSource attributionSource)60     void setGroupActive(int group_id, boolean active, in AttributionSource attributionSource);
61     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setDeviceVolume(in BluetoothDevice device, int volume, boolean isGroupOp, in AttributionSource attributionSource)62     void setDeviceVolume(in BluetoothDevice device, int volume, boolean isGroupOp, in AttributionSource attributionSource);
63 
64     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
mute(in BluetoothDevice device, in AttributionSource attributionSource)65     void mute(in BluetoothDevice device, in AttributionSource attributionSource);
66     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
muteGroup(int group_id, in AttributionSource attributionSource)67     void muteGroup(int group_id, in AttributionSource attributionSource);
68 
69     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
unmute(in BluetoothDevice device, in AttributionSource attributionSource)70     void unmute(in BluetoothDevice device, in AttributionSource attributionSource);
71     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
unmuteGroup(int group_id, in AttributionSource attributionSource)72     void unmuteGroup(int group_id, in AttributionSource attributionSource);
73 
74     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)75     void registerCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource);
76     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)77     void unregisterCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource);
78     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
notifyNewRegisteredCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)79     void notifyNewRegisteredCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource);
80 }
81