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

📄 gui.cpp

📁 P2P应用 : Peercast的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		// sleep for 1 second .. check every 1/10th for shutdown		for(i=0; i<10; i++)		{			if (!thread->active)				break;			sys->sleep(100);		}	}//	thread->unlock();	return 0;}// --------------------------------------------------void tryConnect(){#if 0	ClientSocket sock;	char tmp[32];	char *sendStr = "GET / HTTP/1.1\n\n";	try {		sock.open("taiyo",80);		sock.write(sendStr,strlen(sendStr));		sock.read(tmp,32);		LOG("Connected: %s",tmp);	}catch(IOException &e)	{		LOG(e.msg);	}#endif}// ---------------------------------void APICALL MyPeercastApp ::printLog(LogBuffer::TYPE t, const char *str){	ADDLOG(str,logID,true,NULL,t);	if (logFile.isOpen())	{		logFile.writeLine(str);		logFile.flush();	}}// --------------------------------------------------static void setControls(bool fromGUI){	if (!guiWnd)		return;	setEditInt(IDC_EDIT1,servMgr->serverHost.port);	setEditStr(IDC_EDIT3,servMgr->password);	setEditStr(IDC_EDIT9,chanMgr->broadcastMsg.cstr());
	setEditInt(IDC_MAXRELAYS,servMgr->maxRelays);
	setButtonState(IDC_CHECK11,chanMgr->broadcastMsg[0]!=0);	setButtonState(IDC_LOGDEBUG,(servMgr->showLog&(1<<LogBuffer::T_DEBUG))!=0);	setButtonState(IDC_LOGERRORS,(servMgr->showLog&(1<<LogBuffer::T_ERROR))!=0);	setButtonState(IDC_LOGNETWORK,(servMgr->showLog&(1<<LogBuffer::T_NETWORK))!=0);	setButtonState(IDC_LOGCHANNELS,(servMgr->showLog&(1<<LogBuffer::T_CHANNEL))!=0);	setButtonState(IDC_CHECK9,servMgr->pauseLog);
	if (!fromGUI)
		setButtonState(IDC_CHECK1,servMgr->autoServe);
}// --------------------------------------------------
void APICALL MyPeercastApp::updateSettings()
{
	setControls(true);
}
// --------------------------------------------------LRESULT CALLBACK GUIProc (HWND hwnd, UINT message,                                 WPARAM wParam, LPARAM lParam){   switch (message)   {       case WM_INITDIALOG:			guiWnd = hwnd;			shownChannels = false;			logID = IDC_LIST1;		// log			statusID = IDC_LIST2;	// status			hitID = IDC_LIST4;		// hit			chanID = IDC_LIST3;		// channels			enableControl(IDC_BUTTON8,false);			enableControl(IDC_BUTTON11,false);			enableControl(IDC_BUTTON10,false);						peercastApp->updateSettings();			if (servMgr->autoServe)				setButtonState(IDC_CHECK1,true);			if (servMgr->autoConnect)				setButtonState(IDC_CHECK2,true);			guiThread.func = showConnections;			if (!sys->startThread(&guiThread))			{				MessageBox(hwnd,"Unable to start GUI","PeerCast",MB_OK|MB_ICONERROR);				PostMessage(hwnd,WM_DESTROY,0,0);			}			break;	  case WM_COMMAND:			switch( wParam )			{				case IDC_CHECK1:		// start server						if (getButtonState(IDC_CHECK1))						{							//SendDlgItemMessage(hwnd, IDC_CHECK1,WM_SETTEXT, 0, (LPARAM)"Deactivate");							SendDlgItemMessage(hwnd, IDC_EDIT3,WM_GETTEXT, 64, (LONG)servMgr->password);							servMgr->serverHost.port = (unsigned short)getEditInt(IDC_EDIT1);							servMgr->setMaxRelays(getEditInt(IDC_MAXRELAYS));
							enableControl(IDC_EDIT1,false);							enableControl(IDC_EDIT3,false);
							enableControl(IDC_MAXRELAYS,false);
							enableControl(IDC_BUTTON8,true);							enableControl(IDC_BUTTON11,true);							enableControl(IDC_BUTTON10,true);							//writeSettings();							servMgr->autoServe = true;

							setEditStr(IDC_CHECK1,"Enabled");
						}else{							//SendDlgItemMessage(hwnd, IDC_CHECK1,WM_SETTEXT, 0, (LPARAM)"Activate");							servMgr->autoServe = false;							enableControl(IDC_EDIT1,true);							enableControl(IDC_EDIT3,true);
							enableControl(IDC_MAXRELAYS,true);
							enableControl(IDC_BUTTON8,false);							enableControl(IDC_BUTTON11,false);							enableControl(IDC_BUTTON10,false);
							setEditStr(IDC_CHECK1,"Disabled");
						}
						setControls(true);
					break;				case IDC_CHECK11:		// DJ message					if (getButtonState(IDC_CHECK11))					{						enableControl(IDC_EDIT9,false);						SendDlgItemMessage(hwnd, IDC_EDIT9,WM_GETTEXT, 128, (LONG)chanMgr->broadcastMsg.cstr());					}else{						enableControl(IDC_EDIT9,true);						chanMgr->broadcastMsg.clear();					}					break;				case IDC_LOGDEBUG:		// log debug					servMgr->showLog = getButtonState(wParam) ? servMgr->showLog|(1<<LogBuffer::T_DEBUG) : servMgr->showLog&~(1<<LogBuffer::T_DEBUG);					break;				case IDC_LOGERRORS:		// log errors					servMgr->showLog = getButtonState(wParam) ? servMgr->showLog|(1<<LogBuffer::T_ERROR) : servMgr->showLog&~(1<<LogBuffer::T_ERROR);					break;				case IDC_LOGNETWORK:		// log network					servMgr->showLog = getButtonState(wParam) ? servMgr->showLog|(1<<LogBuffer::T_NETWORK) : servMgr->showLog&~(1<<LogBuffer::T_NETWORK);					break;				case IDC_LOGCHANNELS:		// log channels					servMgr->showLog = getButtonState(wParam) ? servMgr->showLog|(1<<LogBuffer::T_CHANNEL) : servMgr->showLog&~(1<<LogBuffer::T_CHANNEL);					break;				case IDC_CHECK9:		// pause log					servMgr->pauseLog = getButtonState(wParam);					break;				case IDC_CHECK2:		// start outgoing					if (getButtonState(IDC_CHECK2))					{						SendDlgItemMessage(hwnd, IDC_COMBO1,WM_GETTEXT, 128, (LONG)servMgr->connectHost);						servMgr->autoConnect = true;						//SendDlgItemMessage(hwnd, IDC_CHECK2,WM_SETTEXT, 0, (LPARAM)"Disconnect");						enableControl(IDC_COMBO1,false);					}else{						servMgr->autoConnect = false;						//SendDlgItemMessage(hwnd, IDC_CHECK2,WM_SETTEXT, 0, (LPARAM)"Connect");						enableControl(IDC_COMBO1,true);					}					break;				case IDC_BUTTON11:		// broadcast					{						Host sh = servMgr->serverHost;						if (sh.isValid())						{							char cmd[256];							sprintf(cmd,"http://localhost:%d/admin?page=broadcast",sh.port);							ShellExecute(hwnd, NULL, cmd, NULL, NULL, SW_SHOWNORMAL);								}else{							MessageBox(hwnd,"Server is not currently connected.\nPlease wait until you have a connection.","PeerCast",MB_OK);						}					}					break;				case IDC_BUTTON8:		// play selected					{						Channel *c = (Channel *)getListBoxSelData(chanID);						if (c)							chanMgr->playChannel(c->info);					}					break;				case IDC_BUTTON7:		// advanced					sys->callLocalURL("admin?page=settings",servMgr->serverHost.port);					break;				case IDC_BUTTON6:		// servent disconnect					{						Servent *s = (Servent *)getListBoxSelData(statusID);						if (s)							s->thread.active = false;					}					break;				case IDC_BUTTON5:		// chan disconnect					{						Channel *c = (Channel *)getListBoxSelData(chanID);						if (c)							c->thread.active = false;					}					break;				case IDC_BUTTON3:		// chan bump					{						Channel *c = (Channel *)getListBoxSelData(chanID);						if (c)							c->bump = true;					}					break;				case IDC_BUTTON4:		// get channel 					{						ChanHitList *chl = (ChanHitList *)getListBoxSelData(hitID);						if (chl)						{							if (!chanMgr->findChannelByID(chl->info.id))							{								Channel *c = chanMgr->createChannel(chl->info,NULL);								if (c)									c->startGet();							}						}else{							MessageBox(hwnd,"Please select a channel","PeerCast",MB_OK);						}					}					break;				case IDC_BUTTON1:		// clear log					SendDlgItemMessage(guiWnd, logID, LB_RESETCONTENT, 0, 0);					break;				case IDC_BUTTON2:		// find					{						char str[64];						SendDlgItemMessage(hwnd, IDC_EDIT2,WM_GETTEXT, 64, (LONG)str);						SendDlgItemMessage(hwnd, hitID, LB_RESETCONTENT, 0, 0);						ChanInfo info;						info.init();						info.name.set(str);						chanMgr->startSearch(info);					}					break;			}			break;		case WM_CLOSE:			DestroyWindow( hwnd );			break;		case WM_DESTROY:			guiThread.active = false;//			guiThread.lock();			guiWnd = NULL;//			guiThread.unlock();			EndDialog(hwnd, LOWORD(wParam));			break;		//default:			// do nothing			//return DefDlgProc(hwnd, message, wParam, lParam);		// this recurses for ever			//return DefWindowProc(hwnd, message, wParam, lParam);	// this stops window messages   }   return 0;}

⌨️ 快捷键说明

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