blob: a19184a8f88c9946b0e6b38e4e1287a83ccf2b0b [file] [log] [blame]
/*
* This file is auto-generated. DO NOT MODIFY.
*/
package android.media.soundtrigger_middleware;
/**
* An injection interface for {@link android.media.soundtrigger_middleware.FakeSoundTriggerHal}.
* To avoid deadlocks, all calls to this interface and the sub-interface it creates are oneway.
* Calls are identified as stale via "Session" parameters.
* The client implements this interface and registers it with
* {@link ISoundTriggerMiddlewareService#attachMockHalInjection(ISoundTriggerInjection)}.
* Then, the client will receive callbacks which observe mock HAL events.
* There are two types of calls.
* 1) Those that provide a new injection sub-interface (contains param .*Injection).
* 2) Those that are sessioned via an injection sub-interface (contains param .*Session).
* The new injection sub-interfaces generated by (1) can be used to trigger HAL events.
* Some calls within (2) will invalidate the session object which they are associated with
* (e.g. {@link soundModelUnloaded}), and will be noted as such.
* Some calls within the injection interface (e.g. {@link IInjectModelEvent#triggerUnloadModel()})
* will invalidate the session object they are called upon, and will be noted as such.
* @hide
*/
public interface ISoundTriggerInjection extends android.os.IInterface
{
/** Default implementation for ISoundTriggerInjection. */
public static class Default implements android.media.soundtrigger_middleware.ISoundTriggerInjection
{
/**
* Called following attachment via
* {@link ISoundTriggerMiddlewareService#attachMockHalInjection(ISoundTriggerInjection)}.
* Provides the client an injection interface for events which are always (globally) valid.
* @param globalInjection - Interface used to inject global events to the fake HAL.
* Used as a session object for further callbacks associated with the HAL globally.
*/
@Override public void registerGlobalEventInjection(android.media.soundtrigger_middleware.IInjectGlobalEvent globalInjection) throws android.os.RemoteException
{
}
/**
* Called when the HAL has been restarted by the framework. Not called after a
* {@link IInjectGlobalEvent#triggerRestart()}.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this restart is associated with.
* Used to disambiguate stale restart events from a subsequent global session.
*/
@Override public void onRestarted(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
}
/**
* Called when the HAL has been detached by the framework.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this detach is associated with.
* Used to disambiguate stale detach events from a subsequent global session.
*/
@Override public void onFrameworkDetached(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
}
/**
* Called when a client is attached to the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - An opaque token representing the framework client session.
* Associated with a subsequent call to {@link onClientDetached(IBinder)}.
* @param globalSession - The global STHAL session this attach is associated with.
*/
@Override public void onClientAttached(android.os.IBinder token, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
}
/**
* Called when a client detaches from the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - The opaque token returned by a previous
* {@link onClientAttached(IBinder, IInjectGlobalEvent} call.
*/
@Override public void onClientDetached(android.os.IBinder token) throws android.os.RemoteException
{
}
/**
* Called when a sound model is loaded into the fake STHAL by the framework.
* @param model - The model data for the newly loaded model.
* @param phrases - The phrase data for the newly loaded model, if it is a keyphrase model.
* Null otherwise.
* @param modelInjection - Interface used to inject events associated with the newly loaded
* model into the fake STHAL.
* Used as a session object for further callbacks associated with this newly loaded model.
* @param globalSession - The session object representing the global STHAL instance this load
* is associated with.
*/
@Override public void onSoundModelLoaded(android.media.soundtrigger.SoundModel model, android.media.soundtrigger.Phrase[] phrases, android.media.soundtrigger_middleware.IInjectModelEvent modelInjection, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
}
/**
* Called when the fake STHAL receives a set parameter call from the framework on a previously
* loaded model.
* @param modelParam - Code of the parameter being set, see
* {@link android.media.soundtrigger.ModelParameter}
* @param value - Value to set the modelParam to
* @param modelSession - Session object of the loaded model the set param call is associated
* with.
*/
@Override public void onParamSet(int modelParam, int value, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
}
/**
* Called when a previously loaded model in the fake STHAL has recognition started by the
* framework.
* @param audioSessionToken - The audio session token passed by the framework which will be
* contained within a received recognition event.
* @param config - The recognition config passed by the framework for this recognition.
* @param recognitionInjection - A new injection interface which allows the client to
* trigger events associated with this newly started recognition.
* @param modelSession - The session object representing the loaded model that this
* recognition is associated with.
*/
@Override public void onRecognitionStarted(int audioSessionToken, android.media.soundtrigger.RecognitionConfig config, android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionInjection, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
}
/**
* Called when a previously started recognition in the fake STHAL is stopped by the framework.
* Not called following any calls on {@link IInjectRecognitionEvent}.
* @param recognitionSession - The session object received via a previous call to
* {@link recognitionStarted(int, RecognitionConfig, IInjectModelEvent,
* IInjectRecognitionEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
@Override public void onRecognitionStopped(android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionSession) throws android.os.RemoteException
{
}
/**
* Called when a previously loaded model in the fake STHAL is unloaded by the framework.
* Not called following {@link IInjectModelEvent#triggerUnloadModel()}.
* @param modelSession - The session object received via a previous call to
* {@link soundModelLoaded(SoundModel, Phrase[], IInjectModelEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
@Override public void onSoundModelUnloaded(android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
}
/**
* Called when this injection interface has been preempted by a subsequent call to
* {@link ISoundTriggerMiddleware#attachFakeHal(ISoundTriggerInjection)}.
* No more events will be delivered, and any further injection will be ignored.
*/
@Override public void onPreempted() 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.ISoundTriggerInjection
{
/** 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.ISoundTriggerInjection interface,
* generating a proxy if needed.
*/
public static android.media.soundtrigger_middleware.ISoundTriggerInjection 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.ISoundTriggerInjection))) {
return ((android.media.soundtrigger_middleware.ISoundTriggerInjection)iin);
}
return new android.media.soundtrigger_middleware.ISoundTriggerInjection.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_registerGlobalEventInjection:
{
android.media.soundtrigger_middleware.IInjectGlobalEvent _arg0;
_arg0 = android.media.soundtrigger_middleware.IInjectGlobalEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.registerGlobalEventInjection(_arg0);
break;
}
case TRANSACTION_onRestarted:
{
android.media.soundtrigger_middleware.IInjectGlobalEvent _arg0;
_arg0 = android.media.soundtrigger_middleware.IInjectGlobalEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onRestarted(_arg0);
break;
}
case TRANSACTION_onFrameworkDetached:
{
android.media.soundtrigger_middleware.IInjectGlobalEvent _arg0;
_arg0 = android.media.soundtrigger_middleware.IInjectGlobalEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onFrameworkDetached(_arg0);
break;
}
case TRANSACTION_onClientAttached:
{
android.os.IBinder _arg0;
_arg0 = data.readStrongBinder();
android.media.soundtrigger_middleware.IInjectGlobalEvent _arg1;
_arg1 = android.media.soundtrigger_middleware.IInjectGlobalEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onClientAttached(_arg0, _arg1);
break;
}
case TRANSACTION_onClientDetached:
{
android.os.IBinder _arg0;
_arg0 = data.readStrongBinder();
data.enforceNoDataAvail();
this.onClientDetached(_arg0);
break;
}
case TRANSACTION_onSoundModelLoaded:
{
android.media.soundtrigger.SoundModel _arg0;
_arg0 = data.readTypedObject(android.media.soundtrigger.SoundModel.CREATOR);
android.media.soundtrigger.Phrase[] _arg1;
_arg1 = data.createTypedArray(android.media.soundtrigger.Phrase.CREATOR);
android.media.soundtrigger_middleware.IInjectModelEvent _arg2;
_arg2 = android.media.soundtrigger_middleware.IInjectModelEvent.Stub.asInterface(data.readStrongBinder());
android.media.soundtrigger_middleware.IInjectGlobalEvent _arg3;
_arg3 = android.media.soundtrigger_middleware.IInjectGlobalEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onSoundModelLoaded(_arg0, _arg1, _arg2, _arg3);
break;
}
case TRANSACTION_onParamSet:
{
int _arg0;
_arg0 = data.readInt();
int _arg1;
_arg1 = data.readInt();
android.media.soundtrigger_middleware.IInjectModelEvent _arg2;
_arg2 = android.media.soundtrigger_middleware.IInjectModelEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onParamSet(_arg0, _arg1, _arg2);
break;
}
case TRANSACTION_onRecognitionStarted:
{
int _arg0;
_arg0 = data.readInt();
android.media.soundtrigger.RecognitionConfig _arg1;
_arg1 = data.readTypedObject(android.media.soundtrigger.RecognitionConfig.CREATOR);
android.media.soundtrigger_middleware.IInjectRecognitionEvent _arg2;
_arg2 = android.media.soundtrigger_middleware.IInjectRecognitionEvent.Stub.asInterface(data.readStrongBinder());
android.media.soundtrigger_middleware.IInjectModelEvent _arg3;
_arg3 = android.media.soundtrigger_middleware.IInjectModelEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onRecognitionStarted(_arg0, _arg1, _arg2, _arg3);
break;
}
case TRANSACTION_onRecognitionStopped:
{
android.media.soundtrigger_middleware.IInjectRecognitionEvent _arg0;
_arg0 = android.media.soundtrigger_middleware.IInjectRecognitionEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onRecognitionStopped(_arg0);
break;
}
case TRANSACTION_onSoundModelUnloaded:
{
android.media.soundtrigger_middleware.IInjectModelEvent _arg0;
_arg0 = android.media.soundtrigger_middleware.IInjectModelEvent.Stub.asInterface(data.readStrongBinder());
data.enforceNoDataAvail();
this.onSoundModelUnloaded(_arg0);
break;
}
case TRANSACTION_onPreempted:
{
this.onPreempted();
break;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
return true;
}
private static class Proxy implements android.media.soundtrigger_middleware.ISoundTriggerInjection
{
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;
}
/**
* Called following attachment via
* {@link ISoundTriggerMiddlewareService#attachMockHalInjection(ISoundTriggerInjection)}.
* Provides the client an injection interface for events which are always (globally) valid.
* @param globalInjection - Interface used to inject global events to the fake HAL.
* Used as a session object for further callbacks associated with the HAL globally.
*/
@Override public void registerGlobalEventInjection(android.media.soundtrigger_middleware.IInjectGlobalEvent globalInjection) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongInterface(globalInjection);
boolean _status = mRemote.transact(Stub.TRANSACTION_registerGlobalEventInjection, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when the HAL has been restarted by the framework. Not called after a
* {@link IInjectGlobalEvent#triggerRestart()}.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this restart is associated with.
* Used to disambiguate stale restart events from a subsequent global session.
*/
@Override public void onRestarted(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongInterface(globalSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onRestarted, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when the HAL has been detached by the framework.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this detach is associated with.
* Used to disambiguate stale detach events from a subsequent global session.
*/
@Override public void onFrameworkDetached(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongInterface(globalSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onFrameworkDetached, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a client is attached to the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - An opaque token representing the framework client session.
* Associated with a subsequent call to {@link onClientDetached(IBinder)}.
* @param globalSession - The global STHAL session this attach is associated with.
*/
@Override public void onClientAttached(android.os.IBinder token, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongBinder(token);
_data.writeStrongInterface(globalSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onClientAttached, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a client detaches from the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - The opaque token returned by a previous
* {@link onClientAttached(IBinder, IInjectGlobalEvent} call.
*/
@Override public void onClientDetached(android.os.IBinder token) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongBinder(token);
boolean _status = mRemote.transact(Stub.TRANSACTION_onClientDetached, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a sound model is loaded into the fake STHAL by the framework.
* @param model - The model data for the newly loaded model.
* @param phrases - The phrase data for the newly loaded model, if it is a keyphrase model.
* Null otherwise.
* @param modelInjection - Interface used to inject events associated with the newly loaded
* model into the fake STHAL.
* Used as a session object for further callbacks associated with this newly loaded model.
* @param globalSession - The session object representing the global STHAL instance this load
* is associated with.
*/
@Override public void onSoundModelLoaded(android.media.soundtrigger.SoundModel model, android.media.soundtrigger.Phrase[] phrases, android.media.soundtrigger_middleware.IInjectModelEvent modelInjection, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeTypedObject(model, 0);
_data.writeTypedArray(phrases, 0);
_data.writeStrongInterface(modelInjection);
_data.writeStrongInterface(globalSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onSoundModelLoaded, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when the fake STHAL receives a set parameter call from the framework on a previously
* loaded model.
* @param modelParam - Code of the parameter being set, see
* {@link android.media.soundtrigger.ModelParameter}
* @param value - Value to set the modelParam to
* @param modelSession - Session object of the loaded model the set param call is associated
* with.
*/
@Override public void onParamSet(int modelParam, int value, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(modelParam);
_data.writeInt(value);
_data.writeStrongInterface(modelSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onParamSet, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a previously loaded model in the fake STHAL has recognition started by the
* framework.
* @param audioSessionToken - The audio session token passed by the framework which will be
* contained within a received recognition event.
* @param config - The recognition config passed by the framework for this recognition.
* @param recognitionInjection - A new injection interface which allows the client to
* trigger events associated with this newly started recognition.
* @param modelSession - The session object representing the loaded model that this
* recognition is associated with.
*/
@Override public void onRecognitionStarted(int audioSessionToken, android.media.soundtrigger.RecognitionConfig config, android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionInjection, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(audioSessionToken);
_data.writeTypedObject(config, 0);
_data.writeStrongInterface(recognitionInjection);
_data.writeStrongInterface(modelSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onRecognitionStarted, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a previously started recognition in the fake STHAL is stopped by the framework.
* Not called following any calls on {@link IInjectRecognitionEvent}.
* @param recognitionSession - The session object received via a previous call to
* {@link recognitionStarted(int, RecognitionConfig, IInjectModelEvent,
* IInjectRecognitionEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
@Override public void onRecognitionStopped(android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongInterface(recognitionSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onRecognitionStopped, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when a previously loaded model in the fake STHAL is unloaded by the framework.
* Not called following {@link IInjectModelEvent#triggerUnloadModel()}.
* @param modelSession - The session object received via a previous call to
* {@link soundModelLoaded(SoundModel, Phrase[], IInjectModelEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
@Override public void onSoundModelUnloaded(android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeStrongInterface(modelSession);
boolean _status = mRemote.transact(Stub.TRANSACTION_onSoundModelUnloaded, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
/**
* Called when this injection interface has been preempted by a subsequent call to
* {@link ISoundTriggerMiddleware#attachFakeHal(ISoundTriggerInjection)}.
* No more events will be delivered, and any further injection will be ignored.
*/
@Override public void onPreempted() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onPreempted, _data, null, android.os.IBinder.FLAG_ONEWAY);
}
finally {
_data.recycle();
}
}
}
static final int TRANSACTION_registerGlobalEventInjection = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_onRestarted = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_onFrameworkDetached = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
static final int TRANSACTION_onClientAttached = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);
static final int TRANSACTION_onClientDetached = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4);
static final int TRANSACTION_onSoundModelLoaded = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5);
static final int TRANSACTION_onParamSet = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6);
static final int TRANSACTION_onRecognitionStarted = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
static final int TRANSACTION_onRecognitionStopped = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8);
static final int TRANSACTION_onSoundModelUnloaded = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);
static final int TRANSACTION_onPreempted = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10);
}
public static final java.lang.String DESCRIPTOR = "android$media$soundtrigger_middleware$ISoundTriggerInjection".replace('$', '.');
/**
* Value of {@link android.media.soundtrigger.Properties#supportedModelArch} that
* identifies the HAL as a fake HAL.
*/
public static final String FAKE_HAL_ARCH = "injection";
/**
* Called following attachment via
* {@link ISoundTriggerMiddlewareService#attachMockHalInjection(ISoundTriggerInjection)}.
* Provides the client an injection interface for events which are always (globally) valid.
* @param globalInjection - Interface used to inject global events to the fake HAL.
* Used as a session object for further callbacks associated with the HAL globally.
*/
public void registerGlobalEventInjection(android.media.soundtrigger_middleware.IInjectGlobalEvent globalInjection) throws android.os.RemoteException;
/**
* Called when the HAL has been restarted by the framework. Not called after a
* {@link IInjectGlobalEvent#triggerRestart()}.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this restart is associated with.
* Used to disambiguate stale restart events from a subsequent global session.
*/
public void onRestarted(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException;
/**
* Called when the HAL has been detached by the framework.
* @param globalSession - The interface previously provided by a
* {@link registerGlobalEventInjection} call which this detach is associated with.
* Used to disambiguate stale detach events from a subsequent global session.
*/
public void onFrameworkDetached(android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException;
/**
* Called when a client is attached to the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - An opaque token representing the framework client session.
* Associated with a subsequent call to {@link onClientDetached(IBinder)}.
* @param globalSession - The global STHAL session this attach is associated with.
*/
public void onClientAttached(android.os.IBinder token, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException;
/**
* Called when a client detaches from the framework. This event is not actually
* delivered to the HAL, but is useful to understand the framework state.
* @param token - The opaque token returned by a previous
* {@link onClientAttached(IBinder, IInjectGlobalEvent} call.
*/
public void onClientDetached(android.os.IBinder token) throws android.os.RemoteException;
/**
* Called when a sound model is loaded into the fake STHAL by the framework.
* @param model - The model data for the newly loaded model.
* @param phrases - The phrase data for the newly loaded model, if it is a keyphrase model.
* Null otherwise.
* @param modelInjection - Interface used to inject events associated with the newly loaded
* model into the fake STHAL.
* Used as a session object for further callbacks associated with this newly loaded model.
* @param globalSession - The session object representing the global STHAL instance this load
* is associated with.
*/
public void onSoundModelLoaded(android.media.soundtrigger.SoundModel model, android.media.soundtrigger.Phrase[] phrases, android.media.soundtrigger_middleware.IInjectModelEvent modelInjection, android.media.soundtrigger_middleware.IInjectGlobalEvent globalSession) throws android.os.RemoteException;
/**
* Called when the fake STHAL receives a set parameter call from the framework on a previously
* loaded model.
* @param modelParam - Code of the parameter being set, see
* {@link android.media.soundtrigger.ModelParameter}
* @param value - Value to set the modelParam to
* @param modelSession - Session object of the loaded model the set param call is associated
* with.
*/
public void onParamSet(int modelParam, int value, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException;
/**
* Called when a previously loaded model in the fake STHAL has recognition started by the
* framework.
* @param audioSessionToken - The audio session token passed by the framework which will be
* contained within a received recognition event.
* @param config - The recognition config passed by the framework for this recognition.
* @param recognitionInjection - A new injection interface which allows the client to
* trigger events associated with this newly started recognition.
* @param modelSession - The session object representing the loaded model that this
* recognition is associated with.
*/
public void onRecognitionStarted(int audioSessionToken, android.media.soundtrigger.RecognitionConfig config, android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionInjection, android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException;
/**
* Called when a previously started recognition in the fake STHAL is stopped by the framework.
* Not called following any calls on {@link IInjectRecognitionEvent}.
* @param recognitionSession - The session object received via a previous call to
* {@link recognitionStarted(int, RecognitionConfig, IInjectModelEvent,
* IInjectRecognitionEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
public void onRecognitionStopped(android.media.soundtrigger_middleware.IInjectRecognitionEvent recognitionSession) throws android.os.RemoteException;
/**
* Called when a previously loaded model in the fake STHAL is unloaded by the framework.
* Not called following {@link IInjectModelEvent#triggerUnloadModel()}.
* @param modelSession - The session object received via a previous call to
* {@link soundModelLoaded(SoundModel, Phrase[], IInjectModelEvent} which has been unloaded.
* This session is invalidated subsequent to this call, and no triggers will be respected.
*/
public void onSoundModelUnloaded(android.media.soundtrigger_middleware.IInjectModelEvent modelSession) throws android.os.RemoteException;
/**
* Called when this injection interface has been preempted by a subsequent call to
* {@link ISoundTriggerMiddleware#attachFakeHal(ISoundTriggerInjection)}.
* No more events will be delivered, and any further injection will be ignored.
*/
public void onPreempted() throws android.os.RemoteException;
}