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_mp3/WasabiMetadata.cpp | |
| 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_mp3/WasabiMetadata.cpp')
| -rw-r--r-- | Src/Plugins/Input/in_mp3/WasabiMetadata.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Src/Plugins/Input/in_mp3/WasabiMetadata.cpp b/Src/Plugins/Input/in_mp3/WasabiMetadata.cpp new file mode 100644 index 00000000..15838b7f --- /dev/null +++ b/Src/Plugins/Input/in_mp3/WasabiMetadata.cpp @@ -0,0 +1,67 @@ +#include "WasabiMetadata.h" +#include <shlwapi.h> +#include "../nu/AutoChar.h" + +const wchar_t *MP3StreamMetadata::GetName() +{ + return L"MP3 Stream Metadata"; +} + +GUID MP3StreamMetadata::getGUID() +{ + return MP3StreamMetadataGUID; +} + +int MP3StreamMetadata::getFlags() +{ + return METATAG_FILE_INFO; +} + +int MP3StreamMetadata::isOurFile(const wchar_t *filename) +{ + if (PathIsURL(filename) && !_wcsicmp(PathFindExtension(filename), L".mp3")) + return 1; + else + return 0; +} + +int MP3StreamMetadata::metaTag_open(const wchar_t *filename) +{ + if (metadata.Open(filename) == METADATA_SUCCESS) + return METATAG_SUCCESS; + else + return METATAG_FAILED; +} + +void MP3StreamMetadata::metaTag_close() +{ + delete this; +} + +int MP3StreamMetadata::getMetaData(const wchar_t *tag, __int8 *buf, int buflenBytes, int datatype) +{ + if (datatype == METATYPE_STRING) + { + if (metadata.GetExtendedData(AutoChar(tag), (wchar_t *)buf, buflenBytes/sizeof(wchar_t))) + return METATAG_SUCCESS; + else + return METATAG_UNKNOWN_TAG; + } + else + return METATAG_FAILED; +} + +#define CBCLASS MP3StreamMetadata +START_DISPATCH; +CB(SVC_METATAG_GETNAME,getName) +CB(SVC_METATAG_GETGUID,getGUID) +CB(SVC_METATAG_GETFLAGS,getFlags) +CB(SVC_METATAG_ISOURFILE,isOurFile) +CB(SVC_METATAG_OPEN,metaTag_open) +VCB(SVC_METATAG_CLOSE,metaTag_close) +//CB(SVC_METATAG_ENUMTAGS,enumSupportedTag) +//CB(SVC_METATAG_GETTAGSIZE,getTagSize) +CB(SVC_METATAG_GETMETADATA,getMetaData) +//CB(SVC_METATAG_SETMETADATA,setMetaData) +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file |
