/* * 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.soundtrigger.types_interface/2/preprocessed.aidl -pout/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types_interface/3/preprocessed.aidl -pout/soong/.intermediates/frameworks/base/media/media_permission-aidl_interface/preprocessed.aidl --ninja -d out/soong/.intermediates/frameworks/base/media/soundtrigger_middleware-aidl-java-source/gen/android/media/soundtrigger_middleware/ISoundTriggerInjection.java.d -o out/soong/.intermediates/frameworks/base/media/soundtrigger_middleware-aidl-java-source/gen -Nframeworks/base/media/aidl frameworks/base/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerInjection.aidl */ 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. */ @SuppressWarnings("this-escape") 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); } if (code == 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); } /** @hide */ public static final java.lang.String DESCRIPTOR = "android.media.soundtrigger_middleware.ISoundTriggerInjection"; /** * 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; }