diff options
author | Nicolas Catania <niko@google.com> | 2009-07-08 08:57:42 -0700 |
---|---|---|
committer | Nicolas Catania <niko@google.com> | 2009-07-09 11:46:02 -0700 |
commit | b2c693919be966f179080a9ec70a7a82dbf57627 (patch) | |
tree | bc67f2a85c74a41a2151950b6393e6a291aeaa5c /include | |
parent | 3ff23c46978adfb691507baa3d2bf04b3f5ca001 (diff) | |
download | frameworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.zip frameworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.tar.gz frameworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.tar.bz2 |
Implemented the metadata changed notification filters.
IMediaPlayer:
new setMetadataFilter method so set a filter (2 lists of allowed and blocked metadata type)
serialized in a Parcel.
MediaPlayer.java/android_media_MediaPlayer.cpp/mediaplayer.cpp
new setMetadataFilter that passes the filter down to the MediaPlayerService's binder interface.
MediaPlayerService.cpp
The Client inner class holds the allowed and blocked metadata types.
These are in 2 vectors that get populated in the setMetadataFilter.
A new shourldDropMetadata method returns true if a type of metadata should be dropped according
to the filters.
The notify method in run the metadata update notifications thru the filter and possibly drop them.
Diffstat (limited to 'include')
-rw-r--r-- | include/media/IMediaPlayer.h | 7 | ||||
-rw-r--r-- | include/media/mediaplayer.h | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/media/IMediaPlayer.h b/include/media/IMediaPlayer.h index 85aeb30..074125f 100644 --- a/include/media/IMediaPlayer.h +++ b/include/media/IMediaPlayer.h @@ -52,8 +52,13 @@ public: // @param request Parcel that must start with the media player // interface token. // @param[out] reply Parcel to hold the reply data. Cannot be null. - // @return OK if the invocation was made. PERMISSION_DENIED otherwise. + // @return OK if the invocation was made successfully. virtual status_t invoke(const Parcel& request, Parcel *reply) = 0; + + // Set a new metadata filter. + // @param filter A set of allow and drop rules serialized in a Parcel. + // @return OK if the invocation was made successfully. + virtual status_t setMetadataFilter(const Parcel& filter) = 0; }; // ---------------------------------------------------------------------------- diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index dd8ea19..8326a21 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -97,6 +97,8 @@ enum media_info_type { MEDIA_INFO_BAD_INTERLEAVING = 800, // The media is not seekable (e.g live stream). MEDIA_INFO_NOT_SEEKABLE = 801, + // New media metadata is available. + MEDIA_INFO_METADATA_UPDATE = 802, }; @@ -152,6 +154,7 @@ public: static sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, int* pFormat); static sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, int* pFormat); status_t invoke(const Parcel& request, Parcel *reply); + status_t setMetadataFilter(const Parcel& filter); private: void clear_l(); status_t seekTo_l(int msec); |