📄 trayctl.cpp.svn-base
字号:
else if (a != 3 && SendMessage(hwnd,WM_USER,0,105) > 2000) // restart { SendMessage(hwnd,WM_COMMAND,40045,0); } else { // prev SendMessage(hwnd,WM_COMMAND,40044,0); } return 0; case 1: if ((a=SendMessage(hwnd,WM_USER,0,104)) != 1) // not playing, let's // hit play { SendMessage(hwnd,WM_COMMAND,40045,0); } else { // prev SendMessage(hwnd,WM_COMMAND,40046,0); } return 0; case 2: if (GetKeyState(VK_SHIFT) & (1<<15)) SendMessage(hwnd,WM_COMMAND,40147,0); else SendMessage(hwnd,WM_COMMAND,40047,0); return 0; case 3: SendMessage(hwnd,WM_COMMAND,40048,0); return 0; case 4: SetForegroundWindow(hwnd); if (GetKeyState(VK_CONTROL) & (1<<15)) SendMessage(hwnd,WM_COMMAND,40185,0); else if (GetKeyState(VK_SHIFT) & (1<<15)) SendMessage(hwnd,WM_COMMAND,40187,0); else SendMessage(hwnd,WM_COMMAND,40029,0); return 0; } return 0;#endif } }#endif return CallWindowProc((WNDPROC)lpWndProcOld,hwnd,message,wParam,lParam);}// ---------------------------------------------------------------------------BOOL CALLBACK ChannelsProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam){ return false;} // ---------------------------------------------------------------------------int init(){ static char c[512]; char *p; GetModuleFileName(plugin.hDllInstance,pluginFilename,sizeof(pluginFilename)); p = pluginFilename+lstrlen(pluginFilename); while (p >= pluginFilename && *p != '\\') p--; wsprintf((plugin.description=c),"%s (%s)",szAppName,p+1); strcpy(iniFilename,pluginFilename); p=iniFilename+lstrlen(iniFilename); while (p >= iniFilename && *p != '\\') p--; if (++p >= iniFilename) *p = 0; lstrcat(iniFilename,"peercast.ini"); peercastInst = new MyPeercastInst(); peercastApp = new MyPeercastApp(); peercastInst->init(); broadcastName[0]=0; config_read(); if (!numRuns) config(); showMiniBrowser(); lpWndProcOld = (void *) GetWindowLong(plugin.hwndParent,GWL_WNDPROC); SetWindowLong(plugin.hwndParent,GWL_WNDPROC,(long)WndProc); //Icon = LoadIcon(plugin.hDllInstance,MAKEINTRESOURCE(IDI_ICON6));// systray_add(plugin.hwndParent,0,Icon,"PeerCast");// static ThreadInfo plsThread;// plsThread.func = playlistThread;// sys->startThread(&plsThread); //config();#if 0 char pfPath[256]; HKEY hKey; DWORD dwType, dwSize; LRESULT lnResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("\\Software\\Microsoft\\Windows\\CurrentVersion"),0, KEY_READ,&hKey); if (lnResult == ERROR_SUCCESS) { dwType = REG_SZ; dwSize = sizeof(pfPath); RegQueryValueEx(hKey, TEXT("ProgramFilesDir"), NULL, &dwType, (PBYTE)&pfPath, &dwSize); LOG("PATH %s",pfPath); }else LOG("PATH not found");#endif return 0;}// -----------------------------------------------------void setOnAirControls(bool on){ enableControl(IDC_EDIT2,on); enableControl(IDC_EDIT3,on); enableControl(IDC_EDIT4,on); enableControl(IDC_RADIO1,on); enableControl(IDC_RADIO2,on); enableControl(IDC_RADIO3,on);}static bool oldOnAir = false;// -----------------------------------------------------BOOL CALLBACK ConfigProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam){ switch (uMsg) { case WM_INITDIALOG: { configWin = hwndDlg; setEditInt(IDC_EDIT1,peercastInst->getServerPort()); setButtonState(IDC_ACTIVE,peercastInst->getActive()); setButtonState(IDC_CHECK2,autoPlaylistUpdate); setEditStr(IDC_EDIT5,(char *)peercastInst->getServerPassword()); setEditStr(IDC_EDIT2,broadcastName); setEditStr(IDC_EDIT3,broadcastGenre); setEditStr(IDC_EDIT4,broadcastURL); setEditInt(IDC_EDIT6,peercastInst->getMaxOutput()); setButtonState(IDC_CHECK1,showChans); setButtonState(IDC_CHECK4,broadcastManual); enableControl(IDC_CHECK3,!broadcastManual); setButtonState(IDC_CHECK3,onAir); setOnAirControls((!onAir) && (!broadcastManual)); setButtonState(IDC_RADIO2+broadcastQuality,true); oldOnAir = onAir; } return FALSE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BUTTON1: peercastInst->callLocalURL("admin?page=settings"); break; case IDC_SPEED1: setEditInt(IDC_EDIT6,32); break; case IDC_SPEED2: setEditInt(IDC_EDIT6,128); break; case IDC_SPEED3: setEditInt(IDC_EDIT6,256); break; case IDC_SPEED4: setEditInt(IDC_EDIT6,512); break; case IDC_RADIO1: case IDC_RADIO2: case IDC_RADIO3: broadcastQuality = LOWORD(wParam)-IDC_RADIO2; return false; case IDC_CHECK4: broadcastManual = getButtonState(IDC_CHECK4); enableControl(IDC_CHECK3,!broadcastManual); setOnAirControls((!onAir) && (!broadcastManual)); return false; case IDC_CHECK3: onAir = getButtonState(IDC_CHECK3); setOnAirControls((!onAir) && (!broadcastManual)); return false; case IDC_APPLY: case IDC_OK: { int p = getEditInt(IDC_EDIT1); if (p != peercastInst->getServerPort()) peercastInst->setServerPort(p); } peercastInst->setActive(getButtonState(IDC_ACTIVE)); autoPlaylistUpdate = getButtonState(IDC_CHECK2); peercastInst->setServerPassword(getEditStr(IDC_EDIT5)); peercastInst->setMaxOutput(getEditInt(IDC_EDIT6)); showChans = getButtonState(IDC_CHECK1); strcpy(broadcastName,getEditStr(IDC_EDIT2)); strcpy(broadcastGenre,getEditStr(IDC_EDIT3)); strcpy(broadcastURL,getEditStr(IDC_EDIT4)); peercastInst->saveSettings(); config_write(); if (onAir != oldOnAir) { if (onAir) { if (MessageBox(plugin.hwndParent,"To go \"On Air\" WinAmp has to be restarted.\nPlease make sure that the Oddcast DSP is loaded and enabled.\nPress OK to restart.","PeerCast",MB_OKCANCEL)!=IDCANCEL ) SendMessage(plugin.hwndParent,WM_USER, 0, 135); // restart }else{ if (MessageBox(plugin.hwndParent,"To go \"Off Air\" WinAmp has to be restarted. Press OK to restart.","PeerCast",MB_OKCANCEL)!=IDCANCEL ) SendMessage(plugin.hwndParent,WM_USER, 0, 135); // restart } } if (LOWORD(wParam)==IDC_OK) { showMiniBrowser(); EndDialog(hwndDlg,0); } return FALSE; case IDC_CANCEL: EndDialog(hwndDlg,0); return FALSE; } break; case WM_CLOSE: EndDialog(hwndDlg,0); return FALSE; } return FALSE;}void getIniFile(char *ini_file){ char *p; strcpy(ini_file,pluginFilename); p=ini_file+lstrlen(ini_file); while (p >= ini_file && *p != '\\') p--; if (++p >= ini_file) *p = 0; lstrcat(ini_file,"plugin.ini");}void config_read(){ char ini_file[MAX_PATH]; getIniFile(ini_file); autoPlaylistUpdate = GetPrivateProfileInt(szAppName,"autoPlaylistUpdate",autoPlaylistUpdate?1:0,ini_file)!=0; broadcastQuality = GetPrivateProfileInt(szAppName,"broadcastQuality",broadcastQuality,ini_file); onAir = GetPrivateProfileInt(szAppName,"onAir",onAir?1:0,ini_file)!=0; broadcastManual = GetPrivateProfileInt(szAppName,"broadcastManual",broadcastManual?1:0,ini_file)!=0; showChans = GetPrivateProfileInt(szAppName,"showChans",showChans?1:0,ini_file)!=0; numRuns = GetPrivateProfileInt(szAppName,"numRuns",numRuns,ini_file); GetPrivateProfileString(ODDCAST_DLL,"gServDesc","",broadcastName,sizeof(broadcastName),ini_file); GetPrivateProfileString(ODDCAST_DLL,"gServGenre","",broadcastGenre,sizeof(broadcastGenre),ini_file); GetPrivateProfileString(ODDCAST_DLL,"gServURL","",broadcastURL,sizeof(broadcastURL),ini_file);}void config_write(){ char ini_file[MAX_PATH],string[128]; getIniFile(ini_file); wsprintf(string,"%d",autoPlaylistUpdate); WritePrivateProfileString(szAppName,"autoPlaylistUpdate",string,ini_file); wsprintf(string,"%d",broadcastQuality); WritePrivateProfileString(szAppName,"broadcastQuality",string,ini_file); wsprintf(string,"%d",onAir); WritePrivateProfileString(szAppName,"onAir",string,ini_file); wsprintf(string,"%d",broadcastManual); WritePrivateProfileString(szAppName,"broadcastManual",string,ini_file); wsprintf(string,"%d",showChans); WritePrivateProfileString(szAppName,"showChans",string,ini_file); wsprintf(string,"%d",numRuns); WritePrivateProfileString(szAppName,"numRuns",string,ini_file); if (!broadcastManual) { WritePrivateProfileString(ODDCAST_DLL,"gServer","localhost",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gServDesc",broadcastName,ini_file); WritePrivateProfileString(ODDCAST_DLL,"gServGenre",broadcastGenre,ini_file); WritePrivateProfileString(ODDCAST_DLL,"gServURL",broadcastURL,ini_file); wsprintf(string,"%d",peercastInst->getServerPort()); WritePrivateProfileString(ODDCAST_DLL,"gPort",string,ini_file); WritePrivateProfileString(ODDCAST_DLL,"gPassword",peercastInst->getServerPassword(),ini_file); WritePrivateProfileString(ODDCAST_DLL,"gOggFlag","1",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gLAMEFlag","0",ini_file); wsprintf(string,"%d",broadcastQuality); WritePrivateProfileString(ODDCAST_DLL,"gOggQuality",string,ini_file); WritePrivateProfileString(ODDCAST_DLL,"gOggBitQual","0",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gShoutcastFlag","FALSE",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gIcecastFlag","FALSE",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gIcecast2Flag","TRUE",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gMountpoint","/oddcast.ogg",ini_file); WritePrivateProfileString(ODDCAST_DLL,"gAutoStart",onAir?"TRUE":"FALSE",ini_file); }}__declspec( dllexport ) winampGeneralPurposePlugin * winampGetGeneralPurposePlugin(){ return &plugin;}int getPort(){ int port = DEFAULT_PORT; HWND hwndWinamp = FindWindow("Winamp v1.x",NULL); if (hwndWinamp) port=SendMessage(hwndWinamp,WM_USER+100,0,0); return port;}__declspec( dllexport ) playChannel(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow){ WSys *wsys = new WSys(hwnd); char str[256]; sprintf(str,"pls/%s",lpszCmdLine); wsys->callLocalURL(str,getPort());}__declspec( dllexport ) callURL(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow){ WSys *wsys = new WSys(hwnd); if (strncmp(lpszCmdLine,"peercast://",11)==0) wsys->callLocalURL(lpszCmdLine+11,getPort()); else wsys->getURL(lpszCmdLine);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -