123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include "Winamp5ArtworkManager.h"
- #include "api__wasabi2.h"
- #include "metadata/MetadataKeys.h"
- #include "nswasabi/ReferenceCounted.h"
- int Winamp5ArtworkManager::Artwork_GetArtwork(nx_uri_t filename, unsigned int field, artwork_t *artwork, data_flags_t flags, nx_time_unix_64_t *filename_modified)
- {
- if (!AGAVE_API_ALBUMART)
- return NErr_FailedCreate;
- if (field != MetadataKeys::ALBUM)
- return NErr_Unknown;
- if (filename_modified)
- {
- struct __stat64 buffer;
- if (_wstat64(filename->string, &buffer) == 0)
- {
- *filename_modified = buffer.st_atime;
- }
- else
- {
- *filename_modified = 0;
- }
- }
- wchar_t *mime_type;
- void *bits;
- size_t len;
- int ret = AGAVE_API_ALBUMART->GetAlbumArtData(filename->string, L"cover", &bits, &len, &mime_type);
- if (ret != 0)
- return NErr_Empty;
- NXDataCreate(&artwork->data, bits, len);
- WASABI_API_MEMMGR->sysFree(bits);
- if (mime_type)
- {
- ReferenceCountedNXString mime_type_nx;
- NXStringCreateWithUTF16(&mime_type_nx, mime_type);
- NXDataSetMIME(artwork->data, mime_type_nx);
- WASABI_API_MEMMGR->sysFree(mime_type);
- }
- artwork->height = 0;
- artwork->width = 0;
- return NErr_Success;
- }
|