winamp/Src/gracenote/GracenoteApi.h
2024-09-24 14:54:57 +02:00

33 lines
1 KiB
C++

#ifndef NULLSOFT_GRACENOTE_GRACENOTEAPI_H
#define NULLSOFT_GRACENOTE_GRACENOTEAPI_H
#include "api_gracenote.h"
#include "../nu/AutoLock.h"
class GracenoteApi : public api_gracenote
{
public:
GracenoteApi();
~GracenoteApi();
ICDDBControl2 *GetCDDB();
ICDDBMusicIDManager3 *GetMusicID(); // TODO: might need to instantiate separate objects because each manager can only have 1 event handler
//ICddbPlaylist25Mgr *GetPlaylistManager();
//int GetPlaylistManagerWithMLDBManager(ICddbPlaylist25Mgr **playlistMg, ICddbMLDBManager **mldbMgr);
int GetPlaylistManager(ICddbPlaylist25Mgr **playlistMg, ICddbMLDBManager **mldbMgr);
ICddbMLDBManager *GetMLDBManager();
void Close();
/* Some utility functions */
HRESULT CreateFingerprint(ICDDBMusicIDManager *musicID, api_decodefile *decodeApi, ICddbFileInfo *info, const wchar_t *filename, long *killswitch);
private:
bool cddbInitialized, playlistInitialized;
ICDDBControl2 *pCDDBControl;
Nullsoft::Utility::LockGuard cddbGuard;
protected:
RECVS_DISPATCH;
};
extern GracenoteApi gracenoteApi;
#endif