⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trayctl.cpp

📁 P2P应用 : Peercast的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				}
			}
			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)&copy);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -