mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 05:35:46 -04:00
Initial community commit
This commit is contained in:
67
Src/Plugins/Input/in_mp3/WasabiMetadata.cpp
Normal file
67
Src/Plugins/Input/in_mp3/WasabiMetadata.cpp
Normal file
@ -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
|
Reference in New Issue
Block a user