1 /* 2 * Copyright (C) 2015 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.media; 18 19 import android.car.media.CarAudioPatchHandle; 20 import android.media.AudioDeviceAttributes; 21 /** 22 * Binder interface for {@link android.car.media.CarAudioManager}. 23 * Check {@link android.car.media.CarAudioManager} APIs for expected behavior of each call. 24 * 25 * @hide 26 */ 27 interface ICarAudio { isAudioFeatureEnabled(int feature)28 boolean isAudioFeatureEnabled(int feature); 29 setGroupVolume(int zoneId, int groupId, int index, int flags)30 void setGroupVolume(int zoneId, int groupId, int index, int flags); getGroupMaxVolume(int zoneId, int groupId)31 int getGroupMaxVolume(int zoneId, int groupId); getGroupMinVolume(int zoneId, int groupId)32 int getGroupMinVolume(int zoneId, int groupId); getGroupVolume(int zoneId, int groupId)33 int getGroupVolume(int zoneId, int groupId); 34 setFadeTowardFront(float value)35 void setFadeTowardFront(float value); setBalanceTowardRight(float value)36 void setBalanceTowardRight(float value); 37 getExternalSources()38 String[] getExternalSources(); createAudioPatch(in String sourceAddress, int usage, int gainInMillibels)39 CarAudioPatchHandle createAudioPatch(in String sourceAddress, int usage, int gainInMillibels); releaseAudioPatch(in CarAudioPatchHandle patch)40 void releaseAudioPatch(in CarAudioPatchHandle patch); 41 getVolumeGroupCount(int zoneId)42 int getVolumeGroupCount(int zoneId); getVolumeGroupIdForUsage(int zoneId, int usage)43 int getVolumeGroupIdForUsage(int zoneId, int usage); getUsagesForVolumeGroupId(int zoneId, int groupId)44 int[] getUsagesForVolumeGroupId(int zoneId, int groupId); 45 getAudioZoneIds()46 int[] getAudioZoneIds(); getZoneIdForUid(int uid)47 int getZoneIdForUid(int uid); setZoneIdForUid(int zoneId, int uid)48 boolean setZoneIdForUid(int zoneId, int uid); clearZoneIdForUid(int uid)49 boolean clearZoneIdForUid(int uid); 50 isVolumeGroupMuted(int zoneId, int groupId)51 boolean isVolumeGroupMuted(int zoneId, int groupId); setVolumeGroupMute(int zoneId, int groupId, boolean mute, int flags)52 void setVolumeGroupMute(int zoneId, int groupId, boolean mute, int flags); 53 getOutputDeviceAddressForUsage(int zoneId, int usage)54 String getOutputDeviceAddressForUsage(int zoneId, int usage); 55 getInputDevicesForZoneId(int zoneId)56 List<AudioDeviceAttributes> getInputDevicesForZoneId(int zoneId); 57 isPlaybackOnVolumeGroupActive(int volumeGroupId, int audioZoneId)58 boolean isPlaybackOnVolumeGroupActive(int volumeGroupId, int audioZoneId); 59 /** 60 * IBinder is ICarVolumeCallback but passed as IBinder due to aidl hidden. 61 */ registerVolumeCallback(in IBinder binder)62 void registerVolumeCallback(in IBinder binder); unregisterVolumeCallback(in IBinder binder)63 void unregisterVolumeCallback(in IBinder binder); 64 } 65