Loading include/media/IMediaPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ public: virtual status_t setAudioStreamType(int type) = 0; virtual status_t setLooping(int loop) = 0; virtual status_t setVolume(float leftVolume, float rightVolume) = 0; virtual status_t suspend() = 0; virtual status_t resume() = 0; // Invoke a generic method on the player by using opaque parcels // for the request and reply. Loading include/media/MediaPlayerInterface.h +3 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,9 @@ public: virtual status_t reset() = 0; virtual status_t setLooping(int loop) = 0; virtual player_type playerType() = 0; virtual status_t suspend() { return INVALID_OPERATION; } virtual status_t resume() { return INVALID_OPERATION; } virtual void setNotifyCallback(void* cookie, notify_callback_f notifyFunc) { mCookie = cookie; mNotify = notifyFunc; } // Invoke a generic method on the player by using opaque parcels Loading include/media/mediaplayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,8 @@ public: status_t invoke(const Parcel& request, Parcel *reply); status_t setMetadataFilter(const Parcel& filter); status_t getMetadata(bool update_only, bool apply_filter, Parcel *metadata); status_t suspend(); status_t resume(); private: void clear_l(); status_t seekTo_l(int msec); Loading media/libmedia/IMediaPlayer.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,8 @@ enum { INVOKE, SET_METADATA_FILTER, GET_METADATA, SUSPEND, RESUME, }; class BpMediaPlayer: public BpInterface<IMediaPlayer> Loading Loading @@ -199,6 +201,26 @@ public: remote()->transact(GET_METADATA, request, reply); return reply->readInt32(); } status_t suspend() { Parcel request; request.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor()); Parcel reply; remote()->transact(SUSPEND, request, &reply); return reply.readInt32(); } status_t resume() { Parcel request; request.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor()); Parcel reply; remote()->transact(RESUME, request, &reply); return reply.readInt32(); } }; IMPLEMENT_META_INTERFACE(MediaPlayer, "android.media.IMediaPlayer"); Loading Loading @@ -299,6 +321,16 @@ status_t BnMediaPlayer::onTransact( reply->writeInt32(setMetadataFilter(data)); return NO_ERROR; } break; case SUSPEND: { CHECK_INTERFACE(IMediaPlayer, data, reply); reply->writeInt32(suspend()); return NO_ERROR; } break; case RESUME: { CHECK_INTERFACE(IMediaPlayer, data, reply); reply->writeInt32(resume()); return NO_ERROR; } break; case GET_METADATA: { CHECK_INTERFACE(IMediaPlayer, data, reply); const status_t retcode = getMetadata(data.readInt32(), data.readInt32(), reply); Loading media/libmedia/mediaplayer.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,16 @@ status_t MediaPlayer::invoke(const Parcel& request, Parcel *reply) return INVALID_OPERATION; } status_t MediaPlayer::suspend() { Mutex::Autolock _l(mLock); return mPlayer->suspend(); } status_t MediaPlayer::resume() { Mutex::Autolock _l(mLock); return mPlayer->resume(); } status_t MediaPlayer::setMetadataFilter(const Parcel& filter) { LOGD("setMetadataFilter"); Loading Loading
include/media/IMediaPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ public: virtual status_t setAudioStreamType(int type) = 0; virtual status_t setLooping(int loop) = 0; virtual status_t setVolume(float leftVolume, float rightVolume) = 0; virtual status_t suspend() = 0; virtual status_t resume() = 0; // Invoke a generic method on the player by using opaque parcels // for the request and reply. Loading
include/media/MediaPlayerInterface.h +3 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,9 @@ public: virtual status_t reset() = 0; virtual status_t setLooping(int loop) = 0; virtual player_type playerType() = 0; virtual status_t suspend() { return INVALID_OPERATION; } virtual status_t resume() { return INVALID_OPERATION; } virtual void setNotifyCallback(void* cookie, notify_callback_f notifyFunc) { mCookie = cookie; mNotify = notifyFunc; } // Invoke a generic method on the player by using opaque parcels Loading
include/media/mediaplayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,8 @@ public: status_t invoke(const Parcel& request, Parcel *reply); status_t setMetadataFilter(const Parcel& filter); status_t getMetadata(bool update_only, bool apply_filter, Parcel *metadata); status_t suspend(); status_t resume(); private: void clear_l(); status_t seekTo_l(int msec); Loading
media/libmedia/IMediaPlayer.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,8 @@ enum { INVOKE, SET_METADATA_FILTER, GET_METADATA, SUSPEND, RESUME, }; class BpMediaPlayer: public BpInterface<IMediaPlayer> Loading Loading @@ -199,6 +201,26 @@ public: remote()->transact(GET_METADATA, request, reply); return reply->readInt32(); } status_t suspend() { Parcel request; request.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor()); Parcel reply; remote()->transact(SUSPEND, request, &reply); return reply.readInt32(); } status_t resume() { Parcel request; request.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor()); Parcel reply; remote()->transact(RESUME, request, &reply); return reply.readInt32(); } }; IMPLEMENT_META_INTERFACE(MediaPlayer, "android.media.IMediaPlayer"); Loading Loading @@ -299,6 +321,16 @@ status_t BnMediaPlayer::onTransact( reply->writeInt32(setMetadataFilter(data)); return NO_ERROR; } break; case SUSPEND: { CHECK_INTERFACE(IMediaPlayer, data, reply); reply->writeInt32(suspend()); return NO_ERROR; } break; case RESUME: { CHECK_INTERFACE(IMediaPlayer, data, reply); reply->writeInt32(resume()); return NO_ERROR; } break; case GET_METADATA: { CHECK_INTERFACE(IMediaPlayer, data, reply); const status_t retcode = getMetadata(data.readInt32(), data.readInt32(), reply); Loading
media/libmedia/mediaplayer.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,16 @@ status_t MediaPlayer::invoke(const Parcel& request, Parcel *reply) return INVALID_OPERATION; } status_t MediaPlayer::suspend() { Mutex::Autolock _l(mLock); return mPlayer->suspend(); } status_t MediaPlayer::resume() { Mutex::Autolock _l(mLock); return mPlayer->resume(); } status_t MediaPlayer::setMetadataFilter(const Parcel& filter) { LOGD("setMetadataFilter"); Loading