/* * This file is auto-generated. DO NOT MODIFY. * Using: out/host/linux-x86/bin/aidl --lang=java -Weverything -Wno-missing-permission-annotation --min_sdk_version current -pout/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types_interface/3/preprocessed.aidl -pout/soong/.intermediates/frameworks/av/media/libaudioclient/audioclient-types-aidl_interface/preprocessed.aidl -pout/soong/.intermediates/frameworks/av/media/libaudioclient/audiopolicy-types-aidl_interface/preprocessed.aidl -pout/soong/.intermediates/frameworks/av/media/libaudioclient/capture_state_listener-aidl_interface/preprocessed.aidl -pout/soong/.intermediates/frameworks/native/libs/permission/framework-permission-aidl_interface/preprocessed.aidl -pout/soong/.intermediates/frameworks/av/media/libaudioclient/spatializer-aidl_interface/preprocessed.aidl --ninja -d out/soong/.intermediates/frameworks/av/media/libaudioclient/audiopolicy-aidl-java-source/gen/android/media/IAudioPolicyService.java.d -o out/soong/.intermediates/frameworks/av/media/libaudioclient/audiopolicy-aidl-java-source/gen -Nframeworks/av/media/libaudioclient/aidl frameworks/av/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl */ package android.media; /** * IAudioPolicyService interface (see AudioPolicyInterface for method descriptions). * * {@hide} */ public interface IAudioPolicyService extends android.os.IInterface { /** Default implementation for IAudioPolicyService. */ public static class Default implements android.media.IAudioPolicyService { @Override public void onNewAudioModulesAvailable() throws android.os.RemoteException { } @Override public void setDeviceConnectionState(int state, android.media.audio.common.AudioPort port, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException { } @Override public int getDeviceConnectionState(android.media.audio.common.AudioDevice device) throws android.os.RemoteException { return 0; } @Override public void handleDeviceConfigChange(android.media.audio.common.AudioDevice device, java.lang.String deviceName, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException { } @Override public void setPhoneState(int state, int uid) throws android.os.RemoteException { } @Override public void setForceUse(int usage, int config) throws android.os.RemoteException { } @Override public int getForceUse(int usage) throws android.os.RemoteException { return 0; } /** audio_io_handle_t */ @Override public int getOutput(int stream) throws android.os.RemoteException { return 0; } @Override public android.media.GetOutputForAttrResponse getOutputForAttr(android.media.audio.common.AudioAttributes attr, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfig config, int flags, int selectedDeviceId) throws android.os.RemoteException { return null; } @Override public void startOutput(int portId) throws android.os.RemoteException { } @Override public void stopOutput(int portId) throws android.os.RemoteException { } @Override public void releaseOutput(int portId) throws android.os.RemoteException { } @Override public android.media.GetInputForAttrResponse getInputForAttr(android.media.audio.common.AudioAttributes attr, int input, int riid, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfigBase config, int flags, int selectedDeviceId) throws android.os.RemoteException { return null; } @Override public void startInput(int portId) throws android.os.RemoteException { } @Override public void stopInput(int portId) throws android.os.RemoteException { } @Override public void releaseInput(int portId) throws android.os.RemoteException { } @Override public void initStreamVolume(int stream, int indexMin, int indexMax) throws android.os.RemoteException { } @Override public void setStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException { } @Override public int getStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { return 0; } @Override public void setVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException { } @Override public int getVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { return 0; } @Override public int getMaxVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { return 0; } @Override public int getMinVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { return 0; } /** product_strategy_t */ @Override public int getStrategyForStream(int stream) throws android.os.RemoteException { return 0; } @Override public android.media.audio.common.AudioDevice[] getDevicesForAttributes(android.media.audio.common.AudioAttributes attr, boolean forVolume) throws android.os.RemoteException { return null; } /** audio_io_handle_t */ @Override public int getOutputForEffect(android.media.EffectDescriptor desc) throws android.os.RemoteException { return 0; } @Override public void registerEffect(android.media.EffectDescriptor desc, int io, int strategy, int session, int id) throws android.os.RemoteException { } @Override public void unregisterEffect(int id) throws android.os.RemoteException { } @Override public void setEffectEnabled(int id, boolean enabled) throws android.os.RemoteException { } @Override public void moveEffectsToIo(int[] ids, int io) throws android.os.RemoteException { } @Override public boolean isStreamActive(int stream, int inPastMs) throws android.os.RemoteException { return false; } @Override public boolean isStreamActiveRemotely(int stream, int inPastMs) throws android.os.RemoteException { return false; } @Override public boolean isSourceActive(int source) throws android.os.RemoteException { return false; } /** * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public android.media.EffectDescriptor[] queryDefaultPreProcessing(int audioSession, android.media.audio.common.Int count) throws android.os.RemoteException { return null; } /** audio_unique_id_t */ @Override public int addSourceDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int source) throws android.os.RemoteException { return 0; } /** audio_unique_id_t */ @Override public int addStreamDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int usage) throws android.os.RemoteException { return 0; } @Override public void removeSourceDefaultEffect(int id) throws android.os.RemoteException { } @Override public void removeStreamDefaultEffect(int id) throws android.os.RemoteException { } @Override public void setSupportedSystemUsages(int[] systemUsages) throws android.os.RemoteException { } @Override public void setAllowedCapturePolicy(int uid, int capturePolicy) throws android.os.RemoteException { } /** * Check if offload is possible for given format, stream type, sample rate, * bit rate, duration, video and streaming or offload property is enabled. */ @Override public int getOffloadSupport(android.media.audio.common.AudioOffloadInfo info) throws android.os.RemoteException { return 0; } /** Check if direct playback is possible for given format, sample rate, channel mask and flags. */ @Override public boolean isDirectOutputSupported(android.media.audio.common.AudioConfigBase config, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException { return false; } /** * List currently attached audio ports and their attributes. Returns the generation. * The generation is incremented each time when anything changes in the ports * configuration. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public int listAudioPorts(int role, int type, android.media.audio.common.Int count, android.media.AudioPortFw[] ports) throws android.os.RemoteException { return 0; } /** * List all device ports declared in the configuration (including currently detached ones) * 'role' can be 'NONE' to get both input and output devices, * 'SINK' for output devices, and 'SOURCE' for input devices. */ @Override public android.media.AudioPortFw[] listDeclaredDevicePorts(int role) throws android.os.RemoteException { return null; } /** Get attributes for the audio port with the given id (AudioPort.hal.id field). */ @Override public android.media.AudioPortFw getAudioPort(int portId) throws android.os.RemoteException { return null; } /** * Create an audio patch between several source and sink ports. * The handle argument is used when updating an existing patch. */ /** audio_patch_handle_t */ @Override public int createAudioPatch(android.media.AudioPatchFw patch, int handle) throws android.os.RemoteException { return 0; } /** Release an audio patch. */ @Override public void releaseAudioPatch(int handle) throws android.os.RemoteException { } /** * List existing audio patches. Returns the generation. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public int listAudioPatches(android.media.audio.common.Int count, android.media.AudioPatchFw[] patches) throws android.os.RemoteException { return 0; } /** Set audio port configuration. */ @Override public void setAudioPortConfig(android.media.AudioPortConfigFw config) throws android.os.RemoteException { } @Override public void registerClient(android.media.IAudioPolicyServiceClient client) throws android.os.RemoteException { } @Override public void setAudioPortCallbacksEnabled(boolean enabled) throws android.os.RemoteException { } @Override public void setAudioVolumeGroupCallbacksEnabled(boolean enabled) throws android.os.RemoteException { } @Override public android.media.SoundTriggerSession acquireSoundTriggerSession() throws android.os.RemoteException { return null; } @Override public void releaseSoundTriggerSession(int session) throws android.os.RemoteException { } @Override public int getPhoneState() throws android.os.RemoteException { return 0; } @Override public void registerPolicyMixes(android.media.AudioMix[] mixes, boolean registration) throws android.os.RemoteException { } @Override public java.util.List getRegisteredPolicyMixes() throws android.os.RemoteException { return null; } @Override public void updatePolicyMixes(android.media.AudioMixUpdate[] updates) throws android.os.RemoteException { } @Override public void setUidDeviceAffinities(int uid, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void removeUidDeviceAffinities(int uid) throws android.os.RemoteException { } @Override public void setUserIdDeviceAffinities(int userId, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void removeUserIdDeviceAffinities(int userId) throws android.os.RemoteException { } /** audio_port_handle_t */ @Override public int startAudioSource(android.media.AudioPortConfigFw source, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException { return 0; } @Override public void stopAudioSource(int portId) throws android.os.RemoteException { } @Override public void setMasterMono(boolean mono) throws android.os.RemoteException { } @Override public boolean getMasterMono() throws android.os.RemoteException { return false; } @Override public float getStreamVolumeDB(int stream, int index, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { return 0.0f; } /** * Populates supported surround formats and their enabled state in formats and formatsEnabled. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public void getSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats, boolean[] formatsEnabled) throws android.os.RemoteException { } /** * Populates the surround formats reported by the HDMI devices in formats. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public void getReportedSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats) throws android.os.RemoteException { } @Override public android.media.audio.common.AudioFormatDescription[] getHwOffloadFormatsSupportedForBluetoothMedia(android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { return null; } @Override public void setSurroundFormatEnabled(android.media.audio.common.AudioFormatDescription audioFormat, boolean enabled) throws android.os.RemoteException { } @Override public void setAssistantServicesUids(int[] uids) throws android.os.RemoteException { } @Override public void setActiveAssistantServicesUids(int[] activeUids) throws android.os.RemoteException { } @Override public void setA11yServicesUids(int[] uids) throws android.os.RemoteException { } @Override public void setCurrentImeUid(int uid) throws android.os.RemoteException { } @Override public boolean isHapticPlaybackSupported() throws android.os.RemoteException { return false; } @Override public boolean isUltrasoundSupported() throws android.os.RemoteException { return false; } /** * Queries if there is hardware support for requesting audio capture content from * the DSP hotword pipeline. * * @param lookbackAudio true if additionally querying for the ability to capture audio * from the pipeline prior to capture stream open. */ @Override public boolean isHotwordStreamSupported(boolean lookbackAudio) throws android.os.RemoteException { return false; } @Override public android.media.AudioProductStrategy[] listAudioProductStrategies() throws android.os.RemoteException { return null; } /** product_strategy_t */ @Override public int getProductStrategyFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException { return 0; } @Override public android.media.AudioVolumeGroup[] listAudioVolumeGroups() throws android.os.RemoteException { return null; } /** volume_group_t */ @Override public int getVolumeGroupFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException { return 0; } @Override public void setRttEnabled(boolean enabled) throws android.os.RemoteException { } @Override public boolean isCallScreenModeSupported() throws android.os.RemoteException { return false; } @Override public void setDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void removeDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void clearDevicesRoleForStrategy(int strategy, int role) throws android.os.RemoteException { } @Override public android.media.audio.common.AudioDevice[] getDevicesForRoleAndStrategy(int strategy, int role) throws android.os.RemoteException { return null; } @Override public void setDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void addDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void removeDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { } @Override public void clearDevicesRoleForCapturePreset(int audioSource, int role) throws android.os.RemoteException { } @Override public android.media.audio.common.AudioDevice[] getDevicesForRoleAndCapturePreset(int audioSource, int role) throws android.os.RemoteException { return null; } @Override public boolean registerSoundTriggerCaptureStateListener(android.media.ICaptureStateListener listener) throws android.os.RemoteException { return false; } /** * If a spatializer stage effect is present on the platform, this will return an * ISpatializer interface (see GetSpatializerResponse,aidl) to control this * feature. * If no spatializer stage is present, a null interface is returned. * The INativeSpatializerCallback passed must not be null. * Only one ISpatializer interface can exist at a given time. The native audio policy * service will reject the request if an interface was already acquired and previous owner * did not die or call ISpatializer.release(). */ @Override public android.media.GetSpatializerResponse getSpatializer(android.media.INativeSpatializerCallback callback) throws android.os.RemoteException { return null; } /** * Queries if some kind of spatialization will be performed if the audio playback context * described by the provided arguments is present. * The context is made of: * - The audio attributes describing the playback use case. * - The audio configuration describing the audio format, channels, sampling rate... * - The devices describing the sink audio device selected for playback. * All arguments are optional and only the specified arguments are used to match against * supported criteria. For instance, supplying no argument will tell if spatialization is * supported or not in general. */ @Override public boolean canBeSpatialized(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { return false; } /** Query how the direct playback is currently supported on the device. */ @Override public int getDirectPlaybackSupport(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config) throws android.os.RemoteException { return 0; } /** * Query audio profiles available for direct playback on the current output device(s) * for the specified audio attributes. */ @Override public android.media.audio.common.AudioProfile[] getDirectProfilesForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { return null; } /** * Return a list of AudioMixerAttributes that can be used to set preferred mixer attributes * for the given device. */ @Override public android.media.AudioMixerAttributesInternal[] getSupportedMixerAttributes(int portId) throws android.os.RemoteException { return null; } /** * Set preferred mixer attributes for a given device on a given audio attributes. * When conflicting requests are received, the last request will be honored. * The preferred mixer attributes can only be set when 1) the usage is media, 2) the * given device is currently available, 3) the given device is usb device, 4) the given mixer * attributes is supported by the given device. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid will be used to recognize the ownership for * the preferred mixer attributes. All the playback with same audio attributes from * the same uid will be attached to the mixer with the preferred attributes if the * playback is routed to the given device. * @param mixerAttr the preferred mixer attributes. */ @Override public void setPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid, android.media.AudioMixerAttributesInternal mixerAttr) throws android.os.RemoteException { } /** * Get preferred mixer attributes for a given device on a given audio attributes. * Null will be returned if there is no preferred mixer attributes set or it has * been cleared. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. */ @Override public android.media.AudioMixerAttributesInternal getPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId) throws android.os.RemoteException { return null; } /** * Clear preferred mixer attributes for a given device on a given audio attributes that * is previously set via setPreferredMixerAttributes. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid is used to identify the ownership for the * preferred mixer attributes. The preferred mixer attributes will only be cleared * if the uid is the same as the owner of current preferred mixer attributes. */ @Override public void clearPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid) throws android.os.RemoteException { } @Override public android.os.IBinder asBinder() { return null; } } /** Local-side IPC implementation stub class. */ public static abstract class Stub extends android.os.Binder implements android.media.IAudioPolicyService { /** Construct the stub at attach it to the interface. */ @SuppressWarnings("this-escape") public Stub() { this.attachInterface(this, DESCRIPTOR); } /** * Cast an IBinder object into an android.media.IAudioPolicyService interface, * generating a proxy if needed. */ public static android.media.IAudioPolicyService asInterface(android.os.IBinder obj) { if ((obj==null)) { return null; } android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); if (((iin!=null)&&(iin instanceof android.media.IAudioPolicyService))) { return ((android.media.IAudioPolicyService)iin); } return new android.media.IAudioPolicyService.Stub.Proxy(obj); } @Override public android.os.IBinder asBinder() { return this; } @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException { java.lang.String descriptor = DESCRIPTOR; if (code >= android.os.IBinder.FIRST_CALL_TRANSACTION && code <= android.os.IBinder.LAST_CALL_TRANSACTION) { data.enforceInterface(descriptor); } if (code == INTERFACE_TRANSACTION) { reply.writeString(descriptor); return true; } switch (code) { case TRANSACTION_onNewAudioModulesAvailable: { this.onNewAudioModulesAvailable(); break; } case TRANSACTION_setDeviceConnectionState: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.AudioPort _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioPort.CREATOR); android.media.audio.common.AudioFormatDescription _arg2; _arg2 = data.readTypedObject(android.media.audio.common.AudioFormatDescription.CREATOR); data.enforceNoDataAvail(); this.setDeviceConnectionState(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_getDeviceConnectionState: { android.media.audio.common.AudioDevice _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); int _result = this.getDeviceConnectionState(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_handleDeviceConfigChange: { android.media.audio.common.AudioDevice _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioDevice.CREATOR); java.lang.String _arg1; _arg1 = data.readString(); android.media.audio.common.AudioFormatDescription _arg2; _arg2 = data.readTypedObject(android.media.audio.common.AudioFormatDescription.CREATOR); data.enforceNoDataAvail(); this.handleDeviceConfigChange(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_setPhoneState: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.setPhoneState(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_setForceUse: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.setForceUse(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_getForceUse: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); int _result = this.getForceUse(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getOutput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); int _result = this.getOutput(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getOutputForAttr: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); int _arg1; _arg1 = data.readInt(); android.content.AttributionSourceState _arg2; _arg2 = data.readTypedObject(android.content.AttributionSourceState.CREATOR); android.media.audio.common.AudioConfig _arg3; _arg3 = data.readTypedObject(android.media.audio.common.AudioConfig.CREATOR); int _arg4; _arg4 = data.readInt(); int _arg5; _arg5 = data.readInt(); data.enforceNoDataAvail(); android.media.GetOutputForAttrResponse _result = this.getOutputForAttr(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_startOutput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.startOutput(_arg0); reply.writeNoException(); break; } case TRANSACTION_stopOutput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.stopOutput(_arg0); reply.writeNoException(); break; } case TRANSACTION_releaseOutput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.releaseOutput(_arg0); reply.writeNoException(); break; } case TRANSACTION_getInputForAttr: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); int _arg1; _arg1 = data.readInt(); int _arg2; _arg2 = data.readInt(); int _arg3; _arg3 = data.readInt(); android.content.AttributionSourceState _arg4; _arg4 = data.readTypedObject(android.content.AttributionSourceState.CREATOR); android.media.audio.common.AudioConfigBase _arg5; _arg5 = data.readTypedObject(android.media.audio.common.AudioConfigBase.CREATOR); int _arg6; _arg6 = data.readInt(); int _arg7; _arg7 = data.readInt(); data.enforceNoDataAvail(); android.media.GetInputForAttrResponse _result = this.getInputForAttr(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_startInput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.startInput(_arg0); reply.writeNoException(); break; } case TRANSACTION_stopInput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.stopInput(_arg0); reply.writeNoException(); break; } case TRANSACTION_releaseInput: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.releaseInput(_arg0); reply.writeNoException(); break; } case TRANSACTION_initStreamVolume: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); int _arg2; _arg2 = data.readInt(); data.enforceNoDataAvail(); this.initStreamVolume(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_setStreamVolumeIndex: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.AudioDeviceDescription _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); int _arg2; _arg2 = data.readInt(); data.enforceNoDataAvail(); this.setStreamVolumeIndex(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_getStreamVolumeIndex: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.AudioDeviceDescription _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); data.enforceNoDataAvail(); int _result = this.getStreamVolumeIndex(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_setVolumeIndexForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); android.media.audio.common.AudioDeviceDescription _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); int _arg2; _arg2 = data.readInt(); data.enforceNoDataAvail(); this.setVolumeIndexForAttributes(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_getVolumeIndexForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); android.media.audio.common.AudioDeviceDescription _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); data.enforceNoDataAvail(); int _result = this.getVolumeIndexForAttributes(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getMaxVolumeIndexForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); data.enforceNoDataAvail(); int _result = this.getMaxVolumeIndexForAttributes(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getMinVolumeIndexForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); data.enforceNoDataAvail(); int _result = this.getMinVolumeIndexForAttributes(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getStrategyForStream: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); int _result = this.getStrategyForStream(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getDevicesForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); android.media.audio.common.AudioDevice[] _result = this.getDevicesForAttributes(_arg0, _arg1); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getOutputForEffect: { android.media.EffectDescriptor _arg0; _arg0 = data.readTypedObject(android.media.EffectDescriptor.CREATOR); data.enforceNoDataAvail(); int _result = this.getOutputForEffect(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_registerEffect: { android.media.EffectDescriptor _arg0; _arg0 = data.readTypedObject(android.media.EffectDescriptor.CREATOR); int _arg1; _arg1 = data.readInt(); int _arg2; _arg2 = data.readInt(); int _arg3; _arg3 = data.readInt(); int _arg4; _arg4 = data.readInt(); data.enforceNoDataAvail(); this.registerEffect(_arg0, _arg1, _arg2, _arg3, _arg4); reply.writeNoException(); break; } case TRANSACTION_unregisterEffect: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.unregisterEffect(_arg0); reply.writeNoException(); break; } case TRANSACTION_setEffectEnabled: { int _arg0; _arg0 = data.readInt(); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); this.setEffectEnabled(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_moveEffectsToIo: { int[] _arg0; _arg0 = data.createIntArray(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.moveEffectsToIo(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_isStreamActive: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); boolean _result = this.isStreamActive(_arg0, _arg1); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_isStreamActiveRemotely: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); boolean _result = this.isStreamActiveRemotely(_arg0, _arg1); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_isSourceActive: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); boolean _result = this.isSourceActive(_arg0); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_queryDefaultPreProcessing: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.Int _arg1; _arg1 = data.readTypedObject(android.media.audio.common.Int.CREATOR); data.enforceNoDataAvail(); android.media.EffectDescriptor[] _result = this.queryDefaultPreProcessing(_arg0, _arg1); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeTypedObject(_arg1, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_addSourceDefaultEffect: { android.media.audio.common.AudioUuid _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioUuid.CREATOR); java.lang.String _arg1; _arg1 = data.readString(); android.media.audio.common.AudioUuid _arg2; _arg2 = data.readTypedObject(android.media.audio.common.AudioUuid.CREATOR); int _arg3; _arg3 = data.readInt(); int _arg4; _arg4 = data.readInt(); data.enforceNoDataAvail(); int _result = this.addSourceDefaultEffect(_arg0, _arg1, _arg2, _arg3, _arg4); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_addStreamDefaultEffect: { android.media.audio.common.AudioUuid _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioUuid.CREATOR); java.lang.String _arg1; _arg1 = data.readString(); android.media.audio.common.AudioUuid _arg2; _arg2 = data.readTypedObject(android.media.audio.common.AudioUuid.CREATOR); int _arg3; _arg3 = data.readInt(); int _arg4; _arg4 = data.readInt(); data.enforceNoDataAvail(); int _result = this.addStreamDefaultEffect(_arg0, _arg1, _arg2, _arg3, _arg4); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_removeSourceDefaultEffect: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.removeSourceDefaultEffect(_arg0); reply.writeNoException(); break; } case TRANSACTION_removeStreamDefaultEffect: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.removeStreamDefaultEffect(_arg0); reply.writeNoException(); break; } case TRANSACTION_setSupportedSystemUsages: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setSupportedSystemUsages(_arg0); reply.writeNoException(); break; } case TRANSACTION_setAllowedCapturePolicy: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.setAllowedCapturePolicy(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_getOffloadSupport: { android.media.audio.common.AudioOffloadInfo _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioOffloadInfo.CREATOR); data.enforceNoDataAvail(); int _result = this.getOffloadSupport(_arg0); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_isDirectOutputSupported: { android.media.audio.common.AudioConfigBase _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioConfigBase.CREATOR); android.media.audio.common.AudioAttributes _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); data.enforceNoDataAvail(); boolean _result = this.isDirectOutputSupported(_arg0, _arg1); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_listAudioPorts: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.Int _arg2; _arg2 = data.readTypedObject(android.media.audio.common.Int.CREATOR); android.media.AudioPortFw[] _arg3; int _arg3_length = data.readInt(); if (_arg3_length < 0) { _arg3 = null; } else { _arg3 = new android.media.AudioPortFw[_arg3_length]; } data.enforceNoDataAvail(); int _result = this.listAudioPorts(_arg0, _arg1, _arg2, _arg3); reply.writeNoException(); reply.writeInt(_result); reply.writeTypedObject(_arg2, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeTypedArray(_arg3, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_listDeclaredDevicePorts: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); android.media.AudioPortFw[] _result = this.listDeclaredDevicePorts(_arg0); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getAudioPort: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); android.media.AudioPortFw _result = this.getAudioPort(_arg0); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_createAudioPatch: { android.media.AudioPatchFw _arg0; _arg0 = data.readTypedObject(android.media.AudioPatchFw.CREATOR); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); int _result = this.createAudioPatch(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_releaseAudioPatch: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.releaseAudioPatch(_arg0); reply.writeNoException(); break; } case TRANSACTION_listAudioPatches: { android.media.audio.common.Int _arg0; _arg0 = data.readTypedObject(android.media.audio.common.Int.CREATOR); android.media.AudioPatchFw[] _arg1; int _arg1_length = data.readInt(); if (_arg1_length < 0) { _arg1 = null; } else { _arg1 = new android.media.AudioPatchFw[_arg1_length]; } data.enforceNoDataAvail(); int _result = this.listAudioPatches(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); reply.writeTypedObject(_arg0, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeTypedArray(_arg1, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_setAudioPortConfig: { android.media.AudioPortConfigFw _arg0; _arg0 = data.readTypedObject(android.media.AudioPortConfigFw.CREATOR); data.enforceNoDataAvail(); this.setAudioPortConfig(_arg0); reply.writeNoException(); break; } case TRANSACTION_registerClient: { android.media.IAudioPolicyServiceClient _arg0; _arg0 = android.media.IAudioPolicyServiceClient.Stub.asInterface(data.readStrongBinder()); data.enforceNoDataAvail(); this.registerClient(_arg0); reply.writeNoException(); break; } case TRANSACTION_setAudioPortCallbacksEnabled: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setAudioPortCallbacksEnabled(_arg0); reply.writeNoException(); break; } case TRANSACTION_setAudioVolumeGroupCallbacksEnabled: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setAudioVolumeGroupCallbacksEnabled(_arg0); reply.writeNoException(); break; } case TRANSACTION_acquireSoundTriggerSession: { android.media.SoundTriggerSession _result = this.acquireSoundTriggerSession(); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_releaseSoundTriggerSession: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.releaseSoundTriggerSession(_arg0); reply.writeNoException(); break; } case TRANSACTION_getPhoneState: { int _result = this.getPhoneState(); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_registerPolicyMixes: { android.media.AudioMix[] _arg0; _arg0 = data.createTypedArray(android.media.AudioMix.CREATOR); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); this.registerPolicyMixes(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_getRegisteredPolicyMixes: { java.util.List _result = this.getRegisteredPolicyMixes(); reply.writeNoException(); reply.writeTypedList(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_updatePolicyMixes: { android.media.AudioMixUpdate[] _arg0; _arg0 = data.createTypedArray(android.media.AudioMixUpdate.CREATOR); data.enforceNoDataAvail(); this.updatePolicyMixes(_arg0); reply.writeNoException(); break; } case TRANSACTION_setUidDeviceAffinities: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.AudioDevice[] _arg1; _arg1 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.setUidDeviceAffinities(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_removeUidDeviceAffinities: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.removeUidDeviceAffinities(_arg0); reply.writeNoException(); break; } case TRANSACTION_setUserIdDeviceAffinities: { int _arg0; _arg0 = data.readInt(); android.media.audio.common.AudioDevice[] _arg1; _arg1 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.setUserIdDeviceAffinities(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_removeUserIdDeviceAffinities: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.removeUserIdDeviceAffinities(_arg0); reply.writeNoException(); break; } case TRANSACTION_startAudioSource: { android.media.AudioPortConfigFw _arg0; _arg0 = data.readTypedObject(android.media.AudioPortConfigFw.CREATOR); android.media.audio.common.AudioAttributes _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); data.enforceNoDataAvail(); int _result = this.startAudioSource(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_stopAudioSource: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.stopAudioSource(_arg0); reply.writeNoException(); break; } case TRANSACTION_setMasterMono: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setMasterMono(_arg0); reply.writeNoException(); break; } case TRANSACTION_getMasterMono: { boolean _result = this.getMasterMono(); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_getStreamVolumeDB: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDeviceDescription _arg2; _arg2 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); data.enforceNoDataAvail(); float _result = this.getStreamVolumeDB(_arg0, _arg1, _arg2); reply.writeNoException(); reply.writeFloat(_result); break; } case TRANSACTION_getSurroundFormats: { android.media.audio.common.Int _arg0; _arg0 = data.readTypedObject(android.media.audio.common.Int.CREATOR); android.media.audio.common.AudioFormatDescription[] _arg1; int _arg1_length = data.readInt(); if (_arg1_length < 0) { _arg1 = null; } else { _arg1 = new android.media.audio.common.AudioFormatDescription[_arg1_length]; } boolean[] _arg2; int _arg2_length = data.readInt(); if (_arg2_length < 0) { _arg2 = null; } else { _arg2 = new boolean[_arg2_length]; } data.enforceNoDataAvail(); this.getSurroundFormats(_arg0, _arg1, _arg2); reply.writeNoException(); reply.writeTypedObject(_arg0, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeTypedArray(_arg1, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeBooleanArray(_arg2); break; } case TRANSACTION_getReportedSurroundFormats: { android.media.audio.common.Int _arg0; _arg0 = data.readTypedObject(android.media.audio.common.Int.CREATOR); android.media.audio.common.AudioFormatDescription[] _arg1; int _arg1_length = data.readInt(); if (_arg1_length < 0) { _arg1 = null; } else { _arg1 = new android.media.audio.common.AudioFormatDescription[_arg1_length]; } data.enforceNoDataAvail(); this.getReportedSurroundFormats(_arg0, _arg1); reply.writeNoException(); reply.writeTypedObject(_arg0, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); reply.writeTypedArray(_arg1, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getHwOffloadFormatsSupportedForBluetoothMedia: { android.media.audio.common.AudioDeviceDescription _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioDeviceDescription.CREATOR); data.enforceNoDataAvail(); android.media.audio.common.AudioFormatDescription[] _result = this.getHwOffloadFormatsSupportedForBluetoothMedia(_arg0); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_setSurroundFormatEnabled: { android.media.audio.common.AudioFormatDescription _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioFormatDescription.CREATOR); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); this.setSurroundFormatEnabled(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_setAssistantServicesUids: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setAssistantServicesUids(_arg0); reply.writeNoException(); break; } case TRANSACTION_setActiveAssistantServicesUids: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setActiveAssistantServicesUids(_arg0); reply.writeNoException(); break; } case TRANSACTION_setA11yServicesUids: { int[] _arg0; _arg0 = data.createIntArray(); data.enforceNoDataAvail(); this.setA11yServicesUids(_arg0); reply.writeNoException(); break; } case TRANSACTION_setCurrentImeUid: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); this.setCurrentImeUid(_arg0); reply.writeNoException(); break; } case TRANSACTION_isHapticPlaybackSupported: { boolean _result = this.isHapticPlaybackSupported(); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_isUltrasoundSupported: { boolean _result = this.isUltrasoundSupported(); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_isHotwordStreamSupported: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); boolean _result = this.isHotwordStreamSupported(_arg0); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_listAudioProductStrategies: { android.media.AudioProductStrategy[] _result = this.listAudioProductStrategies(); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getProductStrategyFromAudioAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); int _result = this.getProductStrategyFromAudioAttributes(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_listAudioVolumeGroups: { android.media.AudioVolumeGroup[] _result = this.listAudioVolumeGroups(); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getVolumeGroupFromAudioAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); boolean _arg1; _arg1 = data.readBoolean(); data.enforceNoDataAvail(); int _result = this.getVolumeGroupFromAudioAttributes(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_setRttEnabled: { boolean _arg0; _arg0 = data.readBoolean(); data.enforceNoDataAvail(); this.setRttEnabled(_arg0); reply.writeNoException(); break; } case TRANSACTION_isCallScreenModeSupported: { boolean _result = this.isCallScreenModeSupported(); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_setDevicesRoleForStrategy: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.setDevicesRoleForStrategy(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_removeDevicesRoleForStrategy: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.removeDevicesRoleForStrategy(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_clearDevicesRoleForStrategy: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.clearDevicesRoleForStrategy(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_getDevicesForRoleAndStrategy: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); android.media.audio.common.AudioDevice[] _result = this.getDevicesForRoleAndStrategy(_arg0, _arg1); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_setDevicesRoleForCapturePreset: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.setDevicesRoleForCapturePreset(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_addDevicesRoleForCapturePreset: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.addDevicesRoleForCapturePreset(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_removeDevicesRoleForCapturePreset: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); this.removeDevicesRoleForCapturePreset(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_clearDevicesRoleForCapturePreset: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); this.clearDevicesRoleForCapturePreset(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_getDevicesForRoleAndCapturePreset: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); android.media.audio.common.AudioDevice[] _result = this.getDevicesForRoleAndCapturePreset(_arg0, _arg1); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_registerSoundTriggerCaptureStateListener: { android.media.ICaptureStateListener _arg0; _arg0 = android.media.ICaptureStateListener.Stub.asInterface(data.readStrongBinder()); data.enforceNoDataAvail(); boolean _result = this.registerSoundTriggerCaptureStateListener(_arg0); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_getSpatializer: { android.media.INativeSpatializerCallback _arg0; _arg0 = android.media.INativeSpatializerCallback.Stub.asInterface(data.readStrongBinder()); data.enforceNoDataAvail(); android.media.GetSpatializerResponse _result = this.getSpatializer(_arg0); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_canBeSpatialized: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); android.media.audio.common.AudioConfig _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioConfig.CREATOR); android.media.audio.common.AudioDevice[] _arg2; _arg2 = data.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); data.enforceNoDataAvail(); boolean _result = this.canBeSpatialized(_arg0, _arg1, _arg2); reply.writeNoException(); reply.writeBoolean(_result); break; } case TRANSACTION_getDirectPlaybackSupport: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); android.media.audio.common.AudioConfig _arg1; _arg1 = data.readTypedObject(android.media.audio.common.AudioConfig.CREATOR); data.enforceNoDataAvail(); int _result = this.getDirectPlaybackSupport(_arg0, _arg1); reply.writeNoException(); reply.writeInt(_result); break; } case TRANSACTION_getDirectProfilesForAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); data.enforceNoDataAvail(); android.media.audio.common.AudioProfile[] _result = this.getDirectProfilesForAttributes(_arg0); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getSupportedMixerAttributes: { int _arg0; _arg0 = data.readInt(); data.enforceNoDataAvail(); android.media.AudioMixerAttributesInternal[] _result = this.getSupportedMixerAttributes(_arg0); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_setPreferredMixerAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); int _arg1; _arg1 = data.readInt(); int _arg2; _arg2 = data.readInt(); android.media.AudioMixerAttributesInternal _arg3; _arg3 = data.readTypedObject(android.media.AudioMixerAttributesInternal.CREATOR); data.enforceNoDataAvail(); this.setPreferredMixerAttributes(_arg0, _arg1, _arg2, _arg3); reply.writeNoException(); break; } case TRANSACTION_getPreferredMixerAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); int _arg1; _arg1 = data.readInt(); data.enforceNoDataAvail(); android.media.AudioMixerAttributesInternal _result = this.getPreferredMixerAttributes(_arg0, _arg1); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_clearPreferredMixerAttributes: { android.media.audio.common.AudioAttributes _arg0; _arg0 = data.readTypedObject(android.media.audio.common.AudioAttributes.CREATOR); int _arg1; _arg1 = data.readInt(); int _arg2; _arg2 = data.readInt(); data.enforceNoDataAvail(); this.clearPreferredMixerAttributes(_arg0, _arg1, _arg2); reply.writeNoException(); break; } default: { return super.onTransact(code, data, reply, flags); } } return true; } private static class Proxy implements android.media.IAudioPolicyService { private android.os.IBinder mRemote; Proxy(android.os.IBinder remote) { mRemote = remote; } @Override public android.os.IBinder asBinder() { return mRemote; } public java.lang.String getInterfaceDescriptor() { return DESCRIPTOR; } @Override public void onNewAudioModulesAvailable() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_onNewAudioModulesAvailable, _data, null, android.os.IBinder.FLAG_ONEWAY); } finally { _data.recycle(); } } @Override public void setDeviceConnectionState(int state, android.media.audio.common.AudioPort port, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(state); _data.writeTypedObject(port, 0); _data.writeTypedObject(encodedFormat, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setDeviceConnectionState, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public int getDeviceConnectionState(android.media.audio.common.AudioDevice device) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(device, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getDeviceConnectionState, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void handleDeviceConfigChange(android.media.audio.common.AudioDevice device, java.lang.String deviceName, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(device, 0); _data.writeString(deviceName); _data.writeTypedObject(encodedFormat, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_handleDeviceConfigChange, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setPhoneState(int state, int uid) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(state); _data.writeInt(uid); boolean _status = mRemote.transact(Stub.TRANSACTION_setPhoneState, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setForceUse(int usage, int config) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(usage); _data.writeInt(config); boolean _status = mRemote.transact(Stub.TRANSACTION_setForceUse, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public int getForceUse(int usage) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(usage); boolean _status = mRemote.transact(Stub.TRANSACTION_getForceUse, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** audio_io_handle_t */ @Override public int getOutput(int stream) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); boolean _status = mRemote.transact(Stub.TRANSACTION_getOutput, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.media.GetOutputForAttrResponse getOutputForAttr(android.media.audio.common.AudioAttributes attr, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfig config, int flags, int selectedDeviceId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.GetOutputForAttrResponse _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeInt(session); _data.writeTypedObject(attributionSource, 0); _data.writeTypedObject(config, 0); _data.writeInt(flags); _data.writeInt(selectedDeviceId); boolean _status = mRemote.transact(Stub.TRANSACTION_getOutputForAttr, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.GetOutputForAttrResponse.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void startOutput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_startOutput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void stopOutput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_stopOutput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void releaseOutput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_releaseOutput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.media.GetInputForAttrResponse getInputForAttr(android.media.audio.common.AudioAttributes attr, int input, int riid, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfigBase config, int flags, int selectedDeviceId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.GetInputForAttrResponse _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeInt(input); _data.writeInt(riid); _data.writeInt(session); _data.writeTypedObject(attributionSource, 0); _data.writeTypedObject(config, 0); _data.writeInt(flags); _data.writeInt(selectedDeviceId); boolean _status = mRemote.transact(Stub.TRANSACTION_getInputForAttr, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.GetInputForAttrResponse.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void startInput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_startInput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void stopInput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_stopInput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void releaseInput(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_releaseInput, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void initStreamVolume(int stream, int indexMin, int indexMax) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeInt(indexMin); _data.writeInt(indexMax); boolean _status = mRemote.transact(Stub.TRANSACTION_initStreamVolume, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeTypedObject(device, 0); _data.writeInt(index); boolean _status = mRemote.transact(Stub.TRANSACTION_setStreamVolumeIndex, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public int getStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeTypedObject(device, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getStreamVolumeIndex, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void setVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeTypedObject(device, 0); _data.writeInt(index); boolean _status = mRemote.transact(Stub.TRANSACTION_setVolumeIndexForAttributes, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public int getVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeTypedObject(device, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getVolumeIndexForAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public int getMaxVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getMaxVolumeIndexForAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public int getMinVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getMinVolumeIndexForAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** product_strategy_t */ @Override public int getStrategyForStream(int stream) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); boolean _status = mRemote.transact(Stub.TRANSACTION_getStrategyForStream, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.media.audio.common.AudioDevice[] getDevicesForAttributes(android.media.audio.common.AudioAttributes attr, boolean forVolume) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.audio.common.AudioDevice[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeBoolean(forVolume); boolean _status = mRemote.transact(Stub.TRANSACTION_getDevicesForAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** audio_io_handle_t */ @Override public int getOutputForEffect(android.media.EffectDescriptor desc) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(desc, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getOutputForEffect, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void registerEffect(android.media.EffectDescriptor desc, int io, int strategy, int session, int id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(desc, 0); _data.writeInt(io); _data.writeInt(strategy); _data.writeInt(session); _data.writeInt(id); boolean _status = mRemote.transact(Stub.TRANSACTION_registerEffect, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void unregisterEffect(int id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(id); boolean _status = mRemote.transact(Stub.TRANSACTION_unregisterEffect, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setEffectEnabled(int id, boolean enabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(id); _data.writeBoolean(enabled); boolean _status = mRemote.transact(Stub.TRANSACTION_setEffectEnabled, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void moveEffectsToIo(int[] ids, int io) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(ids); _data.writeInt(io); boolean _status = mRemote.transact(Stub.TRANSACTION_moveEffectsToIo, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public boolean isStreamActive(int stream, int inPastMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeInt(inPastMs); boolean _status = mRemote.transact(Stub.TRANSACTION_isStreamActive, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public boolean isStreamActiveRemotely(int stream, int inPastMs) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeInt(inPastMs); boolean _status = mRemote.transact(Stub.TRANSACTION_isStreamActiveRemotely, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public boolean isSourceActive(int source) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(source); boolean _status = mRemote.transact(Stub.TRANSACTION_isSourceActive, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public android.media.EffectDescriptor[] queryDefaultPreProcessing(int audioSession, android.media.audio.common.Int count) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.EffectDescriptor[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSession); _data.writeTypedObject(count, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_queryDefaultPreProcessing, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.EffectDescriptor.CREATOR); if ((0!=_reply.readInt())) { count.readFromParcel(_reply); } } finally { _reply.recycle(); _data.recycle(); } return _result; } /** audio_unique_id_t */ @Override public int addSourceDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int source) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(type, 0); _data.writeString(opPackageName); _data.writeTypedObject(uuid, 0); _data.writeInt(priority); _data.writeInt(source); boolean _status = mRemote.transact(Stub.TRANSACTION_addSourceDefaultEffect, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** audio_unique_id_t */ @Override public int addStreamDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int usage) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(type, 0); _data.writeString(opPackageName); _data.writeTypedObject(uuid, 0); _data.writeInt(priority); _data.writeInt(usage); boolean _status = mRemote.transact(Stub.TRANSACTION_addStreamDefaultEffect, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void removeSourceDefaultEffect(int id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(id); boolean _status = mRemote.transact(Stub.TRANSACTION_removeSourceDefaultEffect, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void removeStreamDefaultEffect(int id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(id); boolean _status = mRemote.transact(Stub.TRANSACTION_removeStreamDefaultEffect, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setSupportedSystemUsages(int[] systemUsages) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(systemUsages); boolean _status = mRemote.transact(Stub.TRANSACTION_setSupportedSystemUsages, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setAllowedCapturePolicy(int uid, int capturePolicy) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(uid); _data.writeInt(capturePolicy); boolean _status = mRemote.transact(Stub.TRANSACTION_setAllowedCapturePolicy, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Check if offload is possible for given format, stream type, sample rate, * bit rate, duration, video and streaming or offload property is enabled. */ @Override public int getOffloadSupport(android.media.audio.common.AudioOffloadInfo info) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(info, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getOffloadSupport, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** Check if direct playback is possible for given format, sample rate, channel mask and flags. */ @Override public boolean isDirectOutputSupported(android.media.audio.common.AudioConfigBase config, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(config, 0); _data.writeTypedObject(attributes, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_isDirectOutputSupported, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * List currently attached audio ports and their attributes. Returns the generation. * The generation is incremented each time when anything changes in the ports * configuration. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public int listAudioPorts(int role, int type, android.media.audio.common.Int count, android.media.AudioPortFw[] ports) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(role); _data.writeInt(type); _data.writeTypedObject(count, 0); _data.writeInt(ports.length); boolean _status = mRemote.transact(Stub.TRANSACTION_listAudioPorts, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); if ((0!=_reply.readInt())) { count.readFromParcel(_reply); } _reply.readTypedArray(ports, android.media.AudioPortFw.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * List all device ports declared in the configuration (including currently detached ones) * 'role' can be 'NONE' to get both input and output devices, * 'SINK' for output devices, and 'SOURCE' for input devices. */ @Override public android.media.AudioPortFw[] listDeclaredDevicePorts(int role) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioPortFw[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(role); boolean _status = mRemote.transact(Stub.TRANSACTION_listDeclaredDevicePorts, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.AudioPortFw.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** Get attributes for the audio port with the given id (AudioPort.hal.id field). */ @Override public android.media.AudioPortFw getAudioPort(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioPortFw _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_getAudioPort, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.AudioPortFw.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Create an audio patch between several source and sink ports. * The handle argument is used when updating an existing patch. */ /** audio_patch_handle_t */ @Override public int createAudioPatch(android.media.AudioPatchFw patch, int handle) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(patch, 0); _data.writeInt(handle); boolean _status = mRemote.transact(Stub.TRANSACTION_createAudioPatch, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** Release an audio patch. */ @Override public void releaseAudioPatch(int handle) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(handle); boolean _status = mRemote.transact(Stub.TRANSACTION_releaseAudioPatch, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * List existing audio patches. Returns the generation. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public int listAudioPatches(android.media.audio.common.Int count, android.media.AudioPatchFw[] patches) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(count, 0); _data.writeInt(patches.length); boolean _status = mRemote.transact(Stub.TRANSACTION_listAudioPatches, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); if ((0!=_reply.readInt())) { count.readFromParcel(_reply); } _reply.readTypedArray(patches, android.media.AudioPatchFw.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** Set audio port configuration. */ @Override public void setAudioPortConfig(android.media.AudioPortConfigFw config) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(config, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setAudioPortConfig, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void registerClient(android.media.IAudioPolicyServiceClient client) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStrongInterface(client); boolean _status = mRemote.transact(Stub.TRANSACTION_registerClient, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setAudioPortCallbacksEnabled(boolean enabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(enabled); boolean _status = mRemote.transact(Stub.TRANSACTION_setAudioPortCallbacksEnabled, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setAudioVolumeGroupCallbacksEnabled(boolean enabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(enabled); boolean _status = mRemote.transact(Stub.TRANSACTION_setAudioVolumeGroupCallbacksEnabled, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.media.SoundTriggerSession acquireSoundTriggerSession() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.SoundTriggerSession _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_acquireSoundTriggerSession, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.SoundTriggerSession.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void releaseSoundTriggerSession(int session) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(session); boolean _status = mRemote.transact(Stub.TRANSACTION_releaseSoundTriggerSession, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public int getPhoneState() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getPhoneState, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void registerPolicyMixes(android.media.AudioMix[] mixes, boolean registration) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedArray(mixes, 0); _data.writeBoolean(registration); boolean _status = mRemote.transact(Stub.TRANSACTION_registerPolicyMixes, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public java.util.List getRegisteredPolicyMixes() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); java.util.List _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getRegisteredPolicyMixes, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArrayList(android.media.AudioMix.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void updatePolicyMixes(android.media.AudioMixUpdate[] updates) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedArray(updates, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_updatePolicyMixes, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setUidDeviceAffinities(int uid, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(uid); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setUidDeviceAffinities, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void removeUidDeviceAffinities(int uid) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(uid); boolean _status = mRemote.transact(Stub.TRANSACTION_removeUidDeviceAffinities, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setUserIdDeviceAffinities(int userId, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(userId); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setUserIdDeviceAffinities, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void removeUserIdDeviceAffinities(int userId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(userId); boolean _status = mRemote.transact(Stub.TRANSACTION_removeUserIdDeviceAffinities, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** audio_port_handle_t */ @Override public int startAudioSource(android.media.AudioPortConfigFw source, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(source, 0); _data.writeTypedObject(attributes, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_startAudioSource, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void stopAudioSource(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_stopAudioSource, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setMasterMono(boolean mono) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(mono); boolean _status = mRemote.transact(Stub.TRANSACTION_setMasterMono, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public boolean getMasterMono() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getMasterMono, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public float getStreamVolumeDB(int stream, int index, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); float _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(stream); _data.writeInt(index); _data.writeTypedObject(device, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getStreamVolumeDB, _data, _reply, 0); _reply.readException(); _result = _reply.readFloat(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Populates supported surround formats and their enabled state in formats and formatsEnabled. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public void getSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats, boolean[] formatsEnabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(count, 0); _data.writeInt(formats.length); _data.writeInt(formatsEnabled.length); boolean _status = mRemote.transact(Stub.TRANSACTION_getSurroundFormats, _data, _reply, 0); _reply.readException(); if ((0!=_reply.readInt())) { count.readFromParcel(_reply); } _reply.readTypedArray(formats, android.media.audio.common.AudioFormatDescription.CREATOR); _reply.readBooleanArray(formatsEnabled); } finally { _reply.recycle(); _data.recycle(); } } /** * Populates the surround formats reported by the HDMI devices in formats. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ @Override public void getReportedSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(count, 0); _data.writeInt(formats.length); boolean _status = mRemote.transact(Stub.TRANSACTION_getReportedSurroundFormats, _data, _reply, 0); _reply.readException(); if ((0!=_reply.readInt())) { count.readFromParcel(_reply); } _reply.readTypedArray(formats, android.media.audio.common.AudioFormatDescription.CREATOR); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.media.audio.common.AudioFormatDescription[] getHwOffloadFormatsSupportedForBluetoothMedia(android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.audio.common.AudioFormatDescription[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(device, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getHwOffloadFormatsSupportedForBluetoothMedia, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.audio.common.AudioFormatDescription.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void setSurroundFormatEnabled(android.media.audio.common.AudioFormatDescription audioFormat, boolean enabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(audioFormat, 0); _data.writeBoolean(enabled); boolean _status = mRemote.transact(Stub.TRANSACTION_setSurroundFormatEnabled, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setAssistantServicesUids(int[] uids) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(uids); boolean _status = mRemote.transact(Stub.TRANSACTION_setAssistantServicesUids, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setActiveAssistantServicesUids(int[] activeUids) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(activeUids); boolean _status = mRemote.transact(Stub.TRANSACTION_setActiveAssistantServicesUids, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setA11yServicesUids(int[] uids) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeIntArray(uids); boolean _status = mRemote.transact(Stub.TRANSACTION_setA11yServicesUids, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void setCurrentImeUid(int uid) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(uid); boolean _status = mRemote.transact(Stub.TRANSACTION_setCurrentImeUid, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public boolean isHapticPlaybackSupported() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_isHapticPlaybackSupported, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public boolean isUltrasoundSupported() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_isUltrasoundSupported, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Queries if there is hardware support for requesting audio capture content from * the DSP hotword pipeline. * * @param lookbackAudio true if additionally querying for the ability to capture audio * from the pipeline prior to capture stream open. */ @Override public boolean isHotwordStreamSupported(boolean lookbackAudio) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(lookbackAudio); boolean _status = mRemote.transact(Stub.TRANSACTION_isHotwordStreamSupported, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.media.AudioProductStrategy[] listAudioProductStrategies() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioProductStrategy[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_listAudioProductStrategies, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.AudioProductStrategy.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** product_strategy_t */ @Override public int getProductStrategyFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(aa, 0); _data.writeBoolean(fallbackOnDefault); boolean _status = mRemote.transact(Stub.TRANSACTION_getProductStrategyFromAudioAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.media.AudioVolumeGroup[] listAudioVolumeGroups() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioVolumeGroup[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_listAudioVolumeGroups, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.AudioVolumeGroup.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** volume_group_t */ @Override public int getVolumeGroupFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(aa, 0); _data.writeBoolean(fallbackOnDefault); boolean _status = mRemote.transact(Stub.TRANSACTION_getVolumeGroupFromAudioAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void setRttEnabled(boolean enabled) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeBoolean(enabled); boolean _status = mRemote.transact(Stub.TRANSACTION_setRttEnabled, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public boolean isCallScreenModeSupported() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_isCallScreenModeSupported, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void setDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(strategy); _data.writeInt(role); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setDevicesRoleForStrategy, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void removeDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(strategy); _data.writeInt(role); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_removeDevicesRoleForStrategy, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void clearDevicesRoleForStrategy(int strategy, int role) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(strategy); _data.writeInt(role); boolean _status = mRemote.transact(Stub.TRANSACTION_clearDevicesRoleForStrategy, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.media.audio.common.AudioDevice[] getDevicesForRoleAndStrategy(int strategy, int role) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.audio.common.AudioDevice[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(strategy); _data.writeInt(role); boolean _status = mRemote.transact(Stub.TRANSACTION_getDevicesForRoleAndStrategy, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void setDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSource); _data.writeInt(role); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setDevicesRoleForCapturePreset, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void addDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSource); _data.writeInt(role); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_addDevicesRoleForCapturePreset, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void removeDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSource); _data.writeInt(role); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_removeDevicesRoleForCapturePreset, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void clearDevicesRoleForCapturePreset(int audioSource, int role) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSource); _data.writeInt(role); boolean _status = mRemote.transact(Stub.TRANSACTION_clearDevicesRoleForCapturePreset, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.media.audio.common.AudioDevice[] getDevicesForRoleAndCapturePreset(int audioSource, int role) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.audio.common.AudioDevice[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(audioSource); _data.writeInt(role); boolean _status = mRemote.transact(Stub.TRANSACTION_getDevicesForRoleAndCapturePreset, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.audio.common.AudioDevice.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public boolean registerSoundTriggerCaptureStateListener(android.media.ICaptureStateListener listener) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStrongInterface(listener); boolean _status = mRemote.transact(Stub.TRANSACTION_registerSoundTriggerCaptureStateListener, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * If a spatializer stage effect is present on the platform, this will return an * ISpatializer interface (see GetSpatializerResponse,aidl) to control this * feature. * If no spatializer stage is present, a null interface is returned. * The INativeSpatializerCallback passed must not be null. * Only one ISpatializer interface can exist at a given time. The native audio policy * service will reject the request if an interface was already acquired and previous owner * did not die or call ISpatializer.release(). */ @Override public android.media.GetSpatializerResponse getSpatializer(android.media.INativeSpatializerCallback callback) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.GetSpatializerResponse _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStrongInterface(callback); boolean _status = mRemote.transact(Stub.TRANSACTION_getSpatializer, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.GetSpatializerResponse.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Queries if some kind of spatialization will be performed if the audio playback context * described by the provided arguments is present. * The context is made of: * - The audio attributes describing the playback use case. * - The audio configuration describing the audio format, channels, sampling rate... * - The devices describing the sink audio device selected for playback. * All arguments are optional and only the specified arguments are used to match against * supported criteria. For instance, supplying no argument will tell if spatialization is * supported or not in general. */ @Override public boolean canBeSpatialized(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); boolean _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeTypedObject(config, 0); _data.writeTypedArray(devices, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_canBeSpatialized, _data, _reply, 0); _reply.readException(); _result = _reply.readBoolean(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** Query how the direct playback is currently supported on the device. */ @Override public int getDirectPlaybackSupport(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); int _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeTypedObject(config, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getDirectPlaybackSupport, _data, _reply, 0); _reply.readException(); _result = _reply.readInt(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Query audio profiles available for direct playback on the current output device(s) * for the specified audio attributes. */ @Override public android.media.audio.common.AudioProfile[] getDirectProfilesForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.audio.common.AudioProfile[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getDirectProfilesForAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.audio.common.AudioProfile.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Return a list of AudioMixerAttributes that can be used to set preferred mixer attributes * for the given device. */ @Override public android.media.AudioMixerAttributesInternal[] getSupportedMixerAttributes(int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioMixerAttributesInternal[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_getSupportedMixerAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.media.AudioMixerAttributesInternal.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Set preferred mixer attributes for a given device on a given audio attributes. * When conflicting requests are received, the last request will be honored. * The preferred mixer attributes can only be set when 1) the usage is media, 2) the * given device is currently available, 3) the given device is usb device, 4) the given mixer * attributes is supported by the given device. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid will be used to recognize the ownership for * the preferred mixer attributes. All the playback with same audio attributes from * the same uid will be attached to the mixer with the preferred attributes if the * playback is routed to the given device. * @param mixerAttr the preferred mixer attributes. */ @Override public void setPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid, android.media.AudioMixerAttributesInternal mixerAttr) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeInt(portId); _data.writeInt(uid); _data.writeTypedObject(mixerAttr, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_setPreferredMixerAttributes, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Get preferred mixer attributes for a given device on a given audio attributes. * Null will be returned if there is no preferred mixer attributes set or it has * been cleared. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. */ @Override public android.media.AudioMixerAttributesInternal getPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); android.media.AudioMixerAttributesInternal _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeInt(portId); boolean _status = mRemote.transact(Stub.TRANSACTION_getPreferredMixerAttributes, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.media.AudioMixerAttributesInternal.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Clear preferred mixer attributes for a given device on a given audio attributes that * is previously set via setPreferredMixerAttributes. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid is used to identify the ownership for the * preferred mixer attributes. The preferred mixer attributes will only be cleared * if the uid is the same as the owner of current preferred mixer attributes. */ @Override public void clearPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(asBinder()); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(attr, 0); _data.writeInt(portId); _data.writeInt(uid); boolean _status = mRemote.transact(Stub.TRANSACTION_clearPreferredMixerAttributes, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } } static final int TRANSACTION_onNewAudioModulesAvailable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); static final int TRANSACTION_setDeviceConnectionState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); static final int TRANSACTION_getDeviceConnectionState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); static final int TRANSACTION_handleDeviceConfigChange = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); static final int TRANSACTION_setPhoneState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); static final int TRANSACTION_setForceUse = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); static final int TRANSACTION_getForceUse = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); static final int TRANSACTION_getOutput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7); static final int TRANSACTION_getOutputForAttr = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); static final int TRANSACTION_startOutput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9); static final int TRANSACTION_stopOutput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10); static final int TRANSACTION_releaseOutput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11); static final int TRANSACTION_getInputForAttr = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12); static final int TRANSACTION_startInput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13); static final int TRANSACTION_stopInput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14); static final int TRANSACTION_releaseInput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 15); static final int TRANSACTION_initStreamVolume = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16); static final int TRANSACTION_setStreamVolumeIndex = (android.os.IBinder.FIRST_CALL_TRANSACTION + 17); static final int TRANSACTION_getStreamVolumeIndex = (android.os.IBinder.FIRST_CALL_TRANSACTION + 18); static final int TRANSACTION_setVolumeIndexForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 19); static final int TRANSACTION_getVolumeIndexForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 20); static final int TRANSACTION_getMaxVolumeIndexForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 21); static final int TRANSACTION_getMinVolumeIndexForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 22); static final int TRANSACTION_getStrategyForStream = (android.os.IBinder.FIRST_CALL_TRANSACTION + 23); static final int TRANSACTION_getDevicesForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 24); static final int TRANSACTION_getOutputForEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 25); static final int TRANSACTION_registerEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 26); static final int TRANSACTION_unregisterEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 27); static final int TRANSACTION_setEffectEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 28); static final int TRANSACTION_moveEffectsToIo = (android.os.IBinder.FIRST_CALL_TRANSACTION + 29); static final int TRANSACTION_isStreamActive = (android.os.IBinder.FIRST_CALL_TRANSACTION + 30); static final int TRANSACTION_isStreamActiveRemotely = (android.os.IBinder.FIRST_CALL_TRANSACTION + 31); static final int TRANSACTION_isSourceActive = (android.os.IBinder.FIRST_CALL_TRANSACTION + 32); static final int TRANSACTION_queryDefaultPreProcessing = (android.os.IBinder.FIRST_CALL_TRANSACTION + 33); static final int TRANSACTION_addSourceDefaultEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 34); static final int TRANSACTION_addStreamDefaultEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 35); static final int TRANSACTION_removeSourceDefaultEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 36); static final int TRANSACTION_removeStreamDefaultEffect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 37); static final int TRANSACTION_setSupportedSystemUsages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 38); static final int TRANSACTION_setAllowedCapturePolicy = (android.os.IBinder.FIRST_CALL_TRANSACTION + 39); static final int TRANSACTION_getOffloadSupport = (android.os.IBinder.FIRST_CALL_TRANSACTION + 40); static final int TRANSACTION_isDirectOutputSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 41); static final int TRANSACTION_listAudioPorts = (android.os.IBinder.FIRST_CALL_TRANSACTION + 42); static final int TRANSACTION_listDeclaredDevicePorts = (android.os.IBinder.FIRST_CALL_TRANSACTION + 43); static final int TRANSACTION_getAudioPort = (android.os.IBinder.FIRST_CALL_TRANSACTION + 44); static final int TRANSACTION_createAudioPatch = (android.os.IBinder.FIRST_CALL_TRANSACTION + 45); static final int TRANSACTION_releaseAudioPatch = (android.os.IBinder.FIRST_CALL_TRANSACTION + 46); static final int TRANSACTION_listAudioPatches = (android.os.IBinder.FIRST_CALL_TRANSACTION + 47); static final int TRANSACTION_setAudioPortConfig = (android.os.IBinder.FIRST_CALL_TRANSACTION + 48); static final int TRANSACTION_registerClient = (android.os.IBinder.FIRST_CALL_TRANSACTION + 49); static final int TRANSACTION_setAudioPortCallbacksEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 50); static final int TRANSACTION_setAudioVolumeGroupCallbacksEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 51); static final int TRANSACTION_acquireSoundTriggerSession = (android.os.IBinder.FIRST_CALL_TRANSACTION + 52); static final int TRANSACTION_releaseSoundTriggerSession = (android.os.IBinder.FIRST_CALL_TRANSACTION + 53); static final int TRANSACTION_getPhoneState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 54); static final int TRANSACTION_registerPolicyMixes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 55); static final int TRANSACTION_getRegisteredPolicyMixes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 56); static final int TRANSACTION_updatePolicyMixes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 57); static final int TRANSACTION_setUidDeviceAffinities = (android.os.IBinder.FIRST_CALL_TRANSACTION + 58); static final int TRANSACTION_removeUidDeviceAffinities = (android.os.IBinder.FIRST_CALL_TRANSACTION + 59); static final int TRANSACTION_setUserIdDeviceAffinities = (android.os.IBinder.FIRST_CALL_TRANSACTION + 60); static final int TRANSACTION_removeUserIdDeviceAffinities = (android.os.IBinder.FIRST_CALL_TRANSACTION + 61); static final int TRANSACTION_startAudioSource = (android.os.IBinder.FIRST_CALL_TRANSACTION + 62); static final int TRANSACTION_stopAudioSource = (android.os.IBinder.FIRST_CALL_TRANSACTION + 63); static final int TRANSACTION_setMasterMono = (android.os.IBinder.FIRST_CALL_TRANSACTION + 64); static final int TRANSACTION_getMasterMono = (android.os.IBinder.FIRST_CALL_TRANSACTION + 65); static final int TRANSACTION_getStreamVolumeDB = (android.os.IBinder.FIRST_CALL_TRANSACTION + 66); static final int TRANSACTION_getSurroundFormats = (android.os.IBinder.FIRST_CALL_TRANSACTION + 67); static final int TRANSACTION_getReportedSurroundFormats = (android.os.IBinder.FIRST_CALL_TRANSACTION + 68); static final int TRANSACTION_getHwOffloadFormatsSupportedForBluetoothMedia = (android.os.IBinder.FIRST_CALL_TRANSACTION + 69); static final int TRANSACTION_setSurroundFormatEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 70); static final int TRANSACTION_setAssistantServicesUids = (android.os.IBinder.FIRST_CALL_TRANSACTION + 71); static final int TRANSACTION_setActiveAssistantServicesUids = (android.os.IBinder.FIRST_CALL_TRANSACTION + 72); static final int TRANSACTION_setA11yServicesUids = (android.os.IBinder.FIRST_CALL_TRANSACTION + 73); static final int TRANSACTION_setCurrentImeUid = (android.os.IBinder.FIRST_CALL_TRANSACTION + 74); static final int TRANSACTION_isHapticPlaybackSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 75); static final int TRANSACTION_isUltrasoundSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 76); static final int TRANSACTION_isHotwordStreamSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 77); static final int TRANSACTION_listAudioProductStrategies = (android.os.IBinder.FIRST_CALL_TRANSACTION + 78); static final int TRANSACTION_getProductStrategyFromAudioAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 79); static final int TRANSACTION_listAudioVolumeGroups = (android.os.IBinder.FIRST_CALL_TRANSACTION + 80); static final int TRANSACTION_getVolumeGroupFromAudioAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 81); static final int TRANSACTION_setRttEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 82); static final int TRANSACTION_isCallScreenModeSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 83); static final int TRANSACTION_setDevicesRoleForStrategy = (android.os.IBinder.FIRST_CALL_TRANSACTION + 84); static final int TRANSACTION_removeDevicesRoleForStrategy = (android.os.IBinder.FIRST_CALL_TRANSACTION + 85); static final int TRANSACTION_clearDevicesRoleForStrategy = (android.os.IBinder.FIRST_CALL_TRANSACTION + 86); static final int TRANSACTION_getDevicesForRoleAndStrategy = (android.os.IBinder.FIRST_CALL_TRANSACTION + 87); static final int TRANSACTION_setDevicesRoleForCapturePreset = (android.os.IBinder.FIRST_CALL_TRANSACTION + 88); static final int TRANSACTION_addDevicesRoleForCapturePreset = (android.os.IBinder.FIRST_CALL_TRANSACTION + 89); static final int TRANSACTION_removeDevicesRoleForCapturePreset = (android.os.IBinder.FIRST_CALL_TRANSACTION + 90); static final int TRANSACTION_clearDevicesRoleForCapturePreset = (android.os.IBinder.FIRST_CALL_TRANSACTION + 91); static final int TRANSACTION_getDevicesForRoleAndCapturePreset = (android.os.IBinder.FIRST_CALL_TRANSACTION + 92); static final int TRANSACTION_registerSoundTriggerCaptureStateListener = (android.os.IBinder.FIRST_CALL_TRANSACTION + 93); static final int TRANSACTION_getSpatializer = (android.os.IBinder.FIRST_CALL_TRANSACTION + 94); static final int TRANSACTION_canBeSpatialized = (android.os.IBinder.FIRST_CALL_TRANSACTION + 95); static final int TRANSACTION_getDirectPlaybackSupport = (android.os.IBinder.FIRST_CALL_TRANSACTION + 96); static final int TRANSACTION_getDirectProfilesForAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 97); static final int TRANSACTION_getSupportedMixerAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 98); static final int TRANSACTION_setPreferredMixerAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 99); static final int TRANSACTION_getPreferredMixerAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 100); static final int TRANSACTION_clearPreferredMixerAttributes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 101); } /** @hide */ public static final java.lang.String DESCRIPTOR = "android.media.IAudioPolicyService"; public void onNewAudioModulesAvailable() throws android.os.RemoteException; public void setDeviceConnectionState(int state, android.media.audio.common.AudioPort port, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException; public int getDeviceConnectionState(android.media.audio.common.AudioDevice device) throws android.os.RemoteException; public void handleDeviceConfigChange(android.media.audio.common.AudioDevice device, java.lang.String deviceName, android.media.audio.common.AudioFormatDescription encodedFormat) throws android.os.RemoteException; public void setPhoneState(int state, int uid) throws android.os.RemoteException; public void setForceUse(int usage, int config) throws android.os.RemoteException; public int getForceUse(int usage) throws android.os.RemoteException; /** audio_io_handle_t */ public int getOutput(int stream) throws android.os.RemoteException; public android.media.GetOutputForAttrResponse getOutputForAttr(android.media.audio.common.AudioAttributes attr, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfig config, int flags, int selectedDeviceId) throws android.os.RemoteException; public void startOutput(int portId) throws android.os.RemoteException; public void stopOutput(int portId) throws android.os.RemoteException; public void releaseOutput(int portId) throws android.os.RemoteException; public android.media.GetInputForAttrResponse getInputForAttr(android.media.audio.common.AudioAttributes attr, int input, int riid, int session, android.content.AttributionSourceState attributionSource, android.media.audio.common.AudioConfigBase config, int flags, int selectedDeviceId) throws android.os.RemoteException; public void startInput(int portId) throws android.os.RemoteException; public void stopInput(int portId) throws android.os.RemoteException; public void releaseInput(int portId) throws android.os.RemoteException; public void initStreamVolume(int stream, int indexMin, int indexMax) throws android.os.RemoteException; public void setStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException; public int getStreamVolumeIndex(int stream, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException; public void setVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device, int index) throws android.os.RemoteException; public int getVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException; public int getMaxVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException; public int getMinVolumeIndexForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException; /** product_strategy_t */ public int getStrategyForStream(int stream) throws android.os.RemoteException; public android.media.audio.common.AudioDevice[] getDevicesForAttributes(android.media.audio.common.AudioAttributes attr, boolean forVolume) throws android.os.RemoteException; /** audio_io_handle_t */ public int getOutputForEffect(android.media.EffectDescriptor desc) throws android.os.RemoteException; public void registerEffect(android.media.EffectDescriptor desc, int io, int strategy, int session, int id) throws android.os.RemoteException; public void unregisterEffect(int id) throws android.os.RemoteException; public void setEffectEnabled(int id, boolean enabled) throws android.os.RemoteException; public void moveEffectsToIo(int[] ids, int io) throws android.os.RemoteException; public boolean isStreamActive(int stream, int inPastMs) throws android.os.RemoteException; public boolean isStreamActiveRemotely(int stream, int inPastMs) throws android.os.RemoteException; public boolean isSourceActive(int source) throws android.os.RemoteException; /** * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ public android.media.EffectDescriptor[] queryDefaultPreProcessing(int audioSession, android.media.audio.common.Int count) throws android.os.RemoteException; /** audio_unique_id_t */ public int addSourceDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int source) throws android.os.RemoteException; /** audio_unique_id_t */ public int addStreamDefaultEffect(android.media.audio.common.AudioUuid type, java.lang.String opPackageName, android.media.audio.common.AudioUuid uuid, int priority, int usage) throws android.os.RemoteException; public void removeSourceDefaultEffect(int id) throws android.os.RemoteException; public void removeStreamDefaultEffect(int id) throws android.os.RemoteException; public void setSupportedSystemUsages(int[] systemUsages) throws android.os.RemoteException; public void setAllowedCapturePolicy(int uid, int capturePolicy) throws android.os.RemoteException; /** * Check if offload is possible for given format, stream type, sample rate, * bit rate, duration, video and streaming or offload property is enabled. */ public int getOffloadSupport(android.media.audio.common.AudioOffloadInfo info) throws android.os.RemoteException; /** Check if direct playback is possible for given format, sample rate, channel mask and flags. */ public boolean isDirectOutputSupported(android.media.audio.common.AudioConfigBase config, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException; /** * List currently attached audio ports and their attributes. Returns the generation. * The generation is incremented each time when anything changes in the ports * configuration. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ public int listAudioPorts(int role, int type, android.media.audio.common.Int count, android.media.AudioPortFw[] ports) throws android.os.RemoteException; /** * List all device ports declared in the configuration (including currently detached ones) * 'role' can be 'NONE' to get both input and output devices, * 'SINK' for output devices, and 'SOURCE' for input devices. */ public android.media.AudioPortFw[] listDeclaredDevicePorts(int role) throws android.os.RemoteException; /** Get attributes for the audio port with the given id (AudioPort.hal.id field). */ public android.media.AudioPortFw getAudioPort(int portId) throws android.os.RemoteException; /** * Create an audio patch between several source and sink ports. * The handle argument is used when updating an existing patch. */ /** audio_patch_handle_t */ public int createAudioPatch(android.media.AudioPatchFw patch, int handle) throws android.os.RemoteException; /** Release an audio patch. */ public void releaseAudioPatch(int handle) throws android.os.RemoteException; /** * List existing audio patches. Returns the generation. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ public int listAudioPatches(android.media.audio.common.Int count, android.media.AudioPatchFw[] patches) throws android.os.RemoteException; /** Set audio port configuration. */ public void setAudioPortConfig(android.media.AudioPortConfigFw config) throws android.os.RemoteException; public void registerClient(android.media.IAudioPolicyServiceClient client) throws android.os.RemoteException; public void setAudioPortCallbacksEnabled(boolean enabled) throws android.os.RemoteException; public void setAudioVolumeGroupCallbacksEnabled(boolean enabled) throws android.os.RemoteException; public android.media.SoundTriggerSession acquireSoundTriggerSession() throws android.os.RemoteException; public void releaseSoundTriggerSession(int session) throws android.os.RemoteException; public int getPhoneState() throws android.os.RemoteException; public void registerPolicyMixes(android.media.AudioMix[] mixes, boolean registration) throws android.os.RemoteException; public java.util.List getRegisteredPolicyMixes() throws android.os.RemoteException; public void updatePolicyMixes(android.media.AudioMixUpdate[] updates) throws android.os.RemoteException; public void setUidDeviceAffinities(int uid, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void removeUidDeviceAffinities(int uid) throws android.os.RemoteException; public void setUserIdDeviceAffinities(int userId, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void removeUserIdDeviceAffinities(int userId) throws android.os.RemoteException; /** audio_port_handle_t */ public int startAudioSource(android.media.AudioPortConfigFw source, android.media.audio.common.AudioAttributes attributes) throws android.os.RemoteException; public void stopAudioSource(int portId) throws android.os.RemoteException; public void setMasterMono(boolean mono) throws android.os.RemoteException; public boolean getMasterMono() throws android.os.RemoteException; public float getStreamVolumeDB(int stream, int index, android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException; /** * Populates supported surround formats and their enabled state in formats and formatsEnabled. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ public void getSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats, boolean[] formatsEnabled) throws android.os.RemoteException; /** * Populates the surround formats reported by the HDMI devices in formats. * * On input, count represents the maximum length of the returned array. * On output, count is the total number of elements, which may be larger than the array size. * Passing '0' on input and inspecting the value on output is a common way of determining the * number of elements without actually retrieving them. */ public void getReportedSurroundFormats(android.media.audio.common.Int count, android.media.audio.common.AudioFormatDescription[] formats) throws android.os.RemoteException; public android.media.audio.common.AudioFormatDescription[] getHwOffloadFormatsSupportedForBluetoothMedia(android.media.audio.common.AudioDeviceDescription device) throws android.os.RemoteException; public void setSurroundFormatEnabled(android.media.audio.common.AudioFormatDescription audioFormat, boolean enabled) throws android.os.RemoteException; public void setAssistantServicesUids(int[] uids) throws android.os.RemoteException; public void setActiveAssistantServicesUids(int[] activeUids) throws android.os.RemoteException; public void setA11yServicesUids(int[] uids) throws android.os.RemoteException; public void setCurrentImeUid(int uid) throws android.os.RemoteException; public boolean isHapticPlaybackSupported() throws android.os.RemoteException; public boolean isUltrasoundSupported() throws android.os.RemoteException; /** * Queries if there is hardware support for requesting audio capture content from * the DSP hotword pipeline. * * @param lookbackAudio true if additionally querying for the ability to capture audio * from the pipeline prior to capture stream open. */ public boolean isHotwordStreamSupported(boolean lookbackAudio) throws android.os.RemoteException; public android.media.AudioProductStrategy[] listAudioProductStrategies() throws android.os.RemoteException; /** product_strategy_t */ public int getProductStrategyFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException; public android.media.AudioVolumeGroup[] listAudioVolumeGroups() throws android.os.RemoteException; /** volume_group_t */ public int getVolumeGroupFromAudioAttributes(android.media.audio.common.AudioAttributes aa, boolean fallbackOnDefault) throws android.os.RemoteException; public void setRttEnabled(boolean enabled) throws android.os.RemoteException; public boolean isCallScreenModeSupported() throws android.os.RemoteException; public void setDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void removeDevicesRoleForStrategy(int strategy, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void clearDevicesRoleForStrategy(int strategy, int role) throws android.os.RemoteException; public android.media.audio.common.AudioDevice[] getDevicesForRoleAndStrategy(int strategy, int role) throws android.os.RemoteException; public void setDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void addDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void removeDevicesRoleForCapturePreset(int audioSource, int role, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; public void clearDevicesRoleForCapturePreset(int audioSource, int role) throws android.os.RemoteException; public android.media.audio.common.AudioDevice[] getDevicesForRoleAndCapturePreset(int audioSource, int role) throws android.os.RemoteException; public boolean registerSoundTriggerCaptureStateListener(android.media.ICaptureStateListener listener) throws android.os.RemoteException; /** * If a spatializer stage effect is present on the platform, this will return an * ISpatializer interface (see GetSpatializerResponse,aidl) to control this * feature. * If no spatializer stage is present, a null interface is returned. * The INativeSpatializerCallback passed must not be null. * Only one ISpatializer interface can exist at a given time. The native audio policy * service will reject the request if an interface was already acquired and previous owner * did not die or call ISpatializer.release(). */ public android.media.GetSpatializerResponse getSpatializer(android.media.INativeSpatializerCallback callback) throws android.os.RemoteException; /** * Queries if some kind of spatialization will be performed if the audio playback context * described by the provided arguments is present. * The context is made of: * - The audio attributes describing the playback use case. * - The audio configuration describing the audio format, channels, sampling rate... * - The devices describing the sink audio device selected for playback. * All arguments are optional and only the specified arguments are used to match against * supported criteria. For instance, supplying no argument will tell if spatialization is * supported or not in general. */ public boolean canBeSpatialized(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config, android.media.audio.common.AudioDevice[] devices) throws android.os.RemoteException; /** Query how the direct playback is currently supported on the device. */ public int getDirectPlaybackSupport(android.media.audio.common.AudioAttributes attr, android.media.audio.common.AudioConfig config) throws android.os.RemoteException; /** * Query audio profiles available for direct playback on the current output device(s) * for the specified audio attributes. */ public android.media.audio.common.AudioProfile[] getDirectProfilesForAttributes(android.media.audio.common.AudioAttributes attr) throws android.os.RemoteException; /** * Return a list of AudioMixerAttributes that can be used to set preferred mixer attributes * for the given device. */ public android.media.AudioMixerAttributesInternal[] getSupportedMixerAttributes(int portId) throws android.os.RemoteException; /** * Set preferred mixer attributes for a given device on a given audio attributes. * When conflicting requests are received, the last request will be honored. * The preferred mixer attributes can only be set when 1) the usage is media, 2) the * given device is currently available, 3) the given device is usb device, 4) the given mixer * attributes is supported by the given device. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid will be used to recognize the ownership for * the preferred mixer attributes. All the playback with same audio attributes from * the same uid will be attached to the mixer with the preferred attributes if the * playback is routed to the given device. * @param mixerAttr the preferred mixer attributes. */ public void setPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid, android.media.AudioMixerAttributesInternal mixerAttr) throws android.os.RemoteException; /** * Get preferred mixer attributes for a given device on a given audio attributes. * Null will be returned if there is no preferred mixer attributes set or it has * been cleared. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. */ public android.media.AudioMixerAttributesInternal getPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId) throws android.os.RemoteException; /** * Clear preferred mixer attributes for a given device on a given audio attributes that * is previously set via setPreferredMixerAttributes. * * @param attr the audio attributes whose mixer attributes should be set. * @param portId the port id of the device to be routed. * @param uid the uid of the request client. The uid is used to identify the ownership for the * preferred mixer attributes. The preferred mixer attributes will only be cleared * if the uid is the same as the owner of current preferred mixer attributes. */ public void clearPreferredMixerAttributes(android.media.audio.common.AudioAttributes attr, int portId, int uid) throws android.os.RemoteException; }