diff options
author | James Dong <jdong@google.com> | 2010-06-28 16:28:11 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-06-28 16:28:11 -0700 |
commit | 68d42e3887fc0ccd02c74a7abe9697f1dc94fad6 (patch) | |
tree | 5a2ff857b9ddf36bbdec4a351bd95d0b54e63297 /media | |
parent | ab3593956c9eefc85e07cf6bcc847b696da8dccc (diff) | |
parent | c2c59f690deafe34c7701b01b612fd777cee8d4b (diff) | |
download | frameworks_base-68d42e3887fc0ccd02c74a7abe9697f1dc94fad6.zip frameworks_base-68d42e3887fc0ccd02c74a7abe9697f1dc94fad6.tar.gz frameworks_base-68d42e3887fc0ccd02c74a7abe9697f1dc94fad6.tar.bz2 |
am c2c59f69: am 2a76b316: Merge "Separate MediaRecorderClient with MediaPlayerClient" into gingerbread
Merge commit 'c2c59f690deafe34c7701b01b612fd777cee8d4b'
* commit 'c2c59f690deafe34c7701b01b612fd777cee8d4b':
Separate MediaRecorderClient with MediaPlayerClient
Diffstat (limited to 'media')
-rw-r--r-- | media/libmedia/Android.mk | 1 | ||||
-rw-r--r-- | media/libmedia/IMediaRecorder.cpp | 8 | ||||
-rw-r--r-- | media/libmedia/IMediaRecorderClient.cpp | 70 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaRecorderClient.cpp | 2 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaRecorderClient.h | 2 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 2 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.h | 4 |
7 files changed, 80 insertions, 9 deletions
diff --git a/media/libmedia/Android.mk b/media/libmedia/Android.mk index 7908f5d..de9e51d 100644 --- a/media/libmedia/Android.mk +++ b/media/libmedia/Android.mk @@ -12,6 +12,7 @@ LOCAL_SRC_FILES:= \ mediaplayer.cpp \ IMediaPlayerService.cpp \ IMediaPlayerClient.cpp \ + IMediaRecorderClient.cpp \ IMediaPlayer.cpp \ IMediaRecorder.cpp \ Metadata.cpp \ diff --git a/media/libmedia/IMediaRecorder.cpp b/media/libmedia/IMediaRecorder.cpp index 2bc2a7e..9fe207c 100644 --- a/media/libmedia/IMediaRecorder.cpp +++ b/media/libmedia/IMediaRecorder.cpp @@ -21,7 +21,7 @@ #include <binder/Parcel.h> #include <surfaceflinger/ISurface.h> #include <camera/ICamera.h> -#include <media/IMediaPlayerClient.h> +#include <media/IMediaRecorderClient.h> #include <media/IMediaRecorder.h> namespace android { @@ -189,7 +189,7 @@ public: return reply.readInt32(); } - status_t setListener(const sp<IMediaPlayerClient>& listener) + status_t setListener(const sp<IMediaRecorderClient>& listener) { LOGV("setListener(%p)", listener.get()); Parcel data, reply; @@ -399,8 +399,8 @@ status_t BnMediaRecorder::onTransact( case SET_LISTENER: { LOGV("SET_LISTENER"); CHECK_INTERFACE(IMediaRecorder, data, reply); - sp<IMediaPlayerClient> listener = - interface_cast<IMediaPlayerClient>(data.readStrongBinder()); + sp<IMediaRecorderClient> listener = + interface_cast<IMediaRecorderClient>(data.readStrongBinder()); reply->writeInt32(setListener(listener)); return NO_ERROR; } break; diff --git a/media/libmedia/IMediaRecorderClient.cpp b/media/libmedia/IMediaRecorderClient.cpp new file mode 100644 index 0000000..ff235c9 --- /dev/null +++ b/media/libmedia/IMediaRecorderClient.cpp @@ -0,0 +1,70 @@ +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +#include <utils/RefBase.h> +#include <binder/IInterface.h> +#include <binder/Parcel.h> + +#include <media/IMediaRecorderClient.h> + +namespace android { + +enum { + NOTIFY = IBinder::FIRST_CALL_TRANSACTION, +}; + +class BpMediaRecorderClient: public BpInterface<IMediaRecorderClient> +{ +public: + BpMediaRecorderClient(const sp<IBinder>& impl) + : BpInterface<IMediaRecorderClient>(impl) + { + } + + virtual void notify(int msg, int ext1, int ext2) + { + Parcel data, reply; + data.writeInterfaceToken(IMediaRecorderClient::getInterfaceDescriptor()); + data.writeInt32(msg); + data.writeInt32(ext1); + data.writeInt32(ext2); + remote()->transact(NOTIFY, data, &reply, IBinder::FLAG_ONEWAY); + } +}; + +IMPLEMENT_META_INTERFACE(MediaRecorderClient, "android.media.IMediaRecorderClient"); + +// ---------------------------------------------------------------------- + +status_t BnMediaRecorderClient::onTransact( + uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) +{ + switch(code) { + case NOTIFY: { + CHECK_INTERFACE(IMediaRecorderClient, data, reply); + int msg = data.readInt32(); + int ext1 = data.readInt32(); + int ext2 = data.readInt32(); + notify(msg, ext1, ext2); + return NO_ERROR; + } break; + default: + return BBinder::onTransact(code, data, reply, flags); + } +} + +}; // namespace android diff --git a/media/libmediaplayerservice/MediaRecorderClient.cpp b/media/libmediaplayerservice/MediaRecorderClient.cpp index 084f039..80b1cfd 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.cpp +++ b/media/libmediaplayerservice/MediaRecorderClient.cpp @@ -318,7 +318,7 @@ MediaRecorderClient::~MediaRecorderClient() release(); } -status_t MediaRecorderClient::setListener(const sp<IMediaPlayerClient>& listener) +status_t MediaRecorderClient::setListener(const sp<IMediaRecorderClient>& listener) { LOGV("setListener"); Mutex::Autolock lock(mLock); diff --git a/media/libmediaplayerservice/MediaRecorderClient.h b/media/libmediaplayerservice/MediaRecorderClient.h index e07306b..b53d950 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.h +++ b/media/libmediaplayerservice/MediaRecorderClient.h @@ -40,7 +40,7 @@ public: virtual status_t setVideoSize(int width, int height); virtual status_t setVideoFrameRate(int frames_per_second); virtual status_t setParameters(const String8& params); - virtual status_t setListener(const sp<IMediaPlayerClient>& listener); + virtual status_t setListener(const sp<IMediaRecorderClient>& listener); virtual status_t prepare(); virtual status_t getMaxAmplitude(int* max); virtual status_t start(); diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 1e20f7e..c4aeec3 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -456,7 +456,7 @@ status_t StagefrightRecorder::setParameters(const String8 ¶ms) { return OK; } -status_t StagefrightRecorder::setListener(const sp<IMediaPlayerClient> &listener) { +status_t StagefrightRecorder::setListener(const sp<IMediaRecorderClient> &listener) { mListener = listener; return OK; diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index 9fb7e8f..f4488b6 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -46,7 +46,7 @@ struct StagefrightRecorder : public MediaRecorderBase { virtual status_t setOutputFile(const char *path); virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); virtual status_t setParameters(const String8& params); - virtual status_t setListener(const sp<IMediaPlayerClient>& listener); + virtual status_t setListener(const sp<IMediaRecorderClient>& listener); virtual status_t prepare(); virtual status_t start(); virtual status_t pause(); @@ -63,7 +63,7 @@ private: sp<Camera> mCamera; sp<ISurface> mPreviewSurface; - sp<IMediaPlayerClient> mListener; + sp<IMediaRecorderClient> mListener; sp<MediaWriter> mWriter; sp<AudioSource> mAudioSourceNode; |