blob: d66434ac985f01354813c69969b8119325ca6468 [file] [log] [blame]
/*
* This file is auto-generated. DO NOT MODIFY.
*/
package android.media.soundtrigger_middleware;
/**
* Main entry point into this module.
*
* Allows the client to enumerate the available soundtrigger devices and their capabilities, then
* attach to either one of them in order to use it.
*
* {@hide}
*/
public interface ISoundTriggerMiddlewareService extends android.os.IInterface
{
/** Default implementation for ISoundTriggerMiddlewareService. */
public static class Default implements android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService
{
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*/
@Override public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsOriginator(android.media.permission.Identity identity) throws android.os.RemoteException
{
return null;
}
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
*/
@Override public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsMiddleman(android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity) throws android.os.RemoteException
{
return null;
}
/**
* Attach to one of the available modules.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
@Override public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsOriginator(int handle, android.media.permission.Identity identity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback) throws android.os.RemoteException
{
return null;
}
/**
* Attach to one of the available modules.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
* @param isTrusted - {@code true} if the middleware should not audit data delivery, since the
* callback is being delivered to another trusted component which will audit access.
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
@Override public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsMiddleman(int handle, android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback, boolean isTrusted) throws android.os.RemoteException
{
return null;
}
/**
* Attach an injection interface interface to the ST mock HAL.
* See {@link ISoundTriggerInjection} for injection details.
* If another client attaches, this session will be pre-empted.
*/
@Override public void attachFakeHalInjection(android.media.soundtrigger_middleware.ISoundTriggerInjection injection) 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.soundtrigger_middleware.ISoundTriggerMiddlewareService
{
/** Construct the stub at attach it to the interface. */
public Stub()
{
this.attachInterface(this, DESCRIPTOR);
}
/**
* Cast an IBinder object into an android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService interface,
* generating a proxy if needed.
*/
public static android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin!=null)&&(iin instanceof android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService))) {
return ((android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService)iin);
}
return new android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService.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);
}
switch (code)
{
case INTERFACE_TRANSACTION:
{
reply.writeString(descriptor);
return true;
}
}
switch (code)
{
case TRANSACTION_listModulesAsOriginator:
{
android.media.permission.Identity _arg0;
_arg0 = data.readTypedObject(android.media.permission.Identity.CREATOR);
data.enforceNoDataAvail();
android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] _result = this.listModulesAsOriginator(_arg0);
reply.writeNoException();
reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
break;
}
case TRANSACTION_listModulesAsMiddleman:
{
android.media.permission.Identity _arg0;
_arg0 = data.readTypedObject(android.media.permission.Identity.CREATOR);
android.media.permission.Identity _arg1;
_arg1 = data.readTypedObject(android.media.permission.Identity.CREATOR);
data.enforceNoDataAvail();
android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] _result = this.listModulesAsMiddleman(_arg0, _arg1);
reply.writeNoException();
reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
break;
}
case TRANSACTION_attachAsOriginator:
{
int _arg0;
_arg0 = data.readInt();
android.media.permission.Identity _arg1;
_arg1 = data.readTypedObject(android.media.permission.Identity.CREATOR);
android.media.soundtrigger_middleware.ISoundTriggerCallback _arg2;
_arg2 = android.media.soundtrigger_middleware.ISoundTriggerCallback.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
android.media.soundtrigger_middleware.ISoundTriggerModule _result = this.attachAsOriginator(_arg0, _arg1, _arg2);
reply.writeNoException();
reply.writeStrongInterface(_result);
break;
}
case TRANSACTION_attachAsMiddleman:
{
int _arg0;
_arg0 = data.readInt();
android.media.permission.Identity _arg1;
_arg1 = data.readTypedObject(android.media.permission.Identity.CREATOR);
android.media.permission.Identity _arg2;
_arg2 = data.readTypedObject(android.media.permission.Identity.CREATOR);
android.media.soundtrigger_middleware.ISoundTriggerCallback _arg3;
_arg3 = android.media.soundtrigger_middleware.ISoundTriggerCallback.Stub.asInterface(data.readStrongBinder());
boolean _arg4;
_arg4 = data.readBoolean();
data.enforceNoDataAvail();
android.media.soundtrigger_middleware.ISoundTriggerModule _result = this.attachAsMiddleman(_arg0, _arg1, _arg2, _arg3, _arg4);
reply.writeNoException();
reply.writeStrongInterface(_result);
break;
}
case TRANSACTION_attachFakeHalInjection:
{
android.media.soundtrigger_middleware.ISoundTriggerInjection _arg0;
_arg0 = android.media.soundtrigger_middleware.ISoundTriggerInjection.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.attachFakeHalInjection(_arg0);
reply.writeNoException();
break;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
return true;
}
private static class Proxy implements android.media.soundtrigger_middleware.ISoundTriggerMiddlewareService
{
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;
}
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*/
@Override public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsOriginator(android.media.permission.Identity identity) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeTypedObject(identity, 0);
boolean _status = mRemote.transact(Stub.TRANSACTION_listModulesAsOriginator, _data, _reply, 0);
_reply.readException();
_result = _reply.createTypedArray(android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor.CREATOR);
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
*/
@Override public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsMiddleman(android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeTypedObject(middlemanIdentity, 0);
_data.writeTypedObject(originatorIdentity, 0);
boolean _status = mRemote.transact(Stub.TRANSACTION_listModulesAsMiddleman, _data, _reply, 0);
_reply.readException();
_result = _reply.createTypedArray(android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor.CREATOR);
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Attach to one of the available modules.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
@Override public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsOriginator(int handle, android.media.permission.Identity identity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
android.media.soundtrigger_middleware.ISoundTriggerModule _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(handle);
_data.writeTypedObject(identity, 0);
_data.writeStrongInterface(callback);
boolean _status = mRemote.transact(Stub.TRANSACTION_attachAsOriginator, _data, _reply, 0);
_reply.readException();
_result = android.media.soundtrigger_middleware.ISoundTriggerModule.Stub.asInterface(_reply.readStrongBinder());
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Attach to one of the available modules.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
* @param isTrusted - {@code true} if the middleware should not audit data delivery, since the
* callback is being delivered to another trusted component which will audit access.
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
@Override public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsMiddleman(int handle, android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback, boolean isTrusted) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
android.media.soundtrigger_middleware.ISoundTriggerModule _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(handle);
_data.writeTypedObject(middlemanIdentity, 0);
_data.writeTypedObject(originatorIdentity, 0);
_data.writeStrongInterface(callback);
_data.writeBoolean(isTrusted);
boolean _status = mRemote.transact(Stub.TRANSACTION_attachAsMiddleman, _data, _reply, 0);
_reply.readException();
_result = android.media.soundtrigger_middleware.ISoundTriggerModule.Stub.asInterface(_reply.readStrongBinder());
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
/**
* Attach an injection interface interface to the ST mock HAL.
* See {@link ISoundTriggerInjection} for injection details.
* If another client attaches, this session will be pre-empted.
*/
@Override public void attachFakeHalInjection(android.media.soundtrigger_middleware.ISoundTriggerInjection injection) 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(injection);
boolean _status = mRemote.transact(Stub.TRANSACTION_attachFakeHalInjection, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
}
static final int TRANSACTION_listModulesAsOriginator = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_listModulesAsMiddleman = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_attachAsOriginator = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
static final int TRANSACTION_attachAsMiddleman = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);
static final int TRANSACTION_attachFakeHalInjection = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4);
}
public static final java.lang.String DESCRIPTOR = "android$media$soundtrigger_middleware$ISoundTriggerMiddlewareService".replace('$', '.');
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*/
public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsOriginator(android.media.permission.Identity identity) throws android.os.RemoteException;
/**
* Query the available modules and their capabilities.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
*/
public android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor[] listModulesAsMiddleman(android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity) throws android.os.RemoteException;
/**
* Attach to one of the available modules.
*
* This variant is intended for use by the originator of the operations for permission
* enforcement purposes. The provided identity's uid/pid fields will be ignored and overridden
* by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
*
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsOriginator(int handle, android.media.permission.Identity identity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback) throws android.os.RemoteException;
/**
* Attach to one of the available modules.
*
* This variant is intended for use by a trusted "middleman", acting on behalf of some identity
* other than itself. The caller must provide:
* - Its own identity, which will be used to establish trust via the
* SOUNDTRIGGER_DELEGATE_IDENTITY permission. This identity's uid/pid fields will be ignored
* and overridden by the ones provided by Binder.getCallingUid() / Binder.getCallingPid().
* This implies that the caller must clear its caller identity to protect from the case where
* it resides in the same process as the callee.
* - The identity of the entity on behalf of which module operations are to be performed.
* @param isTrusted - {@code true} if the middleware should not audit data delivery, since the
* callback is being delivered to another trusted component which will audit access.
* listModules() must be called prior to calling this method and the provided handle must be
* one of the handles from the returned list.
*/
public android.media.soundtrigger_middleware.ISoundTriggerModule attachAsMiddleman(int handle, android.media.permission.Identity middlemanIdentity, android.media.permission.Identity originatorIdentity, android.media.soundtrigger_middleware.ISoundTriggerCallback callback, boolean isTrusted) throws android.os.RemoteException;
/**
* Attach an injection interface interface to the ST mock HAL.
* See {@link ISoundTriggerInjection} for injection details.
* If another client attaches, this session will be pre-empted.
*/
public void attachFakeHalInjection(android.media.soundtrigger_middleware.ISoundTriggerInjection injection) throws android.os.RemoteException;
}