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_SERVICE_H 18b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#define ANDROID_HARDWARE_ISOUNDTRIGGER_SERVICE_H 19b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 20b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <utils/RefBase.h> 21b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <binder/IInterface.h> 22b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <binder/Parcel.h> 23b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent#include <system/sound_trigger.h> 24b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 25b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentnamespace android { 26b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 27b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass ISoundTrigger; 28b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass ISoundTriggerClient; 29b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 30b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass ISoundTriggerHwService : public IInterface 31b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent{ 32b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentpublic: 33b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 34b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent DECLARE_META_INTERFACE(SoundTriggerHwService); 35b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 36b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t listModules(struct sound_trigger_module_descriptor *modules, 37b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent uint32_t *numModules) = 0; 38b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 39b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent virtual status_t attach(const sound_trigger_module_handle_t handle, 40b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent const sp<ISoundTriggerClient>& client, 41b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent sp<ISoundTrigger>& module) = 0; 42df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871Eric Laurent 43df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871Eric Laurent virtual status_t setCaptureState(bool active) = 0; 44b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent}; 45b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 46b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent// ---------------------------------------------------------------------------- 47b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurent 48b7a11d83f749ad0200778c4815e907d011d4b5d3Eric Laurentclass BnSoundTriggerHwService: public BnInterface<ISoundTriggerHwService> 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_SERVICE_H 60