From 99ffda877980468a9ae31e013cd10fb3645df1b0 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Mon, 2 Mar 2009 22:54:33 -0800 Subject: auto import from //depot/cupcake/@137055 --- include/media/mediarecorder.h | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) (limited to 'include/media/mediarecorder.h') diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h index 436e8f1..8991f08 100644 --- a/include/media/mediarecorder.h +++ b/include/media/mediarecorder.h @@ -19,6 +19,7 @@ #define ANDROID_MEDIARECORDER_H #include +#include namespace android { @@ -87,7 +88,24 @@ enum media_recorder_states { MEDIA_RECORDER_RECORDING = 1 << 4, }; -class MediaRecorder +// The "msg" code passed to the listener in notify. +enum { + MEDIA_RECORDER_EVENT_ERROR = 1 +}; + +enum { + MEDIA_RECORDER_ERROR_UNKNOWN = 1 +}; + +// ---------------------------------------------------------------------------- +// ref-counted object for callbacks +class MediaRecorderListener: virtual public RefBase +{ +public: + virtual void notify(int msg, int ext1, int ext2) = 0; +}; + +class MediaRecorder : public BnMediaPlayerClient { public: MediaRecorder(); @@ -105,6 +123,7 @@ public: status_t setOutputFile(int fd, int64_t offset, int64_t length); status_t setVideoSize(int width, int height); status_t setVideoFrameRate(int frames_per_second); + status_t setListener(const sp& listener); status_t prepare(); status_t getMaxAmplitude(int* max); status_t start(); @@ -113,18 +132,22 @@ public: status_t init(); status_t close(); status_t release(); + void notify(int msg, int ext1, int ext2); private: void doCleanUp(); status_t doReset(); - sp mMediaRecorder; - media_recorder_states mCurrentState; - bool mIsAudioSourceSet; - bool mIsVideoSourceSet; - bool mIsAudioEncoderSet; - bool mIsVideoEncoderSet; - bool mIsOutputFileSet; + sp mMediaRecorder; + sp mListener; + media_recorder_states mCurrentState; + bool mIsAudioSourceSet; + bool mIsVideoSourceSet; + bool mIsAudioEncoderSet; + bool mIsVideoEncoderSet; + bool mIsOutputFileSet; + Mutex mLock; + Mutex mNotifyLock; }; }; // namespace android -- cgit v1.1