123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #include "main.h"
- #include "playlist.h"
- #include <atlbase.h>
- #include "IDScanner.h"
- #include "api__ml_plg.h"
- static long PlaylistManagerCount()
- {
- ICddbPL2FindDataPtr pFindData;
- ICddbDisc2Ptr pDisc;
- long count =0;
- HRESULT hr = pFindData.CreateInstance(CLSID_CddbPL2FindData);
- if (FAILED(hr))
- return count;
-
- hr = playlistMgr->FindOpen(pFindData);
- if (FAILED(hr))
- return count;
- while (SUCCEEDED(playlistMgr->FindNext(pFindData, &pDisc)))
- {
- count++;
- }
- playlistMgr->FindClose(pFindData);
- return count;
- }
- void IDScanner::Pass1()
- {
-
-
- ICddbPL2FindDataPtr pFindData;
- ICddbDisc2Ptr pDisc;
- HRESULT hr;
- filesTotal = PlaylistManagerCount();
- hr = pFindData.CreateInstance(CLSID_CddbPL2FindData);
- if (FAILED(hr))
- return ;
-
- hr = playlistMgr->FindOpen(pFindData);
- if (FAILED(hr))
- return;
- while (SUCCEEDED(playlistMgr->FindNext(pFindData, &pDisc)))
- {
- if (killswitch)
- break;
- CComBSTR path,filespec;
- wchar_t file[MAX_PATH] = {0};
- CComBSTR phase;
- pDisc->GetProperty(PROP_Default, PLM_Filename, &filespec);
- pDisc->GetProperty(PROP_Default, PLM_Pathname, &path);
- PathCombineW(file, path, filespec);
- playlistMgr->FileGetFieldVal(file, gnpl_crit_field_xdev1, &phase);
- if (phase && phase[0] && phase[0]=='1')
- {
- wchar_t gracenoteFileId[256]=L"";
- if (GetFileInfo(file, L"GracenoteFileID", gracenoteFileId, 256) && gracenoteFileId[0])
- {
- wchar_t gracenoteExtData[65536]=L"";
- GetFileInfo(file, L"GracenoteExtData", gracenoteExtData, 65536);
-
- AGAVE_API_MLDB->SetField(file, "GracenoteFileID", gracenoteFileId);
- if (gracenoteExtData[0]) AGAVE_API_MLDB->SetField(file, "GracenoteExtData", gracenoteExtData);
- SetGracenoteData(file, gracenoteFileId, gracenoteExtData);
- playlistMgr->FileSetFieldVal(file, gnpl_crit_field_xdev1, L"0");
- }
- else
- {
- playlistMgr->FileSetFieldVal(file, gnpl_crit_field_xdev1, L"2");
- }
- }
- filesComplete++;
- }
- playlistMgr->FindClose(pFindData);
- }
|