diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Input/in_flac/Metadata.h | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
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 |