📄 trayctl.cpp
字号:
}
}
break;
case WM_USER+100: ReplyMessage(peercastInst->getServerPort()); return 0; break; }#if 0 if (message == WM_USER+27) { int which = LOWORD(wParam) - 1024; switch (LOWORD(lParam)) { case WM_LBUTTONDOWN:#if 0#endif //addPlaylist("http://localhost:8144/pls/*.pls"); //showMiniBrowser(); break;#if 0 case WM_LBUTTONDOWN: switch (which) { case 0: if ((a=SendMessage(hwnd,WM_USER,0,104)) == 0) // not playing, let's // hit prev { SendMessage(hwnd,WM_COMMAND,40044,0); } 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(peercastPath,pluginFilename); p=peercastPath+lstrlen(peercastPath); while (p >= peercastPath && *p != '\\') p--; if (++p >= peercastPath) *p = 0;
lstrcat(peercastPath,"peercast/");
lstrcpy(iniFilename,peercastPath);
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;// -----------------------------------------------------
static void setControls(bool fromGUI)
{
setEditInt(IDC_MAXRELAYS,peercastInst->getMaxRelays());
if (!fromGUI)
setButtonState(IDC_ACTIVE,peercastInst->getActive());
}
// -----------------------------------------------------BOOL CALLBACK ConfigProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam){ switch (uMsg) { case WM_INITDIALOG: { configWin = hwndDlg;
setControls(false); } return FALSE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BUTTON1: peercastInst->callLocalURL("admin?page=settings"); break;
case IDC_ACTIVE:
peercastInst->setActive(getButtonState(IDC_ACTIVE));
if (getButtonState(IDC_ACTIVE))
{
peercastInst->setMaxRelays(getEditInt(IDC_MAXRELAYS));
setEditStr(IDC_ACTIVE,"Enabled");
enableControl(IDC_MAXRELAYS,false);
}else
{
setEditStr(IDC_ACTIVE,"Disabled");
enableControl(IDC_MAXRELAYS,true);
}
setControls(true);
break;
case IDC_APPLY: case IDC_OK: peercastInst->setMaxRelays(getEditInt(IDC_MAXRELAYS)); peercastInst->saveSettings(); config_write(); if (LOWORD(wParam)==IDC_OK) { 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){ char tmpBuf[8192];
strcpy(tmpBuf,lpszCmdLine);
if (strnicmp(tmpBuf,"peercast://",11)==0)
{
char *chanURL=NULL;
if (strnicmp(tmpBuf+11,"pls/",4)==0)
chanURL = tmpBuf+11+4;
else
chanURL = tmpBuf+11;
COPYDATASTRUCT copy;
copy.dwData = WM_USER+1001;
copy.cbData = strlen(chanURL)+1; // plus null term
copy.lpData = chanURL;
HWND hwndWinamp = FindWindow("Winamp v1.x",NULL);
if (hwndWinamp)
SendMessage(hwndWinamp,WM_COPYDATA,NULL,(LPARAM)©);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -