123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #include "main.h"
- #include "./preferences.h"
- #include "../winamp/wa_ipc.h"
- #include "./resource.h"
- #include "./api__ml_online.h"
- #include "./config.h"
- #include <windows.h>
- #include <shlobj.h>
- static prefsDlgRecW preferences;
- extern C_Config *g_config;
- static INT_PTR CALLBACK Preferences_DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
- BOOL Preferences_Register()
- {
- WCHAR szBuffer[256] = {0};
- WASABI_API_LNGSTRINGW_BUF(IDS_ONLINE_SERVICES, szBuffer, ARRAYSIZE(szBuffer));
- preferences.hInst = WASABI_API_LNG_HINST;
- preferences.dlgID = IDD_OMPREF;
- preferences.proc = (void *)Preferences_DialogProc;
- preferences.name = Plugin_CopyString(szBuffer);
- preferences.where = 6; // Media Library
- return (BOOL)SENDWAIPC(Plugin_GetWinamp(), IPC_ADD_PREFS_DLGW, &preferences);
- }
- void Preferences_Unregister()
- {
- SENDWAIPC(Plugin_GetWinamp(), IPC_REMOVE_PREFS_DLG, &preferences);
- }
- BOOL Preferences_Show()
- {
- return (BOOL)SENDWAIPC(Plugin_GetWinamp(), IPC_OPENPREFSTOPAGE, &preferences);
- }
- static INT_PTR CALLBACK Preferences_DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- switch(uMsg)
- {
- case WM_INITDIALOG:
- {
- CheckDlgButton(hwndDlg,IDC_AUTOSIZE,g_config->ReadInt("AutoSize",1));
- char tmp[64] = {0};
- wsprintfA(tmp,"%i",g_config->ReadInt("maxbandwidth", MAXBANDWIDTH ));
- SetDlgItemTextA(hwndDlg,IDC_RADIO_MAXBW,tmp);
- wsprintfA(tmp,"%i",g_config->ReadInt("minbandwidth",1));
- SetDlgItemTextA(hwndDlg,IDC_RADIO_MINBW,tmp);
- int radiofreq=g_config->ReadInt("radio_upd_freq",0);
- CheckDlgButton(hwndDlg,radiofreq==0?IDC_RADIO_HOURLY:radiofreq==1?IDC_RADIO_DAILY:radiofreq==2?IDC_RADIO_WEEKLY:IDC_RADIO_NEVER,BST_CHECKED);
- SetDlgItemTextA(hwndDlg, IDC_NOWPLAYINGURL, g_config->ReadString("nowplayingurl",""));
- }
- break;
- case WM_COMMAND:
- switch(LOWORD(wParam))
- {
- case IDC_AUTOSIZE:
- g_config->WriteInt("AutoSize",IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- break;
- case IDC_RADIO_NEVER:
- case IDC_RADIO_DAILY:
- case IDC_RADIO_WEEKLY:
- case IDC_RADIO_HOURLY:
- {
- int radiofreq=0;
- if(IsDlgButtonChecked(hwndDlg,IDC_RADIO_NEVER)) radiofreq=3;
- if(IsDlgButtonChecked(hwndDlg,IDC_RADIO_DAILY)) radiofreq=1;
- if(IsDlgButtonChecked(hwndDlg,IDC_RADIO_WEEKLY)) radiofreq=2;
- if(IsDlgButtonChecked(hwndDlg,IDC_RADIO_HOURLY)) radiofreq=0;
- g_config->WriteInt("radio_upd_freq",radiofreq);
- }
- break;
- case IDC_NOWPLAYINGURL:
- if (HIWORD(wParam) == EN_CHANGE)
- {
- char nowplayingurl[1024] = {0};
- GetDlgItemTextA(hwndDlg, IDC_NOWPLAYINGURL, nowplayingurl, ARRAYSIZE(nowplayingurl));
- g_config->WriteString("nowplayingurl",nowplayingurl);
- }
- break;
- }
- break;
- case WM_DESTROY:
- {
- char tmp[64]={0,};
- GetDlgItemTextA(hwndDlg,IDC_RADIO_MAXBW,tmp,sizeof(tmp)-1);
- int x = atoi(tmp);
- if ( x < 2 ) x = 2;
- g_config->WriteInt("maxbandwidth",x);
- GetDlgItemTextA(hwndDlg,IDC_RADIO_MINBW,tmp,sizeof(tmp)-1);
- int y = atoi(tmp);
- if ( y < 1 ) y = 1;
- if ( y > x ) y = x-1;
- g_config->WriteInt("minbandwidth",y);
- }
- break;
- }
- return 0;
- }
|