winamp/Src/replicant/mp4/MP4MetadataBase.h
2024-09-24 14:54:57 +02:00

31 lines
No EOL
1 KiB
C++

#pragma once
#include "metadata/ifc_metadata.h"
#include "mp4.h"
class MP4MetadataBase : public ifc_metadata
{
public:
MP4MetadataBase();
~MP4MetadataBase();
int Initialize(nx_uri_t filename, MP4FileHandle mp4_file);
int WASABICALL Metadata_GetField(int field, unsigned int index, nx_string_t *value);
int WASABICALL Metadata_GetInteger(int field, unsigned int index, int64_t *value);
int WASABICALL Metadata_GetReal(int field, unsigned int index, double *value);
int WASABICALL Metadata_GetArtwork(int field, unsigned int index, artwork_t *artwork, data_flags_t flags);
int WASABICALL Metadata_GetBinary(int field, unsigned int index, nx_data_t *data) { return NErr_NotImplemented; }
private:
MP4FileHandle mp4_file;
nx_uri_t mp4_metadata_filename;
nx_file_stat_s file_stats;
static struct mime_types_t
{
nx_string_t jpeg;
nx_string_t png;
nx_string_t bmp;
nx_string_t gif;
} mime_types;
static int NX_ONCE_API InitMIME(nx_once_t, void *, void **);
static nx_string_t GetMIMEFromType(uint32_t type);
};