📄 options.cpp
字号:
{ 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 + -