blob: d0738af7b20bf0372663807396f449006c18e7f9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#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;
}
|