📄 options.c
字号:
int iMixerSelection;
CPe_MixerMode enNewMixerMode;
iMixerSelection = SendDlgItemMessage(hwndDlg, IDC_MIXER, CB_GETCURSEL, 0, 0);
if(iMixerSelection == 0)
enNewMixerMode = mmMasterVolume;
else if(iMixerSelection == 1)
enNewMixerMode = mmWaveVolume;
else
enNewMixerMode = mmInternal;
if(enNewMixerMode != globals.m_enMixerMode)
{
// Change mixer
globals.m_enMixerMode = enNewMixerMode;
CPI_Player__ReopenMixer(globals.m_hPlayer);
// Setup UI
if(enNewMixerMode == mmInternal)
globals.m_iVolume = 100;
else
globals.m_iVolume = CPI_Player__GetVolume(globals.m_hPlayer);
main_draw_vu_from_value(windows.wnd_main, VolumeSlider, globals.m_iVolume);
}
}
if(!duplicatesalreadyremoved && options.allow_file_once_in_playlist)
CPL_RemoveDuplicates(globals.m_hPlaylist);
EndDialog(hwndDlg, 1);
break;
}
case IDC_ONTOP:
break;
case IDC_REGFILETYPE:
{
HKEY result;
DWORD lpdwDisposition;
char pathbuf[MAX_PATH];
char stringval[MAX_PATH + 3];
CPI_Player__AssociateFileExtensions(globals.m_hPlayer);
GetModuleFileName(NULL, pathbuf, MAX_PATH);
sprintf(stringval, "%s,%1d", pathbuf, 1);
RegCreateKeyEx(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_FILETYPE,
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegSetValueEx(result, NULL, 0, REG_SZ,
CIC_COOLPLAYER_FILEDESC, sizeof(CIC_COOLPLAYER_FILEDESC));
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\DefaultIcon",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell", 0,
NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\Open",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\Open\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\"", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\CoolPlayer Queue",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\CoolPlayer Queue\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\" -add", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\CoolPlayer Play",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_FILETYPE "\\Shell\\CoolPlayer Play\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\"", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT, ".m3u", 0, NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegSetValueEx(result, NULL, 0, REG_SZ,
CIC_COOLPLAYER_PLAYLISTFILETYPE, sizeof(CIC_COOLPLAYER_PLAYLISTFILETYPE));
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT, ".pls", 0, NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegSetValueEx(result, NULL, 0, REG_SZ,
CIC_COOLPLAYER_PLAYLISTFILETYPE, sizeof(CIC_COOLPLAYER_PLAYLISTFILETYPE));
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_PLAYLISTFILETYPE,
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegSetValueEx(result, NULL, 0, REG_SZ,
CIC_COOLPLAYER_PLAYLISTFILEDESC, sizeof(CIC_COOLPLAYER_PLAYLISTFILEDESC));
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\DefaultIcon",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "%s,%d", pathbuf, 2);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell", 0,
NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\Open",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\Open\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\"", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\CoolPlayer Queue",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\CoolPlayer Queue\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\" -add", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\CoolPlayer Play",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\CoolPlayer Play\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\"", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
// Folder handlers
RegCreateKeyEx(HKEY_CLASSES_ROOT,
"Folder\\Shell\\CoolPlayer Play",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
"Folder\\Shell\\CoolPlayer Play\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\"", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegCreateKeyEx(HKEY_CLASSES_ROOT,
"Folder\\Shell\\CoolPlayer Queue\\command",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &result,
&lpdwDisposition);
sprintf(stringval, "\"%s\" \"%%1\" -add", pathbuf);
RegSetValueEx(result, NULL, 0, REG_SZ, stringval,
strlen(stringval) + 1);
RegCloseKey(result);
RegDeleteKey(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_FILETYPE "\\Shell\\Enqueue in CoolPlayer\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_FILETYPE "\\Shell\\Enqueue in CoolPlayer\\");
RegDeleteKey(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\Enqueue in CoolPlayer\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, CIC_COOLPLAYER_PLAYLISTFILETYPE "\\Shell\\Enqueue in CoolPlayer\\");
MessageBox(hwndDlg,
"Filetypes are registered.\nYou can doubleclick a supported file to run CoolPlayer.",
"CoolPlayer", MB_ICONINFORMATION);
break;
}
case IDC_ADDICONS:
{
char pathname[MAX_PATH];
char startmenu[MAX_PATH];
char linkname[MAX_PATH];
char linkname2[MAX_PATH];
LPITEMIDLIST ppidl;
int buflen = MAX_PATH;
long vartype = REG_SZ;
GetModuleFileName(NULL, pathname, MAX_PATH);
CoInitialize(NULL);
SHGetSpecialFolderLocation(hwndDlg, CSIDL_STARTMENU,
&ppidl);
SHGetPathFromIDList(ppidl, startmenu);
sprintf(linkname, "%s\\CoolPlayer.lnk", startmenu);
ExpandEnvironmentStrings(linkname, // pointer to string with environment variables
linkname2, // pointer to string with expanded environment
// variables
MAX_PATH);
path_create_link(pathname, linkname2, NULL);
SHGetSpecialFolderLocation(hwndDlg, CSIDL_DESKTOP, &ppidl);
SHGetPathFromIDList(ppidl, startmenu);
sprintf(linkname, "%s\\CoolPlayer.lnk", startmenu);
ExpandEnvironmentStrings(linkname, // pointer to string with environment variables
linkname2, // pointer to string with expanded environment
// variables
MAX_PATH);
path_create_link(pathname, linkname2, NULL);
CoUninitialize();
MessageBox(hwndDlg,
"An icon for CoolPlayer has been created in the StartMenu and Desktop.",
"CoolPlayer", MB_ICONINFORMATION);
break;
}
}
switch (HIWORD(wParam)) {
case CBN_SELENDOK:
{
break;
}
}
}
return FALSE;
}
BOOL window_set_always_on_top(HWND hWnd, BOOL yes)
{
if (yes) {
SetWindowPos(hWnd, // handle to window
HWND_TOPMOST, // placement-order handle
0, // horizontal position
0, // vertical position
0, // width
0, // height
SWP_NOMOVE | SWP_NOSIZE); // window-positioning flags
} else {
SetWindowPos(hWnd, // handle to window
HWND_NOTOPMOST, // placement-order handle
0, // horizontal position
0, // vertical position
0, // width
0, // height
SWP_NOMOVE | SWP_NOSIZE); // window-positioning flags
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -