MediaRecorderClient.h revision 6d339f1f764bbd32e3381dae7bfa7c6c575bb493
1/*
2 **
3 ** Copyright 2008, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 **     http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17
18#ifndef ANDROID_MEDIARECORDERCLIENT_H
19#define ANDROID_MEDIARECORDERCLIENT_H
20
21#include <media/IMediaRecorder.h>
22
23namespace android {
24
25class MediaRecorderBase;
26class MediaPlayerService;
27class ICameraRecordingProxy;
28class IGraphicBufferProducer;
29
30class MediaRecorderClient : public BnMediaRecorder
31{
32public:
33    virtual     status_t   setCamera(const sp<ICamera>& camera,
34                                    const sp<ICameraRecordingProxy>& proxy);
35    virtual     status_t   setPreviewSurface(const sp<IGraphicBufferProducer>& surface);
36    virtual     status_t   setVideoSource(int vs);
37    virtual     status_t   setAudioSource(int as);
38    virtual     status_t   setOutputFormat(int of);
39    virtual     status_t   setVideoEncoder(int ve);
40    virtual     status_t   setAudioEncoder(int ae);
41    virtual     status_t   setOutputFile(int fd, int64_t offset,
42                                                  int64_t length);
43    virtual     status_t   setVideoSize(int width, int height);
44    virtual     status_t   setVideoFrameRate(int frames_per_second);
45    virtual     status_t   setParameters(const String8& params);
46    virtual     status_t   setListener(
47                              const sp<IMediaRecorderClient>& listener);
48    virtual     status_t   setClientName(const String16& clientName);
49    virtual     status_t   prepare();
50    virtual     status_t   getMaxAmplitude(int* max);
51    virtual     status_t   start();
52    virtual     status_t   stop();
53    virtual     status_t   reset();
54    virtual     status_t   init();
55    virtual     status_t   close();
56    virtual     status_t   release();
57    virtual     status_t   dump(int fd, const Vector<String16>& args);
58    virtual     sp<IGraphicBufferProducer> querySurfaceMediaSource();
59
60private:
61    friend class           MediaPlayerService;  // for accessing private constructor
62
63                           MediaRecorderClient(
64                                   const sp<MediaPlayerService>& service,
65                                                               pid_t pid);
66    virtual                ~MediaRecorderClient();
67
68    pid_t                  mPid;
69    Mutex                  mLock;
70    MediaRecorderBase      *mRecorder;
71    sp<MediaPlayerService> mMediaPlayerService;
72};
73
74}; // namespace android
75
76#endif // ANDROID_MEDIARECORDERCLIENT_H
77