Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
261
Src/Plugins/Input/in_cdda/CONFIG.Cpp
Normal file
261
Src/Plugins/Input/in_cdda/CONFIG.Cpp
Normal file
|
@ -0,0 +1,261 @@
|
|||
#include "main.h"
|
||||
#ifndef IGNORE_API_GRACENOTE
|
||||
#include "cddb.h"
|
||||
#else
|
||||
extern char config_use_cddb;
|
||||
//char config_use_cddb = 0;
|
||||
#endif
|
||||
#include "api__in_cdda.h"
|
||||
#include "../winamp/wa_ipc.h"
|
||||
|
||||
//int config_sample=1;
|
||||
//int config_use_veritas=1;
|
||||
//int config_rip_veritas=1;
|
||||
//int config_maxextractspeed=4;
|
||||
//int config_offset=0;
|
||||
//int config_read_leadin=0;
|
||||
|
||||
//int config_rip_buffersize=24;
|
||||
//int config_rip_buffers=256;
|
||||
|
||||
//int config_play_buffersize=1;
|
||||
//int config_play_buffers=256;
|
||||
|
||||
char *INI_FILE = 0;
|
||||
char app_name[] = "CDDA/Line Input Driver";
|
||||
|
||||
static int _r_i(char *name, int def)
|
||||
{
|
||||
name += 7;
|
||||
return GetPrivateProfileIntA(app_name, name, def, INI_FILE);
|
||||
}
|
||||
|
||||
#define RI(x) (( x ) = _r_i(#x,( x )))
|
||||
|
||||
static void _w_i(char *name, int d)
|
||||
{
|
||||
char str[120] = {0};
|
||||
wsprintfA(str, "%d", d);
|
||||
name += 7;
|
||||
WritePrivateProfileStringA(app_name, name, str, INI_FILE);
|
||||
}
|
||||
#define WI(x) _w_i(#x,( x ))
|
||||
|
||||
void config_read()
|
||||
{
|
||||
INI_FILE = (char*)SendMessage(line.hMainWindow, WM_WA_IPC, 0, IPC_GETINIFILE);
|
||||
//RI(config_sample);
|
||||
RI(config_use_cddb);
|
||||
/*RI(config_use_veritas);
|
||||
config_rip_veritas=config_use_veritas;
|
||||
RI(config_rip_veritas);*/
|
||||
//RI(config_maxextractspeed);
|
||||
|
||||
//RI(config_offset);
|
||||
|
||||
//RI(config_rip_buffersize);
|
||||
//RI(config_rip_buffers);
|
||||
|
||||
//RI(config_play_buffersize);
|
||||
//RI(config_play_buffers);
|
||||
//RI(config_read_leadin);
|
||||
}
|
||||
|
||||
void config_write()
|
||||
{
|
||||
//WI(config_sample);
|
||||
WI(config_use_cddb);
|
||||
//WI(config_use_veritas);
|
||||
//WI(config_rip_veritas);
|
||||
//WI(config_maxextractspeed);
|
||||
}
|
||||
|
||||
// TODO need to review all of this!!!
|
||||
#if 0
|
||||
BOOL CALLBACK ripConfigProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
//if (config_rip_veritas) CheckDlgButton(hwndDlg,IDC_VERITAS,BST_CHECKED);
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"0.5x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"1x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"2x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"4x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"8x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)L"16x");
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(IDS_UNLIMITED));
|
||||
|
||||
if (config_maxextractspeed<0)config_maxextractspeed=0;
|
||||
if (config_maxextractspeed>6)config_maxextractspeed=6;
|
||||
//if (config_maxextractspeed > 4 && getRegVer() < 1) config_maxextractspeed=4;
|
||||
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_SETCURSEL,config_maxextractspeed,0);
|
||||
return 0;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
/*case IDC_VERITAS:
|
||||
config_rip_veritas = IsDlgButtonChecked(hwndDlg,IDC_VERITAS)?1:0;
|
||||
break;*/
|
||||
case IDC_COMBO1:
|
||||
{
|
||||
int x=(INT)SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_GETCURSEL,0,0);
|
||||
if (x != CB_ERR)
|
||||
{
|
||||
if (x<0)x=0;
|
||||
if (x>6)x=6;
|
||||
/*if (x > 4 && getRegVer() < 1)
|
||||
{
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMBO1,CB_SETCURSEL,4,0);
|
||||
x=4;
|
||||
config_maxextractspeed=x;
|
||||
wchar_t title[64] = {0};
|
||||
if (MessageBoxW(hwndDlg,WASABI_API_LNGSTRINGW(IDS_PURCHASE_WINAMP_PRO_PROMPT),
|
||||
WASABI_API_LNGSTRINGW_BUF(IDS_WINAMP_PRO_FEATURE,title,64),MB_YESNO) == IDYES)
|
||||
{
|
||||
SendMessage(line.hMainWindow,WM_WA_IPC,0,IPC_GETREGISTEREDVERSION);
|
||||
}
|
||||
}
|
||||
else*/ config_maxextractspeed=x;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
case WM_DESTROY:
|
||||
config_write();
|
||||
return FALSE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static long cddbResourceID=202;
|
||||
static long cddbMaxFrames=46;
|
||||
static long cddbHeight=80, cddbWidth=80;
|
||||
static HMODULE cddbUI = 0;
|
||||
|
||||
|
||||
static bool GetUI()
|
||||
{
|
||||
#ifndef IGNORE_API_GRACENOTE
|
||||
ICddbUIOptions *pUIOptions;
|
||||
if (SUCCEEDED(Cddb_GetIUIOptions((void**)&pUIOptions)))
|
||||
{
|
||||
if (SUCCEEDED(pUIOptions->GetCurrent(UI_DISP_PROGRESS))) // not sure what this does, but it seems to be required
|
||||
{
|
||||
pUIOptions->get_ProgressResourceID(&cddbResourceID);
|
||||
pUIOptions->get_Frames(&cddbMaxFrames);
|
||||
pUIOptions->get_Bottom(&cddbHeight);
|
||||
pUIOptions->get_Right(&cddbWidth);
|
||||
pUIOptions->get_ResourceHINSTANCE((long *)&cddbUI);
|
||||
}
|
||||
pUIOptions->Release();
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
static HANDLE cddbImage =0;
|
||||
static int cddbFrame = 0;
|
||||
|
||||
BOOL CALLBACK ConfigProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_DRAWITEM:
|
||||
if (wParam == IDC_CDDBICON)
|
||||
{
|
||||
DRAWITEMSTRUCT *drawItem = (DRAWITEMSTRUCT *) lParam;
|
||||
if (cddbImage)
|
||||
{
|
||||
HDC hdcbm = CreateCompatibleDC(drawItem->hDC);
|
||||
HGDIOBJ old = SelectObject(hdcbm, cddbImage);
|
||||
BitBlt(drawItem->hDC, 0, 0, cddbWidth, cddbHeight, hdcbm, (cddbFrame * cddbWidth), 0, SRCCOPY);
|
||||
SelectObject(hdcbm, old);
|
||||
DeleteDC(hdcbm);
|
||||
}
|
||||
else
|
||||
{
|
||||
RECT r={0,0,cddbWidth,cddbHeight};
|
||||
FillRect(drawItem->hDC, &r, (HBRUSH)GetStockObject(GRAY_BRUSH));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
cddbImage=0;
|
||||
break;
|
||||
|
||||
case WM_INITDIALOG:
|
||||
cddbFrame=0;
|
||||
cddbImage=0;
|
||||
{
|
||||
IUnknown *pUnknown = NULL;
|
||||
#ifndef IGNORE_API_GRACENOTE
|
||||
Cddb_GetIControl((void**)&pUnknown);
|
||||
#endif
|
||||
if (!pUnknown)
|
||||
{
|
||||
ShowWindow(GetDlgItem(hwndDlg,IDC_CDDBNOTE),SW_SHOWNA);
|
||||
ShowWindow(GetDlgItem(hwndDlg,IDC_CDDB),SW_HIDE);
|
||||
ShowWindow(GetDlgItem(hwndDlg,IDC_CDDBICON),SW_HIDE);
|
||||
}
|
||||
else pUnknown->Release();
|
||||
}
|
||||
|
||||
//if (config_sample) CheckDlgButton(hwndDlg,IDC_SAMPLE,BST_CHECKED);
|
||||
if (config_use_cddb&1) CheckDlgButton(hwndDlg,IDC_CDDB,BST_CHECKED);
|
||||
//if (config_use_veritas) CheckDlgButton(hwndDlg,IDC_VERITAS,BST_CHECKED);
|
||||
|
||||
if ((config_use_cddb&1) && GetUI())
|
||||
{
|
||||
cddbImage = LoadImage(cddbUI, MAKEINTRESOURCE(cddbResourceID), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE);
|
||||
SetTimer(hwndDlg, 2, 65, NULL);
|
||||
}
|
||||
SetWindowPos(GetDlgItem(hwndDlg, IDC_CDDBICON), 0, 0, 0, cddbWidth, cddbHeight, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOZORDER);
|
||||
return TRUE;
|
||||
|
||||
case WM_TIMER:
|
||||
switch (wParam)
|
||||
{
|
||||
case 2:
|
||||
if (cddbFrame < cddbMaxFrames-1)
|
||||
{
|
||||
cddbFrame++;
|
||||
InvalidateRect(GetDlgItem(hwndDlg, IDC_CDDBICON), 0, TRUE);
|
||||
}
|
||||
else
|
||||
KillTimer(hwndDlg, 2);
|
||||
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_CDDBICON:
|
||||
if (HIWORD(wParam) == STN_CLICKED) SendMessage(line.hMainWindow, WM_WA_IPC, (WPARAM)L"http://www.cddb.com/", IPC_OPEN_URL);
|
||||
return 0;
|
||||
case IDOK:
|
||||
//config_sample = IsDlgButtonChecked(hwndDlg,IDC_SAMPLE)?1:0;
|
||||
config_use_cddb = IsDlgButtonChecked(hwndDlg,IDC_CDDB)?1:0;
|
||||
//config_use_veritas = IsDlgButtonChecked(hwndDlg,IDC_VERITAS)?1:0;
|
||||
config_write();
|
||||
case IDCANCEL:
|
||||
EndDialog(hwndDlg,1);
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void config(HWND hwndParent)
|
||||
{
|
||||
WASABI_API_DIALOGBOXW(IDD_DIALOG1,hwndParent,ConfigProc);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue