19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** Copyright 2008, HTC Inc. 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** Licensed under the Apache License, Version 2.0 (the "License"); 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** you may not use this file except in compliance with the License. 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ** limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef ANDROID_MEDIARECORDERCLIENT_H 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define ANDROID_MEDIARECORDERCLIENT_H 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <media/IMediaRecorder.h> 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace android { 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 25ea6a38c63b9e9aeb45aa22587c069bd3c5d83df8Andreas Huberclass MediaRecorderBase; 26608a2630bb1eec63431cf065a76962e138aa1dc2Gloria Wangclass MediaPlayerService; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass MediaRecorderClient : public BnMediaRecorder 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic: 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setCamera(const sp<ICamera>& camera); 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setPreviewSurface(const sp<ISurface>& surface); 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setVideoSource(int vs); 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setAudioSource(int as); 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setOutputFormat(int of); 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setVideoEncoder(int ve); 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setAudioEncoder(int ae); 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setOutputFile(const char* path); 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setVideoSize(int width, int height); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setVideoFrameRate(int frames_per_second); 42ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project virtual status_t setParameters(const String8& params); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t setListener(const sp<IMediaPlayerClient>& listener); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t prepare(); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t getMaxAmplitude(int* max); 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t start(); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t stop(); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t reset(); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t init(); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t close(); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual status_t release(); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectprivate: 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project friend class MediaPlayerService; // for accessing private constructor 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 56608a2630bb1eec63431cf065a76962e138aa1dc2Gloria Wang MediaRecorderClient(const sp<MediaPlayerService>& service, pid_t pid); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project virtual ~MediaRecorderClient(); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pid_t mPid; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Mutex mLock; 61ea6a38c63b9e9aeb45aa22587c069bd3c5d83df8Andreas Huber MediaRecorderBase *mRecorder; 62608a2630bb1eec63431cf065a76962e138aa1dc2Gloria Wang sp<MediaPlayerService> mMediaPlayerService; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; // namespace android 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // ANDROID_MEDIARECORDERCLIENT_H 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 69