IAudioRecord.h revision 89fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5
1d9e397b599b13d642138480a28c14db7a136bf0Adam Langley/* 2d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * Copyright (C) 2007 The Android Open Source Project 3d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * 4d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * Licensed under the Apache License, Version 2.0 (the "License"); 5d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * you may not use this file except in compliance with the License. 6d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * You may obtain a copy of the License at 7d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * 8d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * http://www.apache.org/licenses/LICENSE-2.0 9d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * 10d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * Unless required by applicable law or agreed to in writing, software 11d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * distributed under the License is distributed on an "AS IS" BASIS, 12d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * See the License for the specific language governing permissions and 14d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * limitations under the License. 15d9e397b599b13d642138480a28c14db7a136bf0Adam Langley */ 16d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 17d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#ifndef IAUDIORECORD_H_ 18d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#define IAUDIORECORD_H_ 19d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 20d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <stdint.h> 21d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <sys/types.h> 22d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 23d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <utils/RefBase.h> 24d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <utils/Errors.h> 25d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <utils/IInterface.h> 26d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#include <utils/IMemory.h> 27d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 28d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 29d9e397b599b13d642138480a28c14db7a136bf0Adam Langleynamespace android { 30d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 31d9e397b599b13d642138480a28c14db7a136bf0Adam Langley// ---------------------------------------------------------------------------- 32d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 33d9e397b599b13d642138480a28c14db7a136bf0Adam Langleyclass IAudioRecord : public IInterface 34d9e397b599b13d642138480a28c14db7a136bf0Adam Langley{ 35d9e397b599b13d642138480a28c14db7a136bf0Adam Langleypublic: 36d9e397b599b13d642138480a28c14db7a136bf0Adam Langley DECLARE_META_INTERFACE(AudioRecord); 37d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 38d9e397b599b13d642138480a28c14db7a136bf0Adam Langley /* After it's created the track is not active. Call start() to 39d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * make it active. If set, the callback will start being called. 40d9e397b599b13d642138480a28c14db7a136bf0Adam Langley */ 41d9e397b599b13d642138480a28c14db7a136bf0Adam Langley virtual status_t start() = 0; 42d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 43d9e397b599b13d642138480a28c14db7a136bf0Adam Langley /* Stop a track. If set, the callback will cease being called and 44d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * obtainBuffer will return an error. Buffers that are already released 45d9e397b599b13d642138480a28c14db7a136bf0Adam Langley * will be processed, unless flush() is called. 46d9e397b599b13d642138480a28c14db7a136bf0Adam Langley */ 47d9e397b599b13d642138480a28c14db7a136bf0Adam Langley virtual void stop() = 0; 48d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 49d9e397b599b13d642138480a28c14db7a136bf0Adam Langley /* get this tracks control block */ 50d9e397b599b13d642138480a28c14db7a136bf0Adam Langley virtual sp<IMemory> getCblk() const = 0; 51d9e397b599b13d642138480a28c14db7a136bf0Adam Langley}; 52d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 53d9e397b599b13d642138480a28c14db7a136bf0Adam Langley// ---------------------------------------------------------------------------- 54d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 55d9e397b599b13d642138480a28c14db7a136bf0Adam Langleyclass BnAudioRecord : public BnInterface<IAudioRecord> 56d9e397b599b13d642138480a28c14db7a136bf0Adam Langley{ 57d9e397b599b13d642138480a28c14db7a136bf0Adam Langleypublic: 58d9e397b599b13d642138480a28c14db7a136bf0Adam Langley virtual status_t onTransact( uint32_t code, 59d9e397b599b13d642138480a28c14db7a136bf0Adam Langley const Parcel& data, 60d9e397b599b13d642138480a28c14db7a136bf0Adam Langley Parcel* reply, 61d9e397b599b13d642138480a28c14db7a136bf0Adam Langley uint32_t flags = 0); 62d9e397b599b13d642138480a28c14db7a136bf0Adam Langley}; 63d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 64d9e397b599b13d642138480a28c14db7a136bf0Adam Langley// ---------------------------------------------------------------------------- 65d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 66d9e397b599b13d642138480a28c14db7a136bf0Adam Langley}; // namespace android 67d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 68d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#endif /*IAUDIORECORD_H_*/ 69d9e397b599b13d642138480a28c14db7a136bf0Adam Langley