script-astra/Android/Sdk/sources/android-35/android/media/ISpatializer.java
localadmin 4380f00a78 init
2025-01-20 18:15:20 +03:00

942 lines
37 KiB
Java

/*
* 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/audiopolicy-types-aidl_interface/preprocessed.aidl --ninja -d out/soong/.intermediates/frameworks/av/media/libaudioclient/spatializer-aidl-java-source/gen/android/media/ISpatializer.java.d -o out/soong/.intermediates/frameworks/av/media/libaudioclient/spatializer-aidl-java-source/gen -Nframeworks/av/media/libaudioclient/aidl frameworks/av/media/libaudioclient/aidl/android/media/ISpatializer.aidl
*/
package android.media;
/**
* The ISpatializer interface is used to control the native audio service implementation
* of the spatializer stage with headtracking when present on a platform.
* It is intended for exclusive use by the java AudioService running in system_server.
* It provides APIs to discover the feature availability and options as well as control and report
* the active state and modes of the spatializer and head tracking effect.
* {@hide}
*/
public interface ISpatializer extends android.os.IInterface
{
/** Default implementation for ISpatializer. */
public static class Default implements android.media.ISpatializer
{
/** Releases a ISpatializer interface previously acquired. */
@Override public void release() throws android.os.RemoteException
{
}
/**
* Reports the list of supported spatialization levels.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
@Override public byte[] getSupportedLevels() throws android.os.RemoteException
{
return null;
}
/**
* Selects the desired spatialization level. Selecting a level
* different from Spatializer.Level.NONE with create the specialized multichannel output
* mixer, create and enable the spatializer effect and let the audio policy attach eligible
* AudioTrack to this output stream.
*/
@Override public void setLevel(byte level) throws android.os.RemoteException
{
}
/** Gets the selected spatialization level. */
@Override public byte getLevel() throws android.os.RemoteException
{
return 0;
}
/**
* Reports if the spatializer engine supports head tracking or not.
* This is a pre condition independent of the fact that a head tracking sensor is
* registered or not.
*/
@Override public boolean isHeadTrackingSupported() throws android.os.RemoteException
{
return false;
}
/**
* Reports the list of supported head tracking modes.
* The list always contains SpatializerHeadTrackingMode.DISABLED and can include other modes
* if the spatializer effect implementation supports head tracking.
* The result does not depend on currently connected sensors but reflects the capabilities
* when sensors are available.
*/
@Override public byte[] getSupportedHeadTrackingModes() throws android.os.RemoteException
{
return null;
}
/** Selects the desired head tracking mode. */
@Override public void setDesiredHeadTrackingMode(byte mode) throws android.os.RemoteException
{
}
/**
* Gets the actual head tracking mode. Can be different from the desired mode if conditions to
* enable the desired mode are not met (e.g if the head tracking device was removed)
*/
@Override public byte getActualHeadTrackingMode() throws android.os.RemoteException
{
return 0;
}
/** Reset the head tracking algorithm to consider current head pose as neutral */
@Override public void recenterHeadTracker() throws android.os.RemoteException
{
}
/**
* Set the screen to stage transform to use by the head tracking algorithm
* The screen to stage transform is conveyed as a vector of 6 elements,
* where the first three are a translation vector and
* the last three are a rotation vector.
*/
@Override public void setGlobalTransform(float[] screenToStage) throws android.os.RemoteException
{
}
/**
* Set the sensor that is to be used for head-tracking.
* -1 can be used to disable head-tracking.
*/
@Override public void setHeadSensor(int sensorHandle) throws android.os.RemoteException
{
}
/**
* Set the sensor that is to be used for screen-tracking.
* -1 can be used to disable screen-tracking.
*/
@Override public void setScreenSensor(int sensorHandle) throws android.os.RemoteException
{
}
/**
* Sets the display orientation.
*
* This is the rotation of the displayed content relative to its natural orientation.
*
* Orientation is expressed in the angle of rotation from the physical "up" side of the screen
* to the logical "up" side of the content displayed the screen. Counterclockwise angles, as
* viewed while facing the screen are positive.
*
* Note: DisplayManager currently only returns this in increments of 90 degrees,
* so the values will be 0, PI/2, PI, 3PI/2.
*/
@Override public void setDisplayOrientation(float physicalToLogicalAngle) throws android.os.RemoteException
{
}
/**
* Sets the hinge angle for foldable devices.
*
* Per the hinge angle sensor, this returns a value from 0 to 2PI.
* The value of 0 is considered closed, and PI is considered flat open.
*/
@Override public void setHingeAngle(float hingeAngle) throws android.os.RemoteException
{
}
/**
* Sets whether a foldable is considered "folded" or not.
*
* The fold state may affect which physical screen is active for display.
*/
@Override public void setFoldState(boolean folded) throws android.os.RemoteException
{
}
/**
* Reports the list of supported spatialization modess.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
@Override public byte[] getSupportedModes() throws android.os.RemoteException
{
return null;
}
/**
* Registers a callback to monitor head tracking functions.
* Only one callback can be registered on a Spatializer.
* The last callback registered wins and passing a nullptr unregisters
* last registered callback.
*/
@Override public void registerHeadTrackingCallback(android.media.ISpatializerHeadTrackingCallback callback) throws android.os.RemoteException
{
}
/**
* Sets a parameter to the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
@Override public void setParameter(int key, byte[] value) throws android.os.RemoteException
{
}
/**
* Gets a parameter from the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
@Override public void getParameter(int key, byte[] value) throws android.os.RemoteException
{
}
/** Gets the io handle of the output stream the spatializer is connected to. */
@Override public int getOutput() throws android.os.RemoteException
{
return 0;
}
@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.ISpatializer
{
/** 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.ISpatializer interface,
* generating a proxy if needed.
*/
public static android.media.ISpatializer asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin!=null)&&(iin instanceof android.media.ISpatializer))) {
return ((android.media.ISpatializer)iin);
}
return new android.media.ISpatializer.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_release:
{
this.release();
reply.writeNoException();
break;
}
case TRANSACTION_getSupportedLevels:
{
byte[] _result = this.getSupportedLevels();
reply.writeNoException();
reply.writeByteArray(_result);
break;
}
case TRANSACTION_setLevel:
{
byte _arg0;
_arg0 = data.readByte();
data.enforceNoDataAvail();
this.setLevel(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_getLevel:
{
byte _result = this.getLevel();
reply.writeNoException();
reply.writeByte(_result);
break;
}
case TRANSACTION_isHeadTrackingSupported:
{
boolean _result = this.isHeadTrackingSupported();
reply.writeNoException();
reply.writeBoolean(_result);
break;
}
case TRANSACTION_getSupportedHeadTrackingModes:
{
byte[] _result = this.getSupportedHeadTrackingModes();
reply.writeNoException();
reply.writeByteArray(_result);
break;
}
case TRANSACTION_setDesiredHeadTrackingMode:
{
byte _arg0;
_arg0 = data.readByte();
data.enforceNoDataAvail();
this.setDesiredHeadTrackingMode(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_getActualHeadTrackingMode:
{
byte _result = this.getActualHeadTrackingMode();
reply.writeNoException();
reply.writeByte(_result);
break;
}
case TRANSACTION_recenterHeadTracker:
{
this.recenterHeadTracker();
reply.writeNoException();
break;
}
case TRANSACTION_setGlobalTransform:
{
float[] _arg0;
_arg0 = data.createFloatArray();
data.enforceNoDataAvail();
this.setGlobalTransform(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setHeadSensor:
{
int _arg0;
_arg0 = data.readInt();
data.enforceNoDataAvail();
this.setHeadSensor(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setScreenSensor:
{
int _arg0;
_arg0 = data.readInt();
data.enforceNoDataAvail();
this.setScreenSensor(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setDisplayOrientation:
{
float _arg0;
_arg0 = data.readFloat();
data.enforceNoDataAvail();
this.setDisplayOrientation(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setHingeAngle:
{
float _arg0;
_arg0 = data.readFloat();
data.enforceNoDataAvail();
this.setHingeAngle(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setFoldState:
{
boolean _arg0;
_arg0 = data.readBoolean();
data.enforceNoDataAvail();
this.setFoldState(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_getSupportedModes:
{
byte[] _result = this.getSupportedModes();
reply.writeNoException();
reply.writeByteArray(_result);
break;
}
case TRANSACTION_registerHeadTrackingCallback:
{
android.media.ISpatializerHeadTrackingCallback _arg0;
_arg0 = android.media.ISpatializerHeadTrackingCallback.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.registerHeadTrackingCallback(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_setParameter:
{
int _arg0;
_arg0 = data.readInt();
byte[] _arg1;
_arg1 = data.createByteArray();
data.enforceNoDataAvail();
this.setParameter(_arg0, _arg1);
reply.writeNoException();
break;
}
case TRANSACTION_getParameter:
{
int _arg0;
_arg0 = data.readInt();
byte[] _arg1;
_arg1 = data.createByteArray();
data.enforceNoDataAvail();
this.getParameter(_arg0, _arg1);
reply.writeNoException();
reply.writeByteArray(_arg1);
break;
}
case TRANSACTION_getOutput:
{
int _result = this.getOutput();
reply.writeNoException();
reply.writeInt(_result);
break;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
return true;
}
private static class Proxy implements android.media.ISpatializer
{
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;
}
/** Releases a ISpatializer interface previously acquired. */
@Override public void release() 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);
boolean _status = mRemote.transact(Stub.TRANSACTION_release, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Reports the list of supported spatialization levels.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
@Override public byte[] getSupportedLevels() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
byte[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getSupportedLevels, _data, _reply, 0);
_reply.readException();
_result = _reply.createByteArray();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Selects the desired spatialization level. Selecting a level
* different from Spatializer.Level.NONE with create the specialized multichannel output
* mixer, create and enable the spatializer effect and let the audio policy attach eligible
* AudioTrack to this output stream.
*/
@Override public void setLevel(byte level) 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.writeByte(level);
boolean _status = mRemote.transact(Stub.TRANSACTION_setLevel, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/** Gets the selected spatialization level. */
@Override public byte getLevel() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
byte _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getLevel, _data, _reply, 0);
_reply.readException();
_result = _reply.readByte();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Reports if the spatializer engine supports head tracking or not.
* This is a pre condition independent of the fact that a head tracking sensor is
* registered or not.
*/
@Override public boolean isHeadTrackingSupported() 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_isHeadTrackingSupported, _data, _reply, 0);
_reply.readException();
_result = _reply.readBoolean();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Reports the list of supported head tracking modes.
* The list always contains SpatializerHeadTrackingMode.DISABLED and can include other modes
* if the spatializer effect implementation supports head tracking.
* The result does not depend on currently connected sensors but reflects the capabilities
* when sensors are available.
*/
@Override public byte[] getSupportedHeadTrackingModes() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
byte[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getSupportedHeadTrackingModes, _data, _reply, 0);
_reply.readException();
_result = _reply.createByteArray();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/** Selects the desired head tracking mode. */
@Override public void setDesiredHeadTrackingMode(byte mode) 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.writeByte(mode);
boolean _status = mRemote.transact(Stub.TRANSACTION_setDesiredHeadTrackingMode, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Gets the actual head tracking mode. Can be different from the desired mode if conditions to
* enable the desired mode are not met (e.g if the head tracking device was removed)
*/
@Override public byte getActualHeadTrackingMode() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
byte _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getActualHeadTrackingMode, _data, _reply, 0);
_reply.readException();
_result = _reply.readByte();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/** Reset the head tracking algorithm to consider current head pose as neutral */
@Override public void recenterHeadTracker() 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);
boolean _status = mRemote.transact(Stub.TRANSACTION_recenterHeadTracker, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Set the screen to stage transform to use by the head tracking algorithm
* The screen to stage transform is conveyed as a vector of 6 elements,
* where the first three are a translation vector and
* the last three are a rotation vector.
*/
@Override public void setGlobalTransform(float[] screenToStage) 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.writeFloatArray(screenToStage);
boolean _status = mRemote.transact(Stub.TRANSACTION_setGlobalTransform, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Set the sensor that is to be used for head-tracking.
* -1 can be used to disable head-tracking.
*/
@Override public void setHeadSensor(int sensorHandle) 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(sensorHandle);
boolean _status = mRemote.transact(Stub.TRANSACTION_setHeadSensor, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Set the sensor that is to be used for screen-tracking.
* -1 can be used to disable screen-tracking.
*/
@Override public void setScreenSensor(int sensorHandle) 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(sensorHandle);
boolean _status = mRemote.transact(Stub.TRANSACTION_setScreenSensor, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Sets the display orientation.
*
* This is the rotation of the displayed content relative to its natural orientation.
*
* Orientation is expressed in the angle of rotation from the physical "up" side of the screen
* to the logical "up" side of the content displayed the screen. Counterclockwise angles, as
* viewed while facing the screen are positive.
*
* Note: DisplayManager currently only returns this in increments of 90 degrees,
* so the values will be 0, PI/2, PI, 3PI/2.
*/
@Override public void setDisplayOrientation(float physicalToLogicalAngle) 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.writeFloat(physicalToLogicalAngle);
boolean _status = mRemote.transact(Stub.TRANSACTION_setDisplayOrientation, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Sets the hinge angle for foldable devices.
*
* Per the hinge angle sensor, this returns a value from 0 to 2PI.
* The value of 0 is considered closed, and PI is considered flat open.
*/
@Override public void setHingeAngle(float hingeAngle) 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.writeFloat(hingeAngle);
boolean _status = mRemote.transact(Stub.TRANSACTION_setHingeAngle, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Sets whether a foldable is considered "folded" or not.
*
* The fold state may affect which physical screen is active for display.
*/
@Override public void setFoldState(boolean folded) 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(folded);
boolean _status = mRemote.transact(Stub.TRANSACTION_setFoldState, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Reports the list of supported spatialization modess.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
@Override public byte[] getSupportedModes() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
byte[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getSupportedModes, _data, _reply, 0);
_reply.readException();
_result = _reply.createByteArray();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Registers a callback to monitor head tracking functions.
* Only one callback can be registered on a Spatializer.
* The last callback registered wins and passing a nullptr unregisters
* last registered callback.
*/
@Override public void registerHeadTrackingCallback(android.media.ISpatializerHeadTrackingCallback callback) 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(callback);
boolean _status = mRemote.transact(Stub.TRANSACTION_registerHeadTrackingCallback, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Sets a parameter to the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
@Override public void setParameter(int key, byte[] value) 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(key);
_data.writeByteArray(value);
boolean _status = mRemote.transact(Stub.TRANSACTION_setParameter, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Gets a parameter from the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
@Override public void getParameter(int key, byte[] value) 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(key);
_data.writeByteArray(value);
boolean _status = mRemote.transact(Stub.TRANSACTION_getParameter, _data, _reply, 0);
_reply.readException();
_reply.readByteArray(value);
}
finally {
_reply.recycle();
_data.recycle();
}
}
/** Gets the io handle of the output stream the spatializer is connected to. */
@Override public int getOutput() 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_getOutput, _data, _reply, 0);
_reply.readException();
_result = _reply.readInt();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
}
static final int TRANSACTION_release = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_getSupportedLevels = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_setLevel = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
static final int TRANSACTION_getLevel = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);
static final int TRANSACTION_isHeadTrackingSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4);
static final int TRANSACTION_getSupportedHeadTrackingModes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5);
static final int TRANSACTION_setDesiredHeadTrackingMode = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6);
static final int TRANSACTION_getActualHeadTrackingMode = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
static final int TRANSACTION_recenterHeadTracker = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8);
static final int TRANSACTION_setGlobalTransform = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);
static final int TRANSACTION_setHeadSensor = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10);
static final int TRANSACTION_setScreenSensor = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11);
static final int TRANSACTION_setDisplayOrientation = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12);
static final int TRANSACTION_setHingeAngle = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13);
static final int TRANSACTION_setFoldState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14);
static final int TRANSACTION_getSupportedModes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 15);
static final int TRANSACTION_registerHeadTrackingCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16);
static final int TRANSACTION_setParameter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 17);
static final int TRANSACTION_getParameter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 18);
static final int TRANSACTION_getOutput = (android.os.IBinder.FIRST_CALL_TRANSACTION + 19);
}
/** @hide */
public static final java.lang.String DESCRIPTOR = "android.media.ISpatializer";
/** Releases a ISpatializer interface previously acquired. */
public void release() throws android.os.RemoteException;
/**
* Reports the list of supported spatialization levels.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
public byte[] getSupportedLevels() throws android.os.RemoteException;
/**
* Selects the desired spatialization level. Selecting a level
* different from Spatializer.Level.NONE with create the specialized multichannel output
* mixer, create and enable the spatializer effect and let the audio policy attach eligible
* AudioTrack to this output stream.
*/
public void setLevel(byte level) throws android.os.RemoteException;
/** Gets the selected spatialization level. */
public byte getLevel() throws android.os.RemoteException;
/**
* Reports if the spatializer engine supports head tracking or not.
* This is a pre condition independent of the fact that a head tracking sensor is
* registered or not.
*/
public boolean isHeadTrackingSupported() throws android.os.RemoteException;
/**
* Reports the list of supported head tracking modes.
* The list always contains SpatializerHeadTrackingMode.DISABLED and can include other modes
* if the spatializer effect implementation supports head tracking.
* The result does not depend on currently connected sensors but reflects the capabilities
* when sensors are available.
*/
public byte[] getSupportedHeadTrackingModes() throws android.os.RemoteException;
/** Selects the desired head tracking mode. */
public void setDesiredHeadTrackingMode(byte mode) throws android.os.RemoteException;
/**
* Gets the actual head tracking mode. Can be different from the desired mode if conditions to
* enable the desired mode are not met (e.g if the head tracking device was removed)
*/
public byte getActualHeadTrackingMode() throws android.os.RemoteException;
/** Reset the head tracking algorithm to consider current head pose as neutral */
public void recenterHeadTracker() throws android.os.RemoteException;
/**
* Set the screen to stage transform to use by the head tracking algorithm
* The screen to stage transform is conveyed as a vector of 6 elements,
* where the first three are a translation vector and
* the last three are a rotation vector.
*/
public void setGlobalTransform(float[] screenToStage) throws android.os.RemoteException;
/**
* Set the sensor that is to be used for head-tracking.
* -1 can be used to disable head-tracking.
*/
public void setHeadSensor(int sensorHandle) throws android.os.RemoteException;
/**
* Set the sensor that is to be used for screen-tracking.
* -1 can be used to disable screen-tracking.
*/
public void setScreenSensor(int sensorHandle) throws android.os.RemoteException;
/**
* Sets the display orientation.
*
* This is the rotation of the displayed content relative to its natural orientation.
*
* Orientation is expressed in the angle of rotation from the physical "up" side of the screen
* to the logical "up" side of the content displayed the screen. Counterclockwise angles, as
* viewed while facing the screen are positive.
*
* Note: DisplayManager currently only returns this in increments of 90 degrees,
* so the values will be 0, PI/2, PI, 3PI/2.
*/
public void setDisplayOrientation(float physicalToLogicalAngle) throws android.os.RemoteException;
/**
* Sets the hinge angle for foldable devices.
*
* Per the hinge angle sensor, this returns a value from 0 to 2PI.
* The value of 0 is considered closed, and PI is considered flat open.
*/
public void setHingeAngle(float hingeAngle) throws android.os.RemoteException;
/**
* Sets whether a foldable is considered "folded" or not.
*
* The fold state may affect which physical screen is active for display.
*/
public void setFoldState(boolean folded) throws android.os.RemoteException;
/**
* Reports the list of supported spatialization modess.
* The list should never be empty if an ISpatializer interface was successfully
* retrieved with IAudioPolicyService.getSpatializer().
*/
public byte[] getSupportedModes() throws android.os.RemoteException;
/**
* Registers a callback to monitor head tracking functions.
* Only one callback can be registered on a Spatializer.
* The last callback registered wins and passing a nullptr unregisters
* last registered callback.
*/
public void registerHeadTrackingCallback(android.media.ISpatializerHeadTrackingCallback callback) throws android.os.RemoteException;
/**
* Sets a parameter to the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
public void setParameter(int key, byte[] value) throws android.os.RemoteException;
/**
* Gets a parameter from the spatializer engine. Used by effect implementor for vendor
* specific configuration.
*/
public void getParameter(int key, byte[] value) throws android.os.RemoteException;
/** Gets the io handle of the output stream the spatializer is connected to. */
public int getOutput() throws android.os.RemoteException;
}