diff options
author | winampgit <github@winamp.com> | 2024-09-27 08:32:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-27 08:32:58 +0200 |
commit | 5b91e3f697cb6a484b6a63d4fe529e4e15f6dd19 (patch) | |
tree | 1f14e8e1d4a93c9379e2731ef0d967add426546f /Src/Plugins/Input/in_vorbis/config.cpp | |
parent | Update README.md (diff) | |
download | winamp-community.tar winamp-community.tar.gz winamp-community.tar.bz2 winamp-community.tar.lz winamp-community.tar.xz winamp-community.tar.zst winamp-community.zip |
Diffstat (limited to 'Src/Plugins/Input/in_vorbis/config.cpp')
-rw-r--r-- | Src/Plugins/Input/in_vorbis/config.cpp | 335 |
1 files changed, 0 insertions, 335 deletions
diff --git a/Src/Plugins/Input/in_vorbis/config.cpp b/Src/Plugins/Input/in_vorbis/config.cpp deleted file mode 100644 index fc3d6afdc..000000000 --- a/Src/Plugins/Input/in_vorbis/config.cpp +++ /dev/null @@ -1,335 +0,0 @@ -#include "main.h" -#include "api__in_vorbis.h" -#include "../nu/ns_wc.h" -#include <commctrl.h> -#include <shlobj.h> -#include "../winamp/wa_ipc.h" -#include "../nu/AutoChar.h" -#include <strsafe.h> - -int mc6_dm_names_ids[]={IDS_LEAVE_AS_IS,IDS_REMAP_6_CHANNELS,IDS_DOWNMIX_TO_4_CHANNELS,IDS_DOWNMIX_TO_2_CHANNELS_DS,IDS_DOWNMIX_TO_2_CHANNELS_DS2,IDS_DOWNMIX_TO_MONO}; -int mc6_map_names_id[]={IDS_CORRECT_FL_FC_FR_BL_BR_LFE,IDS_BROKEN_FL_FR_FC_BL_BR_LFE}; -int32_t priority_tab[7]={THREAD_PRIORITY_IDLE,THREAD_PRIORITY_LOWEST,THREAD_PRIORITY_BELOW_NORMAL,THREAD_PRIORITY_NORMAL,THREAD_PRIORITY_ABOVE_NORMAL,THREAD_PRIORITY_HIGHEST,THREAD_PRIORITY_TIME_CRITICAL}; - -char* defaultDumpDir() -{ - static char dumpdir[MAX_PATH] = {0}; - if(FAILED(SHGetFolderPathA(NULL, CSIDL_MYMUSIC, NULL, SHGFP_TYPE_CURRENT, dumpdir))) - { - if(FAILED(SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, dumpdir))) - { - lstrcpynA(dumpdir, "C:\\", MAX_PATH); - } - } - return dumpdir; -} - -CfgString - cfg_ssave_format("ssave_format","%filename%"), - cfg_dumpdir("dumpdir",defaultDumpDir()); - -CfgInt - cfg_http_bsize("http_bsize",0x10000), - cfg_fsave("fsave",0), - cfg_abr("abr",0), - cfg_proxy_mode("proxy_mode",2), - cfg_prebuf1("prebuf1",50), - cfg_prebuf2("prebuf2",75), - cfg_httpseek2("httpseek2",0), - cfg_fix0r("fix0r",1), - cfg_mc6_dm("mc6_dm",0), - cfg_mc6_map("_mc6_map",0), - cfg_remember_infosize("remember_infosize",1), - cfg_fullbuf("fullbuf",0), - cfg_cur_tab("cur_tab",0); - -static int old_preamp; -CfgFont cfg_font("font"); -static LOGFONT cfg_font_edit; - -BOOL CALLBACK browseEnumProc(HWND hwnd, LPARAM lParam) -{ - char cl[32] = {0}; - GetClassNameA(hwnd, cl, ARRAYSIZE(cl)); - if (!lstrcmpiA(cl, WC_TREEVIEWA)) - { - PostMessage(hwnd, TVM_ENSUREVISIBLE, 0, (LPARAM)TreeView_GetSelection(hwnd)); - return FALSE; - } - - return TRUE; -} - -static int CALLBACK browzaproc(HWND hwnd, UINT msg, LPARAM lp, LPARAM dat) -{ - if (msg == BFFM_INITIALIZED) - { - SendMessageW(hwnd, BFFM_SETSELECTIONW, 1, (LPARAM)dat); - - // this is not nice but it fixes the selection not working correctly on all OSes - EnumChildWindows(hwnd, browseEnumProc, 0); - } - return 0; -} - -static void d_browza(HWND wnd,HWND bt,wchar_t* tx) -{ - IMalloc* pMalloc=0; - - SHGetMalloc(&pMalloc); - if (!pMalloc) return; - - wchar_t dir[MAX_PATH] = {0}; - GetWindowTextW(bt,dir,MAX_PATH); - BROWSEINFOW bi= - { - wnd, - 0, - 0, - tx, - BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE, - browzaproc, - (LPARAM)dir, - 0 - }; - ITEMIDLIST* li=SHBrowseForFolderW(&bi); - if (li) - { - SHGetPathFromIDListW(li,dir); - SetWindowTextW(bt,dir); - pMalloc->Free(li); - } - - pMalloc->Release(); -} - -static BOOL CALLBACK CfgProc1(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) -{ - switch(msg) - { - case WM_INITDIALOG: - { - wchar_t temp[128] = {0}, cfg_dialog_name[128] = {0}; - StringCchPrintfW(cfg_dialog_name,128,WASABI_API_LNGSTRINGW(IDS_TITLE_PREFERENCES), - WASABI_API_LNGSTRINGW_BUF(IDS_NULLSOFT_VORBIS_DECODER_OLD, temp, 128)); - SetWindowTextW(wnd,cfg_dialog_name); - - SendDlgItemMessage(wnd,IDC_FULLBUF,BM_SETCHECK,cfg_fullbuf,0); - - UINT n; - HWND w=GetDlgItem(wnd,IDC_MC6_DM); - for(n=0;n<sizeof(mc6_dm_names_ids)/sizeof(mc6_dm_names_ids[0]);n++) - { - SendMessageW(w,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(mc6_dm_names_ids[n])); - } - SendMessage(w,CB_SETCURSEL,cfg_mc6_dm,0); - - w=GetDlgItem(wnd,IDC_MC6_MAP); - for(n=0;n<sizeof(mc6_map_names_id)/sizeof(mc6_map_names_id[0]);n++) - { - SendMessageW(w,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(mc6_map_names_id[n])); - } - SendMessage(w,CB_SETCURSEL,cfg_mc6_map,0); - - SendDlgItemMessage(wnd,IDC_AVG_BR,BM_SETCHECK,cfg_abr,0); - - SetDlgItemInt(wnd,IDC_HTTP_BSIZE,cfg_http_bsize>>10,0); - if (cfg_fsave) SendDlgItemMessage(wnd,IDC_FSAVE,BM_SETCHECK,1,0); - if (cfg_fix0r) SendDlgItemMessage(wnd,IDC_FIX0R,BM_SETCHECK,1,0); - cfg_dumpdir.s_SetDlgItemText(wnd,IDC_STREAM_SAVE); - w=GetDlgItem(wnd,IDC_PROXY); - SendMessageW(w,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(IDS_NEVER)); - SendMessageW(w,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(IDS_PORT_80_ONLY)); - SendMessageW(w,CB_ADDSTRING,0,(LPARAM)WASABI_API_LNGSTRINGW(IDS_ALWAYS)); - SendMessage(w,CB_SETCURSEL,cfg_proxy_mode,0); - - w=GetDlgItem(wnd,IDC_SLIDER1); - SendMessage(w,TBM_SETRANGE,0,MAKELONG(1,100)); - SendMessage(w,TBM_SETPOS,1,cfg_prebuf1); - w=GetDlgItem(wnd,IDC_SLIDER2); - SendMessage(w,TBM_SETRANGE,0,MAKELONG(1,100)); - SendMessage(w,TBM_SETPOS,1,cfg_prebuf2); - - cfg_ssave_format.s_SetDlgItemText(wnd,IDC_SSAVE_FMT); - SendMessage(wnd,WM_COMMAND,MAKEWPARAM(IDC_FSAVE,BN_CLICKED),(LPARAM)GetDlgItem(wnd,IDC_FSAVE)); - } - return 1; - - case WM_COMMAND: - switch(LOWORD(wp)) - { - case IDC_STREAM_SAVE: - d_browza(wnd,(HWND)lp,WASABI_API_LNGSTRINGW(IDS_SELECT_OUTPUT_DIRECTORY)); - break; - - case IDC_SSAVE_FMT_DEF: - SetDlgItemText(wnd,IDC_SSAVE_FMT,L"%filename%"); - break; - - case IDC_FSAVE: - { - int checked = IsDlgButtonChecked(wnd,IDC_FSAVE); - EnableWindow(GetDlgItem(wnd,IDC_STREAM_SAVE),checked); - EnableWindow(GetDlgItem(wnd,IDC_SSAVE_FMT),checked); - EnableWindow(GetDlgItem(wnd,IDC_SSAVE_FMT_DEF),checked); - } - break; - - case IDOK: - case IDCANCEL: - { - if (LOWORD(wp) == IDOK) - { - cfg_fullbuf=(int)SendDlgItemMessage(wnd,IDC_FULLBUF,BM_GETCHECK,0,0); - - cfg_mc6_dm=(int)SendDlgItemMessage(wnd,IDC_MC6_DM,CB_GETCURSEL,0,0); - cfg_mc6_map=(int)SendDlgItemMessage(wnd,IDC_MC6_MAP,CB_GETCURSEL,0,0); - - cfg_abr=(int)SendDlgItemMessage(wnd,IDC_AVG_BR,BM_GETCHECK,0,0); - - cfg_dumpdir.s_GetDlgItemText(wnd,IDC_STREAM_SAVE); - cfg_http_bsize=GetDlgItemInt(wnd,IDC_HTTP_BSIZE,0,0)<<10; - cfg_fsave=(int)SendDlgItemMessage(wnd,IDC_FSAVE,BM_GETCHECK,0,0); - cfg_fix0r=(int)SendDlgItemMessage(wnd,IDC_FIX0R,BM_GETCHECK,0,0); - cfg_proxy_mode=(int)SendDlgItemMessage(wnd,IDC_PROXY,CB_GETCURSEL,0,0); - cfg_prebuf1=(int)SendDlgItemMessage(wnd,IDC_SLIDER1,TBM_GETPOS,0,0); - cfg_prebuf2=(int)SendDlgItemMessage(wnd,IDC_SLIDER2,TBM_GETPOS,0,0); - cfg_ssave_format.s_GetDlgItemText(wnd,IDC_SSAVE_FMT); - } - do_cfg(1); - EndDialog(wnd,(LOWORD(wp) == IDOK)); - } - break; - } - break; - } - - const int controls[] = - { - IDC_SLIDER1, - IDC_SLIDER2, - }; - if (FALSE != WASABI_API_APP->DirectMouseWheel_ProcessDialogMessage(wnd, msg, wp, lp, controls, ARRAYSIZE(controls))) - { - return TRUE; - } - - return 0; -} - -extern HANDLE hThread;//hack - -void Config(HWND p) -{ - if (WASABI_API_DIALOGBOXPARAMW(IDD_CONFIG,p,CfgProc1,0)) - { - if (hThread) PostMessage(mod.hMainWindow,WM_USER,0,243); - } -} - -int CfgVar::read_int(const char *inifile, const char *section,const char * name,int def) -{ - return GetPrivateProfileIntA(section, name, def, inifile); -} - -void CfgVar::write_int(const char *inifile, const char *section, const char * name,int val) -{ - char temp[32] = {0}; - StringCchPrintfA(temp, 32, "%d", val); - WritePrivateProfileStringA(section, name, temp, inifile); -} - -void CfgVar::write_struct(const char *inifile, const char *section, const char * name, void * ptr,UINT size) -{ - WritePrivateProfileStructA("in_vorbis", name, ptr, size, INI_FILE); -} - -bool CfgVar::read_struct(const char *inifile, const char *section, const char * name,void * ptr,UINT size) -{ - return !!GetPrivateProfileStructA("in_vorbis", name, ptr, size, INI_FILE); -} - -void do_cfg(int s) -{ - #define CFG_VERSION 0x10204 - - if (!s) - { - if (CfgVar::read_int(INI_FILE, "in_vorbis", "version",0)==CFG_VERSION) - CfgVar::ReadConfig(); - } - else - { - CfgVar::WriteConfig(); - CfgVar::write_int(INI_FILE, "in_vorbis", "version",CFG_VERSION); - } -} - -CfgVar * CfgVar::list=0; - -void CfgVar::ReadConfig() -{ - CfgVar * p=list; - while(p) - { - p->Read(p->name); - p=p->next; - } -} - -void CfgVar::WriteConfig() -{ - CfgVar * p=list; - while(p) - { - p->Write(p->name); - p=p->next; - } -} - -bool StringW::reg_read(const char * name) -{ - char utf8_data[2048] = {0}; - wchar_t utf16_data[2048] = {0}; - GetPrivateProfileStringA("in_vorbis", name, "@default@", utf8_data, 2048, INI_FILE); - if (!strcmp("@default@", utf8_data)) - return false; - - MultiByteToWideCharSZ(CP_UTF8, 0, utf8_data, -1, utf16_data, 2048); - SetString(utf16_data); - - return true; -} - -void StringW::reg_write(const char * name) -{ - WritePrivateProfileStringA("in_vorbis", name, AutoChar((const WCHAR *)*this, CP_UTF8), INI_FILE); -} - -void CfgString::Read(const char * name) -{ - reg_read(name); -} - -void CfgString::Write(const char * name) -{ - StringW temp; - if (temp.reg_read(name)) - { - if (wcscmp(temp,*this)) reg_write(name); - } - else - { - if (wcscmp(def,*this)) reg_write(name); - } -} - -void CfgInt::Write(const char * name) -{ - if (read_int(INI_FILE, "in_vorbis", name,def)!=value) write_int(INI_FILE, "in_vorbis",name,value); -} - -void CfgInt::Read(const char * name) -{ - value=read_int(INI_FILE, "in_vorbis", name,def); -}
\ No newline at end of file |