Initial community commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#include "main.h"
|
||||
#include "PlaylistDirectoryCallback.h"
|
||||
|
||||
PlaylistDirectoryCallback::PlaylistDirectoryCallback(const char *_extlist, const char *winampIni)
|
||||
: extlist(_extlist), recurse(true)
|
||||
{
|
||||
if (winampIni)
|
||||
{
|
||||
int rofiob = GetPrivateProfileIntA("winamp", "rofiob", 1, winampIni);
|
||||
recurse = (rofiob & 2) ? false : true;
|
||||
}
|
||||
}
|
||||
|
||||
bool PlaylistDirectoryCallback::ShouldRecurse(const wchar_t *path)
|
||||
{
|
||||
return recurse;
|
||||
}
|
||||
|
||||
bool PlaylistDirectoryCallback::ShouldLoad(const wchar_t *filename)
|
||||
{
|
||||
const wchar_t *ext = PathFindExtensionW(filename);
|
||||
if (!*ext)
|
||||
return false;
|
||||
|
||||
ext++;
|
||||
|
||||
const char *a = extlist;
|
||||
while (a && *a)
|
||||
{
|
||||
if (!lstrcmpiW(AutoWide(a), ext))
|
||||
return true;
|
||||
a += lstrlenA(a) + 1;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#define CBCLASS PlaylistDirectoryCallback
|
||||
START_DISPATCH;
|
||||
CB( IFC_PLAYLISTDIRECTORYCALLBACK_SHOULDRECURSE, ShouldRecurse )
|
||||
CB( IFC_PLAYLISTDIRECTORYCALLBACK_SHOULDLOAD, ShouldLoad )
|
||||
END_DISPATCH;
|
||||
Reference in New Issue
Block a user