diff options
author | Elliott Hughes <enh@google.com> | 2014-06-10 16:55:38 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-06-11 14:45:27 -0700 |
commit | f3e80dddd7376aa9deeb27de25e1d50030a2ad98 (patch) | |
tree | a3ebf2e96fa0bb9b0375281692adf48333bca468 /media/libmedia/MediaScanner.cpp | |
parent | d3af4265dca4c8ebcead5376f1c73a5dafc34778 (diff) | |
download | frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.zip frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.tar.gz frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.tar.bz2 |
Offer a type-safe album art interface.
Bug: 15514223
Change-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95
Diffstat (limited to 'media/libmedia/MediaScanner.cpp')
-rw-r--r-- | media/libmedia/MediaScanner.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/media/libmedia/MediaScanner.cpp b/media/libmedia/MediaScanner.cpp index 28b5aa7..dcbb769 100644 --- a/media/libmedia/MediaScanner.cpp +++ b/media/libmedia/MediaScanner.cpp @@ -237,4 +237,24 @@ MediaScanResult MediaScanner::doProcessDirectoryEntry( return MEDIA_SCAN_RESULT_OK; } +MediaAlbumArt *MediaAlbumArt::clone() { + size_t byte_size = this->size() + sizeof(MediaAlbumArt); + MediaAlbumArt *result = reinterpret_cast<MediaAlbumArt *>(malloc(byte_size)); + result->mSize = this->size(); + memcpy(&result->mData[0], &this->mData[0], this->size()); + return result; +} + +void MediaAlbumArt::init(MediaAlbumArt *instance, int32_t dataSize, const void *data) { + instance->mSize = dataSize; + memcpy(&instance->mData[0], data, dataSize); +} + +MediaAlbumArt *MediaAlbumArt::fromData(int32_t dataSize, const void* data) { + size_t byte_size = sizeof(MediaAlbumArt) + dataSize; + MediaAlbumArt *result = reinterpret_cast<MediaAlbumArt *>(malloc(byte_size)); + init(result, dataSize, data); + return result; +} + } // namespace android |