diff options
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; +} |