diff options
Diffstat (limited to 'Src/Plugins/Input/in_flac/Metadata.h')
-rw-r--r-- | Src/Plugins/Input/in_flac/Metadata.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Src/Plugins/Input/in_flac/Metadata.h b/Src/Plugins/Input/in_flac/Metadata.h new file mode 100644 index 00000000..90616aeb --- /dev/null +++ b/Src/Plugins/Input/in_flac/Metadata.h @@ -0,0 +1,48 @@ +#ifndef NULLSOFT_IN_FLAC_METADATA_H +#define NULLSOFT_IN_FLAC_METADATA_H + +#include <FLAC/all.h> + +class FLACMetadata +{ +public: + FLACMetadata(); + ~FLACMetadata(); + bool Open(const wchar_t *filename, bool optimize=false); + void Reset(); + const char *GetMetadata(const char *tag); + void SetMetadata(const char *tag, const char *value); + void RemoveMetadata(const char *tag); + void RemoveMetadata(int n); + bool Save(const wchar_t *filename); + const FLAC__StreamMetadata_StreamInfo *GetStreamInfo(); + __int64 GetFileSize() { return filesize; } + bool GetLengthMilliseconds(unsigned __int64 *length); + int GetNumMetadataItems(); + const char* EnumMetadata(int n, char *tag, int len); + void SetTag(int n, const char *tag); + + bool GetPicture(FLAC__StreamMetadata_Picture_Type type, void **data, size_t *len, wchar_t **mimeType); + bool GetIndexPicture(int index, FLAC__StreamMetadata_Picture_Type *type, void **data, size_t *len, wchar_t **mimeType); + bool RemovePicture(FLAC__StreamMetadata_Picture_Type type); + bool SetPicture(FLAC__StreamMetadata_Picture_Type type, void *data, size_t len, const wchar_t *mimeType, int width, int height); +private: + FLAC__Metadata_Chain *chain; + FLAC__Metadata_Iterator *itr; + FLAC__StreamMetadata *block; + FLAC__StreamMetadata *streamInfo; + __int64 filesize; +}; + +class Info +{ +public: + FLACMetadata metadata; + const wchar_t *filename; +}; + +extern FLACMetadata *getMetadata; +extern wchar_t *getFileInfoFn; +extern Info *info; + +#endif
\ No newline at end of file |