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.CarOccupantZoneManager.OccupantZoneInfo; 20 import android.car.media.CarAudioPatchHandle; 21 import android.car.media.CarAudioZoneConfigInfo; 22 import android.car.media.CarVolumeGroupInfo; 23 import android.car.media.IAudioZonesMirrorStatusCallback; 24 import android.car.media.ICarVolumeEventCallback; 25 import android.car.media.IMediaAudioRequestStatusCallback; 26 import android.car.media.IPrimaryZoneMediaAudioRequestCallback; 27 import android.car.media.ISwitchAudioZoneConfigCallback; 28 import android.media.AudioAttributes; 29 import android.media.AudioDeviceAttributes; 30 31 /** 32 * Binder interface for {@link android.car.media.CarAudioManager}. 33 * Check {@link android.car.media.CarAudioManager} APIs for expected behavior of each call. 34 * 35 * @hide 36 */ 37 interface ICarAudio { isAudioFeatureEnabled(int feature)38 boolean isAudioFeatureEnabled(int feature); 39 setGroupVolume(int zoneId, int groupId, int index, int flags)40 void setGroupVolume(int zoneId, int groupId, int index, int flags); getGroupMaxVolume(int zoneId, int groupId)41 int getGroupMaxVolume(int zoneId, int groupId); getGroupMinVolume(int zoneId, int groupId)42 int getGroupMinVolume(int zoneId, int groupId); getGroupVolume(int zoneId, int groupId)43 int getGroupVolume(int zoneId, int groupId); 44 setFadeTowardFront(float value)45 void setFadeTowardFront(float value); setBalanceTowardRight(float value)46 void setBalanceTowardRight(float value); 47 getExternalSources()48 String[] getExternalSources(); createAudioPatch(in String sourceAddress, int usage, int gainInMillibels)49 CarAudioPatchHandle createAudioPatch(in String sourceAddress, int usage, int gainInMillibels); releaseAudioPatch(in CarAudioPatchHandle patch)50 void releaseAudioPatch(in CarAudioPatchHandle patch); 51 getVolumeGroupCount(int zoneId)52 int getVolumeGroupCount(int zoneId); getVolumeGroupIdForUsage(int zoneId, int usage)53 int getVolumeGroupIdForUsage(int zoneId, int usage); getUsagesForVolumeGroupId(int zoneId, int groupId)54 int[] getUsagesForVolumeGroupId(int zoneId, int groupId); 55 getAudioZoneIds()56 int[] getAudioZoneIds(); getZoneIdForUid(int uid)57 int getZoneIdForUid(int uid); setZoneIdForUid(int zoneId, int uid)58 boolean setZoneIdForUid(int zoneId, int uid); clearZoneIdForUid(int uid)59 boolean clearZoneIdForUid(int uid); 60 isVolumeGroupMuted(int zoneId, int groupId)61 boolean isVolumeGroupMuted(int zoneId, int groupId); setVolumeGroupMute(int zoneId, int groupId, boolean mute, int flags)62 void setVolumeGroupMute(int zoneId, int groupId, boolean mute, int flags); getVolumeGroupInfo(int zoneId, int groupId)63 CarVolumeGroupInfo getVolumeGroupInfo(int zoneId, int groupId); getVolumeGroupInfosForZone(int zoneId)64 List<CarVolumeGroupInfo> getVolumeGroupInfosForZone(int zoneId); 65 getAudioAttributesForVolumeGroup(in CarVolumeGroupInfo groupInfo)66 List<AudioAttributes> getAudioAttributesForVolumeGroup(in CarVolumeGroupInfo groupInfo); 67 getOutputDeviceAddressForUsage(int zoneId, int usage)68 String getOutputDeviceAddressForUsage(int zoneId, int usage); 69 getInputDevicesForZoneId(int zoneId)70 List<AudioDeviceAttributes> getInputDevicesForZoneId(int zoneId); 71 isPlaybackOnVolumeGroupActive(int volumeGroupId, int audioZoneId)72 boolean isPlaybackOnVolumeGroupActive(int volumeGroupId, int audioZoneId); 73 registerPrimaryZoneMediaAudioRequestCallback( in IPrimaryZoneMediaAudioRequestCallback callback)74 boolean registerPrimaryZoneMediaAudioRequestCallback( 75 in IPrimaryZoneMediaAudioRequestCallback callback); unregisterPrimaryZoneMediaAudioRequestCallback( in IPrimaryZoneMediaAudioRequestCallback callback)76 void unregisterPrimaryZoneMediaAudioRequestCallback( 77 in IPrimaryZoneMediaAudioRequestCallback callback); 78 requestMediaAudioOnPrimaryZone(in IMediaAudioRequestStatusCallback callback, in OccupantZoneInfo info)79 long requestMediaAudioOnPrimaryZone(in IMediaAudioRequestStatusCallback callback, 80 in OccupantZoneInfo info); cancelMediaAudioOnPrimaryZone(long requestId)81 boolean cancelMediaAudioOnPrimaryZone(long requestId); 82 allowMediaAudioOnPrimaryZone(in IBinder token, long requestId, boolean allow)83 boolean allowMediaAudioOnPrimaryZone(in IBinder token, long requestId, boolean allow); isMediaAudioAllowedInPrimaryZone(in OccupantZoneInfo info)84 boolean isMediaAudioAllowedInPrimaryZone(in OccupantZoneInfo info); resetMediaAudioOnPrimaryZone(in OccupantZoneInfo zone)85 boolean resetMediaAudioOnPrimaryZone(in OccupantZoneInfo zone); 86 getCurrentAudioZoneConfigInfo(int zoneId)87 CarAudioZoneConfigInfo getCurrentAudioZoneConfigInfo(int zoneId); getAudioZoneConfigInfos(int zoneId)88 List<CarAudioZoneConfigInfo> getAudioZoneConfigInfos(int zoneId); switchZoneToConfig(in CarAudioZoneConfigInfo zoneConfig, in ISwitchAudioZoneConfigCallback callback)89 void switchZoneToConfig(in CarAudioZoneConfigInfo zoneConfig, 90 in ISwitchAudioZoneConfigCallback callback); 91 registerAudioZonesMirrorStatusCallback(in IAudioZonesMirrorStatusCallback callback)92 boolean registerAudioZonesMirrorStatusCallback(in IAudioZonesMirrorStatusCallback callback); unregisterAudioZonesMirrorStatusCallback(in IAudioZonesMirrorStatusCallback callback)93 void unregisterAudioZonesMirrorStatusCallback(in IAudioZonesMirrorStatusCallback callback); canEnableAudioMirror()94 int canEnableAudioMirror(); enableMirrorForAudioZones(in int[] audioZones)95 long enableMirrorForAudioZones(in int[] audioZones); extendAudioMirrorRequest(long mirrorId, in int[] audioZones)96 void extendAudioMirrorRequest(long mirrorId, in int[] audioZones); disableAudioMirrorForZone(int zoneId)97 void disableAudioMirrorForZone(int zoneId); disableAudioMirror(long mirrorId)98 void disableAudioMirror(long mirrorId); getMirrorAudioZonesForAudioZone(int zoneId)99 int[] getMirrorAudioZonesForAudioZone(int zoneId); getMirrorAudioZonesForMirrorRequest(long mirrorId)100 int[] getMirrorAudioZonesForMirrorRequest(long mirrorId); 101 102 103 /** 104 * IBinder is ICarVolumeCallback but passed as IBinder due to aidl hidden. 105 */ registerVolumeCallback(in IBinder binder)106 void registerVolumeCallback(in IBinder binder); unregisterVolumeCallback(in IBinder binder)107 void unregisterVolumeCallback(in IBinder binder); 108 registerCarVolumeEventCallback(in ICarVolumeEventCallback callback)109 boolean registerCarVolumeEventCallback(in ICarVolumeEventCallback callback); unregisterCarVolumeEventCallback(in ICarVolumeEventCallback callback)110 boolean unregisterCarVolumeEventCallback(in ICarVolumeEventCallback callback); 111 } 112