123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- #ifndef NULLSOFT_IN_CDDA_CDDB_H
- #define NULLSOFT_IN_CDDA_CDDB_H
- #define S_MULTIPLE MATCH_MULTIPLE
- #ifdef IGNORE_API_GRACENOTE
- struct TRACKINFO
- {
- TRACKINFO()
- {
- artist=0;
- title=0;
- genre=0;
- tagID=0;
- composer=0;
- conductor=0;
- extData=0;
- remixing=0;
- isrc=0;
- }
- TRACKINFO(const TRACKINFO ©);
- TRACKINFO &operator =(const TRACKINFO ©);
- ~TRACKINFO();
- void Reset();
- wchar_t *artist;
- wchar_t *title;
- wchar_t *genre;
- wchar_t *tagID;
- wchar_t *composer;
- wchar_t *conductor;
- wchar_t *extData;
- wchar_t *remixing;
- wchar_t *isrc;
- };
- #endif
- struct DINFO
- {
- DINFO()
- {
- label=0;
- notes=0;
- genre=0;
- artist=0;
- year=0;
- tuid=0;
- title=0;
- composer=0;
- conductor=0;
- remixing=0;
- compilation=false;
- discnum=0;
- numdiscs=0;
- ntracks=0;
- CDDBID=0;
- nDiscLength=0;
- populated=false;
- memset(pnFrames, 0, sizeof(pnFrames));
- }
- DINFO(const DINFO ©);
- DINFO &operator =(const DINFO ©);
- ~DINFO();
- void Reset();
- wchar_t *title;
- wchar_t *artist;
- wchar_t *tuid;
- wchar_t *year;
- wchar_t *genre;
- wchar_t *label;
- wchar_t *notes;
- bool compilation;
- int discnum;
- int numdiscs;
- int ntracks;
- wchar_t *conductor;
- wchar_t *composer;
- wchar_t *remixing;
- #ifdef IGNORE_API_GRACENOTE
- TRACKINFO tracks[100];
- #endif
- unsigned int CDDBID;
- unsigned int pnFrames[100];
- unsigned int nDiscLength;
- bool populated;
- };
- extern char config_use_cddb;
- #define CDDB_E_BADTOC 0x82FD0001
- #define CDDB_NONE 0x0000 //
- #define CDDB_NOCACHE 0x1000 //
- #define CDDB_NOINET 0x2000 //
- #define CDDB_RESOLVE_MULTIPLE 0x0001 // selects first
- #define CDDB_UI_MODAL 0x0010 //
- #define CDDB_UI_RESULT_MODAL 0x0020 // result window will stay modal
- #define CDDB_UI_USE_PARENT 0x0040 // instead of creating child window from hwndParent - just reuse hwndParent
- #define CDDB_UI_NOMATCH 0x0100 // displays submit new dialog
- #define CDDB_UI_MULTIPLE 0x0200 // displays multiple choices dialog
- #define AUTOCLOSE_NOW 0x00000000
- #define AUTOCLOSE_NEVER 0xFFFFFFFF
- int GetDiscID(MCIDEVICEID wDeviceID, DINFO* psDI);
- int GetCDDBInfo(DINFO *ps, wchar_t device);
- #include "CDDBInterface.h"
- #ifdef IGNORE_API_GRACENOTE
- class ICddbDisc;
- #endif
- typedef HRESULT (CALLBACK *CDDB_CB)(HRESULT /*result*/, ICddbDisc* /*pDisc*/, DWORD* /*pdwAutoCloseDelay*/, ULONG_PTR /*user*/);
- #ifndef IGNORE_API_GRACENOTE
- HRESULT DoCDDBDlg(DINFO *ps, HWND hwnd, int editopt);
- void GetDiscInfo(ICddbDiscPtr pDisc, DINFO *ps);
- bool GetRole(ICddbTrack *track, BSTR roleId, BSTR *str);
- bool GetRole(ICddbDisc *track, BSTR roleId, BSTR *str);
- extern ICDDBControl *pCDDBControl;
- void InitializeCddbCache(void);
- void UninitializeCddbCache(void);
- #endif
- HRESULT CddbCache_SetDisc(DINFO *pDiscInfo, HRESULT lookupResult);
- void Cddb_Initialize(void);
- void Cddb_Uninitialize(void);
- HRESULT Cddb_InitializeThread(void);
- HRESULT Cddb_UninitializeThread(void);
- LPCWSTR Cddb_CalculateTOC(DINFO *pDisc, LPWSTR pszTOC, size_t cchTOC);
- HRESULT Cddb_DoLookup(LPCWSTR pszTOC, HWND hwndParent, CDDB_CB callback, UINT flags, ULONG_PTR user);
- #ifndef IGNORE_API_GRACENOTE
- void DefaultValues(DINFO *ps);
- #endif
- bool DoCDText(DINFO *ps, wchar_t device);
- HRESULT Cddb_GetIUIOptions(void** ppUIOptions);
- #ifndef IGNORE_API_GRACENOTE
- void ShutDownCDDB();
- HRESULT Cddb_GetDiscFromCache(BSTR bstrTOC, ICddbDisc **ppDisc);
- bool CDEdit(CHAR cDevice, DINFO *ps, HWND hwnd);
- HRESULT Cddb_GetIControl(void **ppControl);
- HRESULT Cddb_GetICacheManger(void **ppCache);
- HRESULT Cddb_DisplayDiscInfo(ICddbDisc *pDisc, CDDBUIFlags *pUIFlags, HWND hwndParent);
- void Cddb_GetResultText(HRESULT hr, LPWSTR pszResult, INT cchResult, LPWSTR pszReason, INT cchReason);
- #endif
- HRESULT Cddb_DisplayResultDlg(HWND hwndParent, HRESULT result, DWORD dwAutoCloseDelay, UINT flags); // flags can be CDDB_MODAL | CDDB_DISPLAY_IN_PARENT
- #ifndef IGNORE_API_GRACENOTE
- // info calls work only in callback
- HWND Cddb_GetInfoWindow(void);
- void Cdbb_DisplayInfo(LPCWSTR pszTitle, LPCWSTR pszCaption, LPCWSTR pszStatus, INT percentCompleted);
- void StoreDisc(unsigned int cddb_id, ICddbDiscPtr pDisc);
- #endif
- bool StoreCDText(unsigned int cddb_id, wchar_t device);
- void StoreCDNoInfo(unsigned int cddb_id);
- bool QueryDINFO(unsigned int cddb_id, DINFO *info);
- //#ifndef IGNORE_API_GRACENOTE
- bool StoreDINFO(unsigned cddb_id, DINFO *info);
- //#endif
- #endif
|