IMediaRecorder.h revision ad04d9201452001dbaac4349f084cc9316190b89
1/*
2 **
3 ** Copyright 2008, HTC Inc.
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_IMEDIARECORDER_H
19#define ANDROID_IMEDIARECORDER_H
20
21#include <utils/IInterface.h>
22
23namespace android {
24
25class ISurface;
26class ICamera;
27
28class IMediaRecorder: public IInterface
29{
30public:
31    DECLARE_META_INTERFACE(MediaRecorder);
32
33    virtual	status_t		setCamera(const sp<ICamera>& camera) = 0;
34    virtual	status_t		setPreviewSurface(const sp<ISurface>& surface) = 0;
35    virtual	status_t		setVideoSource(int vs) = 0;
36    virtual	status_t		setAudioSource(int as) = 0;
37    virtual	status_t		setOutputFormat(int of) = 0;
38    virtual	status_t		setVideoEncoder(int ve) = 0;
39    virtual	status_t		setAudioEncoder(int ae) = 0;
40    virtual	status_t		setOutputFile(const char* path) = 0;
41    virtual	status_t		setOutputFile(int fd, int64_t offset, int64_t length) = 0;
42    virtual	status_t		setVideoSize(int width, int height) = 0;
43    virtual	status_t		setVideoFrameRate(int frames_per_second) = 0;
44    virtual	status_t		prepare() = 0;
45    virtual	status_t		getMaxAmplitude(int* max) = 0;
46    virtual	status_t		start() = 0;
47    virtual	status_t		stop() = 0;
48    virtual	status_t		reset() = 0;
49    virtual status_t        init() = 0;
50    virtual status_t        close() = 0;
51    virtual	status_t		release() = 0;
52};
53
54// ----------------------------------------------------------------------------
55
56class BnMediaRecorder: public BnInterface<IMediaRecorder>
57{
58public:
59    virtual status_t    onTransact( uint32_t code,
60                                    const Parcel& data,
61                                    Parcel* reply,
62                                    uint32_t flags = 0);
63};
64
65}; // namespace android
66
67#endif // ANDROID_IMEDIARECORDER_H
68
69