MediaRecorderClient.h revision dac6a31a33ba53fb93850670cdddd1e6515dadce
189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project/* 289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** 389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** Copyright 2008, HTC Inc. 489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** 589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** Licensed under the Apache License, Version 2.0 (the "License"); 689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** you may not use this file except in compliance with the License. 789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** You may obtain a copy of the License at 889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** 989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** http://www.apache.org/licenses/LICENSE-2.0 1089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** 1189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** Unless required by applicable law or agreed to in writing, software 1289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** distributed under the License is distributed on an "AS IS" BASIS, 1389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** See the License for the specific language governing permissions and 1589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ** limitations under the License. 1689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project */ 1789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 1889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#ifndef ANDROID_MEDIARECORDERCLIENT_H 1989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#define ANDROID_MEDIARECORDERCLIENT_H 2089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include <media/IMediaRecorder.h> 2289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectnamespace android { 2489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectclass PVMediaRecorder; 2689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectclass ISurface; 27dac6a31a33ba53fb93850670cdddd1e6515dadceGloria Wangclass MediaPlayerService; 2889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectclass MediaRecorderClient : public BnMediaRecorder 3089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project{ 3189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectpublic: 3289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setCamera(const sp<ICamera>& camera); 3389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setPreviewSurface(const sp<ISurface>& surface); 3489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setVideoSource(int vs); 3589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setAudioSource(int as); 3689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setOutputFormat(int of); 3789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setVideoEncoder(int ve); 3889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setAudioEncoder(int ae); 3989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setOutputFile(const char* path); 4089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); 4189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setVideoSize(int width, int height); 4289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setVideoFrameRate(int frames_per_second); 43c048cae0367db6fbb4fe1127be5011910713d4adThe Android Open Source Project virtual status_t setParameters(const String8& params); 4489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setListener(const sp<IMediaPlayerClient>& listener); 4589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t prepare(); 4689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t getMaxAmplitude(int* max); 4789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t start(); 4889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t stop(); 4989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t reset(); 5089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t init(); 5189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t close(); 5289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t release(); 5389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 5489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectprivate: 5589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project friend class MediaPlayerService; // for accessing private constructor 5689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 57dac6a31a33ba53fb93850670cdddd1e6515dadceGloria Wang MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid); 5889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual ~MediaRecorderClient(); 5989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 6089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project pid_t mPid; 6189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project Mutex mLock; 6289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project PVMediaRecorder *mRecorder; 63dac6a31a33ba53fb93850670cdddd1e6515dadceGloria Wang sp<MediaPlayerService> mMediaPlayerService; 6489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}; 6589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 6689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}; // namespace android 6789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 6889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#endif // ANDROID_MEDIARECORDERCLIENT_H 6989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 70