diff options
Diffstat (limited to 'include/media/mediascanner.h')
-rw-r--r-- | include/media/mediascanner.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/include/media/mediascanner.h b/include/media/mediascanner.h index a73403b..37a83c6 100644 --- a/include/media/mediascanner.h +++ b/include/media/mediascanner.h @@ -41,6 +41,31 @@ enum MediaScanResult { MEDIA_SCAN_RESULT_ERROR, }; +struct MediaAlbumArt { +public: + static MediaAlbumArt *fromData(int32_t size, const void* data); + + static void init(MediaAlbumArt* instance, int32_t size, const void* data); + + MediaAlbumArt *clone(); + + const char *data() { + return &mData[0]; + } + + int32_t size() { + return mSize; + } + +private: + int32_t mSize; + char mData[]; + + // You can't construct instances of this class directly because this is a + // variable-sized object passed through the binder. + MediaAlbumArt(); +} __packed; + struct MediaScanner { MediaScanner(); virtual ~MediaScanner(); @@ -53,8 +78,7 @@ struct MediaScanner { void setLocale(const char *locale); - // extracts album art as a block of data - virtual char *extractAlbumArt(int fd) = 0; + virtual MediaAlbumArt *extractAlbumArt(int fd) = 0; protected: const char *locale() const; |