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/Library/ml_plg/AlbumID.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/Library/ml_plg/AlbumID.cpp')
-rw-r--r-- | Src/Plugins/Library/ml_plg/AlbumID.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_plg/AlbumID.cpp b/Src/Plugins/Library/ml_plg/AlbumID.cpp new file mode 100644 index 00000000..2fd6d14b --- /dev/null +++ b/Src/Plugins/Library/ml_plg/AlbumID.cpp @@ -0,0 +1,45 @@ +#include "playlist.h" +#include "main.h" +#include "api__ml_plg.h" +#include "../../General/gen_ml/ml.h" +#include <atlbase.h> +#include "IDScanner.h" + +IConnectionPoint *GetConnectionPoint(IUnknown *punk, REFIID riid) +{ + if (!punk) + return 0; + + IConnectionPointContainer *pcpc; + IConnectionPoint *pcp = 0; + + HRESULT hr = punk->QueryInterface(IID_IConnectionPointContainer, (void **) & pcpc); + if (SUCCEEDED(hr)) + { + pcpc->FindConnectionPoint(riid, &pcp); + pcpc->Release(); + } + return pcp; +} + +bool IDScanner::SetupMusicID() +{ + if (!SetupPlaylistSDK()) + return false; + + if (musicID) + return true; + + musicID = AGAVE_API_GRACENOTE->GetMusicID(); + if (musicID) + { + IConnectionPoint *icp = GetConnectionPoint(musicID, DIID__ICDDBMusicIDManagerEvents); + if (icp) + { + icp->Advise(static_cast<IDispatch *>(this), &m_dwCookie); + icp->Release(); + } + return true; + } + return false; +} |