summaryrefslogtreecommitdiffstats
path: root/include/media/mediascanner.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/media/mediascanner.h')
-rw-r--r--include/media/mediascanner.h28
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;