diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_nowplaying/handler.cpp | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/Plugins/Library/ml_nowplaying/handler.cpp')
-rw-r--r-- | Src/Plugins/Library/ml_nowplaying/handler.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_nowplaying/handler.cpp b/Src/Plugins/Library/ml_nowplaying/handler.cpp new file mode 100644 index 00000000..2d47a94e --- /dev/null +++ b/Src/Plugins/Library/ml_nowplaying/handler.cpp @@ -0,0 +1,47 @@ +#include "main.h" +#include "service.h" +#include "navigation.h" +#include "handler.h" +#include "../Agave/URIHandler/svc_urihandler.h" +#include <api/service/waservicefactory.h> +#include "api.h" +#include "../ml_online/config.h" +#include "../replicant/nu/Autowide.h" + +int NowPlayingURIHandler::ProcessFilename(const wchar_t *filename) +{ + if (!_wcsnicmp(filename, L"winamp://Now Playing", 20) || !_wcsnicmp(filename, L"winamp://Now%20Playing", 22)) + { + size_t index = 0; + if (filename[12] == L' ') + index = 20; + else + index = 22; + + wchar_t fullUrl[1024] = L"http://client.winamp.com/nowplaying"; + lstrcpynW(fullUrl, AutoWide(g_config->ReadString("nowplayingurl", "http://client.winamp.com/nowplaying")), ARRAYSIZE(fullUrl)); + + if (filename[index] != 0) + { + StringCchCatW(fullUrl, 1024, filename + index); + } + Navigation_ShowService(SERVICE_ID, fullUrl, NAVFLAG_FORCEACTIVE | NAVFLAG_ENSUREMLVISIBLE | NAVFLAG_ENSUREITEMVISIBLE); + return HANDLED_EXCLUSIVE; + } + return NOT_HANDLED; +} + +int NowPlayingURIHandler::IsMine(const wchar_t *filename) +{ + if (!_wcsnicmp(filename, L"winamp://Now Playing", 20 ) || !_wcsnicmp(filename, L"winamp://Now%20Playing", 22)) + return HANDLED; + else + return NOT_HANDLED; +} + +#define CBCLASS NowPlayingURIHandler +START_DISPATCH; +CB(PROCESSFILENAME, ProcessFilename); +CB(ISMINE, IsMine); +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file |