1b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent/* 2b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * Copyright (C) 2014 The Android Open Source Project 3b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * 4b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 5b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * you may not use this file except in compliance with the License. 6b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * You may obtain a copy of the License at 7b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * 8b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * http://www.apache.org/licenses/LICENSE-2.0 9b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * 10b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * Unless required by applicable law or agreed to in writing, software 11b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 12b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * See the License for the specific language governing permissions and 14b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent * limitations under the License. 15b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent */ 16b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 17b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#ifndef ANDROID_HARDWARE_ISOUNDTRIGGER_H 18b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#define ANDROID_HARDWARE_ISOUNDTRIGGER_H 19b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 20b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <utils/RefBase.h> 21b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <binder/IInterface.h> 22b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <binder/Parcel.h> 23b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <binder/IMemory.h> 24b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <system/sound_trigger.h> 25b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 26b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentnamespace android { 27b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 28b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass ISoundTrigger : public IInterface 29b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent{ 30b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentpublic: 31b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent DECLARE_META_INTERFACE(SoundTrigger); 32b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 33b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual void detach() = 0; 34b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 35b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t loadSoundModel(const sp<IMemory>& modelMemory, 36b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent sound_model_handle_t *handle) = 0; 37b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 38b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t unloadSoundModel(sound_model_handle_t handle) = 0; 39b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 40b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t startRecognition(sound_model_handle_t handle, 41b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent const sp<IMemory>& dataMemory) = 0; 42b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t stopRecognition(sound_model_handle_t handle) = 0; 43b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 44b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent}; 45b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 46b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent// ---------------------------------------------------------------------------- 47b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 48b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass BnSoundTrigger: public BnInterface<ISoundTrigger> 49b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent{ 50b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentpublic: 51b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t onTransact( uint32_t code, 52b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent const Parcel& data, 53b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent Parcel* reply, 54b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent uint32_t flags = 0); 55b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent}; 56b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 57b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent}; // namespace android 58b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 59b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#endif //ANDROID_HARDWARE_ISOUNDTRIGGER_H 60