From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Library/ml_plg/AlbumID.cpp | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Src/Plugins/Library/ml_plg/AlbumID.cpp (limited to 'Src/Plugins/Library/ml_plg/AlbumID.cpp') 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 +#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(this), &m_dwCookie); + icp->Release(); + } + return true; + } + return false; +} -- cgit