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

📄 options.cpp

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 CPP
📖 第 1 页 / 共 4 页
字号:
{	char str[50];	m_DriverList.GetWindowText(str, 50);	if (strstr(str, "DirectSound")) {		m_Notifs.ShowWindow(SW_SHOW);	} else {		m_Notifs.ShowWindow(SW_HIDE);	}}COptFont::COptFont(CWnd* pParent /*=NULL*/)	: CDialog(COptFont::IDD, pParent){	//{{AFX_DATA_INIT(COptFont)	//}}AFX_DATA_INIT}void COptFont::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptFont)	DDX_Control(pDX, IDC_TEXTURE_MODE, m_TextureModes);	DDX_Control(pDX, IDC_FONT_LIST, m_Fonts);	DDX_Control(pDX, IDC_BROWSE_FONT, m_BrowseFont);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptFont, CDialog)	//{{AFX_MSG_MAP(COptFont)	ON_BN_CLICKED(IDC_BROWSE_FONT, OnBrowseFont)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptFont message handlersBOOL COptFont::OnInitDialog() {	u32 i;	GF_BaseInterface *ifce;		CDialog::OnInitDialog();		WinGPAC *gpac = GetApp();	const char *sOpt;	/*video drivers enum*/	while (m_Fonts.GetCount()) m_Fonts.DeleteString(0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "FontEngine", "DriverName");	s32 to_sel = 0;	s32 select = 0;	u32 count = gf_modules_get_count(gpac->m_user.modules);	for (i=0; i<count; i++) {		ifce = gf_modules_load_interface(gpac->m_user.modules, i, GF_FONT_RASTER_INTERFACE);		if (!ifce) continue;		if (sOpt && !stricmp(ifce->module_name, sOpt)) select = to_sel;		m_Fonts.AddString(ifce->module_name);		gf_modules_close_interface(ifce);		to_sel++;	}	m_Fonts.SetCurSel(select);		sOpt = gf_cfg_get_key(gpac->m_user.config, "FontEngine", "FontDirectory");	if (sOpt) m_BrowseFont.SetWindowText(sOpt);	/*text texturing modes*/	while (m_TextureModes.GetCount()) m_TextureModes.DeleteString(0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "FontEngine", "TextureTextMode");	m_TextureModes.AddString("Never");	m_TextureModes.AddString("Only in 3D");	m_TextureModes.AddString("Always");	if (sOpt && !stricmp(sOpt, "3D")) m_TextureModes.SetCurSel(1);	else if (sOpt && !stricmp(sOpt, "Always")) m_TextureModes.SetCurSel(2);	else m_TextureModes.SetCurSel(0);	return TRUE;  }static char szCacheDir[MAX_PATH];static int CALLBACK LocCbck(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) {	char dir[MAX_PATH];	if (uMsg == BFFM_INITIALIZED) {		strcpy(dir, szCacheDir);		SendMessage(hwnd, BFFM_SETSELECTION, TRUE,(LPARAM) dir);	}	return 0;}void COptFont::OnBrowseFont() {	BROWSEINFO brw;	LPMALLOC pMalloc;	LPITEMIDLIST ret;	char dir[MAX_PATH];	if (NOERROR == ::SHGetMalloc(&pMalloc) ) {		m_BrowseFont.GetWindowText(szCacheDir, MAX_PATH);		memset(&brw, 0, sizeof(BROWSEINFO));		brw.hwndOwner = this->GetSafeHwnd();		brw.pszDisplayName = dir;		brw.lpszTitle = "Select Font Directory...";		brw.ulFlags = 0L;		brw.lpfn = LocCbck;		ret = SHBrowseForFolder(&brw);		if (ret != NULL) {			if (::SHGetPathFromIDList(ret, dir)) {				m_BrowseFont.SetWindowText(dir);			}			pMalloc->Free(ret);		}		pMalloc->Release();	}}void COptFont::SaveOptions(){	WinGPAC *gpac = GetApp();	char str[MAX_PATH];			m_Fonts.GetWindowText(str, 50);	gf_cfg_set_key(gpac->m_user.config, "FontEngine", "DriverName", str);	m_BrowseFont.GetWindowText(str, 50);	gf_cfg_set_key(gpac->m_user.config, "FontEngine", "FontDirectory", str);	switch (m_TextureModes.GetCurSel()) {	case 2: gf_cfg_set_key(gpac->m_user.config, "FontEngine", "TextureTextMode", "Always"); break;	case 1: gf_cfg_set_key(gpac->m_user.config, "FontEngine", "TextureTextMode", "3D"); break;	default: gf_cfg_set_key(gpac->m_user.config, "FontEngine", "TextureTextMode", "Never"); break;	}}COptHTTP::COptHTTP(CWnd* pParent /*=NULL*/)	: CDialog(COptHTTP::IDD, pParent){	//{{AFX_DATA_INIT(COptHTTP)	//}}AFX_DATA_INIT}void COptHTTP::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptHTTP)	DDX_Control(pDX, IDC_HTTP_PROXY, m_ProxyName);	DDX_Control(pDX, IDC_HTTP_USE_PROXY, m_useProxy);	DDX_Control(pDX, IDC_SAX_DELAY, m_SAXDuration);	DDX_Control(pDX, IDC_SAX_PROGRESSIVE, m_Progressive);	DDX_Control(pDX, IDC_RESTART_CACHE, m_RestartFile);	DDX_Control(pDX, IDC_CLEAN_CACHE, m_CleanCache);	DDX_Control(pDX, IDC_BROWSE_CACHE, m_CacheDir);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptHTTP, CDialog)	//{{AFX_MSG_MAP(COptHTTP)	ON_BN_CLICKED(IDC_BROWSE_CACHE, OnBrowseCache)	ON_BN_CLICKED(IDC_SAX_PROGRESSIVE, OnSaxProgressive)	ON_BN_CLICKED(IDC_HTTP_USE_PROXY, OnUseProxy)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptHTTP message handlersvoid COptHTTP::OnBrowseCache() {	BROWSEINFO brw;	LPMALLOC pMalloc;	LPITEMIDLIST ret;	char dir[MAX_PATH];	if (NOERROR == ::SHGetMalloc(&pMalloc) ) {		m_CacheDir.GetWindowText(szCacheDir, MAX_PATH);		memset(&brw, 0, sizeof(BROWSEINFO));		brw.hwndOwner = this->GetSafeHwnd();		brw.pszDisplayName = dir;		brw.lpszTitle = "Select HTTP Cache Directory...";		brw.ulFlags = 0L;		brw.lpfn = LocCbck;		ret = SHBrowseForFolder(&brw);		if (ret != NULL) {			if (::SHGetPathFromIDList(ret, dir)) {				m_CacheDir.SetWindowText(dir);			}			pMalloc->Free(ret);		}		pMalloc->Release();	}}BOOL COptHTTP::OnInitDialog() {	char proxy[GF_MAX_PATH];	CDialog::OnInitDialog();		WinGPAC *gpac = GetApp();	const char *sOpt;	sOpt = gf_cfg_get_key(gpac->m_user.config, "General", "CacheDirectory");	if (sOpt) m_CacheDir.SetWindowText(sOpt);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Downloader", "CleanCache");	m_CleanCache.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Downloader", "RestartFiles");	m_RestartFile.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "SAXLoader", "Progressive");	m_Progressive.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	OnSaxProgressive();	sOpt = gf_cfg_get_key(gpac->m_user.config, "SAXLoader", "MaxDuration");	if (sOpt) {		m_SAXDuration.SetWindowText(sOpt);	} else {		m_SAXDuration.SetWindowText("0");	}	//if (m_Progressive.GetCheck()) m_SAXDuration.EnableWindow(1);	sOpt = gf_cfg_get_key(gpac->m_user.config, "HTTPProxy", "Enabled");	m_useProxy.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	OnUseProxy();	strcpy(proxy, "");	sOpt = gf_cfg_get_key(gpac->m_user.config, "HTTPProxy", "Name");	if (sOpt) {		strcpy(proxy, sOpt);		sOpt = gf_cfg_get_key(gpac->m_user.config, "HTTPProxy", "Port");		if (sOpt) {			strcat(proxy, ":");			strcat(proxy, sOpt);		}	}	m_ProxyName.SetWindowText(proxy);	return TRUE; }void COptHTTP::OnSaxProgressive() {	if (m_Progressive.GetCheck()) {		m_SAXDuration.EnableWindow(1);	} else {		m_SAXDuration.EnableWindow(0);	}}void COptHTTP::OnUseProxy() {	if (m_useProxy.GetCheck()) {		m_ProxyName.EnableWindow(1);	} else {		m_ProxyName.EnableWindow(0);	}}void COptHTTP::SaveOptions(){	WinGPAC *gpac = GetApp();	gf_cfg_set_key(gpac->m_user.config, "Downloader", "CleanCache", m_CleanCache.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Downloader", "RestartFiles", m_RestartFile.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "SAXLoader", "Progressive", m_Progressive.GetCheck() ? "yes" : "no");	m_SAXDuration.GetWindowText(szCacheDir, MAX_PATH);	gf_cfg_set_key(gpac->m_user.config, "SAXLoader", "MaxDuration", szCacheDir);	gf_cfg_set_key(gpac->m_user.config, "HTTPProxy", "Enabled", m_useProxy.GetCheck() ? "yes" : "no");	m_ProxyName.GetWindowText(szCacheDir, MAX_PATH);	char *sep = strrchr(szCacheDir, ':');	if (sep) {		sep[0] = 0;		gf_cfg_set_key(gpac->m_user.config, "HTTPProxy", "Name", szCacheDir);		sep[0] = ':';		gf_cfg_set_key(gpac->m_user.config, "HTTPProxy", "Port", sep+1);	} else {		gf_cfg_set_key(gpac->m_user.config, "HTTPProxy", "Name", szCacheDir);		gf_cfg_set_key(gpac->m_user.config, "HTTPProxy", "Port", NULL);	}	m_CacheDir.GetWindowText(szCacheDir, MAX_PATH);	gf_cfg_set_key(gpac->m_user.config, "General", "CacheDirectory", szCacheDir);}COptStream::COptStream(CWnd* pParent /*=NULL*/)	: CDialog(COptStream::IDD, pParent){	//{{AFX_DATA_INIT(COptStream)	//}}AFX_DATA_INIT}void COptStream::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptStream)	DDX_Control(pDX, IDC_REBUFFER_LEN, m_RebufferLen);	DDX_Control(pDX, IDC_REBUFFER, m_Rebuffer);	DDX_Control(pDX, IDC_BUFFER, m_Buffer);	DDX_Control(pDX, IDC_TIMEOUT, m_Timeout);	DDX_Control(pDX, IDC_REORDER, m_Reorder);	DDX_Control(pDX, IDC_RTSP, m_UseRTSP);	DDX_Control(pDX, IDC_PORT, m_Port);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptStream, CDialog)	//{{AFX_MSG_MAP(COptStream)	ON_CBN_SELCHANGE(IDC_PORT, OnSelchangePort)	ON_BN_CLICKED(IDC_RTSP, OnRtsp)	ON_BN_CLICKED(IDC_REBUFFER, OnRebuffer)	ON_EN_UPDATE(IDC_REBUFFER_LEN, OnUpdateRebufferLen)	ON_EN_UPDATE(IDC_BUFFER, OnUpdateBuffer)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptStream message handlersBOOL COptStream::OnInitDialog() {	CDialog::OnInitDialog();	WinGPAC *gpac = GetApp();	const char *sOpt;	while (m_Port.GetCount()) m_Port.DeleteString(0);	m_Port.AddString("554 (RTSP standard)");	m_Port.AddString("7070 (RTSP ext)");	m_Port.AddString("80 (RTSP / HTTP tunnel)");	m_Port.AddString("8080 (RTSP / HTTP tunnel)");	sOpt = gf_cfg_get_key(gpac->m_user.config, "Streaming", "DefaultPort");	u32 port = 554;	Bool force_rtsp = 0;;	if (sOpt) port = atoi(sOpt);	switch (port) {	case 8080:		m_Port.SetCurSel(3);		force_rtsp = 1;		break;	case 80:		m_Port.SetCurSel(2);		force_rtsp = 1;		break;	case 7070:		m_Port.SetCurSel(1);		break;	default:		m_Port.SetCurSel(0);		break;	}	Bool use_rtsp = 0;	sOpt = gf_cfg_get_key(gpac->m_user.config, "Streaming", "RTPoverRTSP");	if (sOpt && !stricmp(sOpt, "yes")) use_rtsp = 1;	if (force_rtsp) {		m_UseRTSP.SetCheck(1);		m_UseRTSP.EnableWindow(0);		m_Reorder.SetCheck(0);		m_Reorder.EnableWindow(0);	} else {		m_UseRTSP.SetCheck(use_rtsp);		m_UseRTSP.EnableWindow(1);		m_Reorder.EnableWindow(1);		sOpt = gf_cfg_get_key(gpac->m_user.config, "Streaming", "ReorderSize");		if (sOpt && !stricmp(sOpt, "0")) {			m_Reorder.SetCheck(0);		} else {			m_Reorder.SetCheck(1);		}	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Streaming", "RTSPTimeout");	if (sOpt) {		m_Timeout.SetWindowText(sOpt);	} else {		m_Timeout.SetWindowText("30000");	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Network", "BufferLength");	if (sOpt) {		m_Buffer.SetWindowText(sOpt);	} else {		m_Buffer.SetWindowText("3000");	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Network", "RebufferLength");	u32 buf_len = 0;	if (sOpt) buf_len = atoi(sOpt);	if (buf_len) {		m_RebufferLen.SetWindowText(sOpt);		m_Rebuffer.SetCheck(1);		m_RebufferLen.EnableWindow(1);	} else {		m_RebufferLen.SetWindowText("0");		m_Rebuffer.SetCheck(0);		m_RebufferLen.EnableWindow(0);	}	return TRUE;  }void COptStream::OnSelchangePort() {	s32 sel = m_Port.GetCurSel();	switch (sel) {	case 3:	case 2:		m_UseRTSP.SetCheck(1);		m_UseRTSP.EnableWindow(0);		m_Reorder.SetCheck(0);		m_Reorder.EnableWindow(0);		break;	case 1:	default:		m_UseRTSP.SetCheck(0);		m_UseRTSP.EnableWindow(1);		m_Reorder.SetCheck(1);		m_Reorder.EnableWindow(1);		break;	}}void COptStream::OnRtsp() {	if (m_UseRTSP.GetCheck()) {		m_Reorder.SetCheck(0);		m_Reorder.EnableWindow(0);	} else {		m_Reorder.SetCheck(1);		m_Reorder.EnableWindow(1);	}	}void COptStream::CheckRebuffer(){	char str[50];	s32 buf, rebuf;	m_Buffer.GetWindowText(str, 50);	buf = atoi(str);	m_RebufferLen.GetWindowText(str, 50);	rebuf = atoi(str);	if (rebuf*2 > buf) {		rebuf = buf/2;		sprintf(str, "%d", rebuf);		m_RebufferLen.SetWindowText(str);	}}void COptStream::OnRebuffer() {	if (!m_Rebuffer.GetCheck()) {		m_RebufferLen.EnableWindow(0);	} else {		m_RebufferLen.EnableWindow(1);		CheckRebuffer();	}}void COptStream::OnUpdateRebufferLen() {	CheckRebuffer();}void COptStream::OnUpdateBuffer() {	CheckRebuffer();	}void COptStream::SaveOptions(){	WinGPAC *gpac = GetApp();	Bool force_rtsp = 0;	s32 sel = m_Port.GetCurSel();	switch (sel) {	case 3:

⌨️ 快捷键说明

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