//========= Copyright Valve Corporation, All rights reserved. ============// // // CONFIG.CPP // // Configuration Dialog //=====================================================================================// #include "vxconsole.h" CHAR g_xboxTargetName[MAX_XBOXNAMELEN]; char g_localPath[MAX_PATH]; char g_targetPath[MAX_PATH]; BOOL g_clsOnConnect; BOOL g_loadSymbolsOnConnect; char g_xexTargetPath[MAX_PATH]; BOOL g_alwaysAutoConnect; BOOL g_startMinimized; char g_installPath[MAX_PATH]; BOOL g_captureDebugSpew_StartupState; //----------------------------------------------------------------------------- // ConfigDlg_LoadConfig // //----------------------------------------------------------------------------- void ConfigDlg_LoadConfig() { // get our config Sys_GetRegistryString( "xboxName", g_xboxTargetName, "", sizeof( g_xboxTargetName ) ); Sys_GetRegistryString( "localPath", g_localPath, "u:\\dev\\game", sizeof( g_localPath ) ); Sys_GetRegistryString( "targetPath", g_targetPath, "e:\\valve", sizeof( g_targetPath ) ); Sys_GetRegistryString( "installPath", g_installPath, "\\\\fileserver\\user\\xbox\\xbox_orange", sizeof( g_installPath ) ); Sys_GetRegistryInteger( "clearOnConnect", true, g_clsOnConnect ); Sys_GetRegistryInteger( "loadSymbolsOnConnect", false, g_loadSymbolsOnConnect ); Sys_GetRegistryInteger( "alwaysAutoConnect", false, g_alwaysAutoConnect ); Sys_GetRegistryInteger( "startMinimized", false, g_startMinimized ); Sys_GetRegistryInteger( "captureDebugSpew", true, g_captureDebugSpew_StartupState ); } //----------------------------------------------------------------------------- // ConfigDlg_SaveConfig // //----------------------------------------------------------------------------- void ConfigDlg_SaveConfig() { // save config Sys_SetRegistryString( "xboxName", g_xboxTargetName ); Sys_SetRegistryString( "localPath", g_localPath ); Sys_SetRegistryString( "targetPath", g_targetPath ); Sys_SetRegistryString( "installPath", g_installPath ); Sys_SetRegistryInteger( "clearOnConnect", g_clsOnConnect ); Sys_SetRegistryInteger( "loadSymbolsOnConnect", g_loadSymbolsOnConnect ); Sys_SetRegistryInteger( "alwaysAutoConnect", g_alwaysAutoConnect ); Sys_SetRegistryInteger( "startMinimized", g_startMinimized ); Sys_SetRegistryInteger( "captureDebugSpew", g_captureDebugSpew_StartupState ); // update SetMainWindowTitle(); } //----------------------------------------------------------------------------- // ConfigDlg_Setup // //----------------------------------------------------------------------------- void ConfigDlg_Setup( HWND hWnd ) { SetDlgItemText( hWnd,IDC_CONFIG_XBOXNAME, g_xboxTargetName ); SetDlgItemText( hWnd,IDC_CONFIG_LOCALPATH, g_localPath ); SetDlgItemText( hWnd,IDC_CONFIG_TARGETPATH, g_targetPath ); SetDlgItemText( hWnd,IDC_CONFIG_INSTALLPATH, g_installPath ); EnableWindow( GetDlgItem( hWnd, IDC_CONFIG_PING ), strlen( g_xboxTargetName ) > 0 ); CheckDlgButton( hWnd, IDC_CONFIG_CLEARONCONNECT, g_clsOnConnect ? BST_CHECKED : BST_UNCHECKED ); CheckDlgButton( hWnd, IDC_CONFIG_ALWAYSAUTOCONNECT, g_alwaysAutoConnect ? BST_CHECKED : BST_UNCHECKED ); CheckDlgButton( hWnd, IDC_CONFIG_STARTMINIMIZED, g_startMinimized ? BST_CHECKED : BST_UNCHECKED ); CheckDlgButton( hWnd, IDC_CONFIG_CAPTUREDEBUGSPEW, g_captureDebugSpew_StartupState ? BST_CHECKED : BST_UNCHECKED ); } //----------------------------------------------------------------------------- // ConfigDlg_Ping // //----------------------------------------------------------------------------- BOOL ConfigDlg_Ping( HWND hwnd ) { char xboxName[MAX_XBOXNAMELEN]; BOOL canConnect; char* args[1]; xboxName[0] = '\0'; GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, xboxName, MAX_XBOXNAMELEN ); // ignore ping to current connection if ( !stricmp( g_xboxName, xboxName ) ) { if ( g_connectedToXBox ) { Sys_MessageBox( "Ping", "Already Connected To: '%s'", xboxName ); return true; } } // terminate any current connection lc_disconnect( 0, NULL ); // trial connect args[0] = xboxName; canConnect = lc_connect( 1, args ); if ( !canConnect ) Sys_MessageBox( "Ping FAILURE", "Could Not Connect To: %s", xboxName ); else Sys_MessageBox( "Ping SUCCESS", "Connection Valid To: %s", g_xboxName ); if ( canConnect ) lc_disconnect( 0, NULL ); return canConnect; } //----------------------------------------------------------------------------- // ConfigDlg_GetChanges // //----------------------------------------------------------------------------- bool ConfigDlg_GetChanges( HWND hwnd ) { char remotePath[MAX_PATH]; char localPath[MAX_PATH]; char targetPath[MAX_PATH]; char installPath[MAX_PATH]; char xboxName[MAX_XBOXNAMELEN]; char xexLocalPath[MAX_PATH]; char xexTargetPath[MAX_PATH]; xboxName[0] = '\0'; remotePath[0] = '\0'; localPath[0] = '\0'; targetPath[0] = '\0'; xexLocalPath[0] = '\0'; xexTargetPath[0] = '\0'; GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, xboxName, MAX_XBOXNAMELEN ); GetDlgItemText( hwnd, IDC_CONFIG_LOCALPATH, localPath, MAX_PATH ); GetDlgItemText( hwnd, IDC_CONFIG_TARGETPATH, targetPath, MAX_PATH ); GetDlgItemText( hwnd, IDC_CONFIG_INSTALLPATH, installPath, MAX_PATH ); strcpy( g_localPath, localPath ); Sys_NormalizePath( g_localPath, true ); strcpy( g_targetPath, targetPath ); Sys_NormalizePath( g_targetPath, true ); strcpy( g_installPath, installPath ); Sys_NormalizePath( g_installPath, true ); strcpy( g_xboxTargetName, xboxName ); g_clsOnConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_CLEARONCONNECT ); g_loadSymbolsOnConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_LOADSYMBOLS ); g_alwaysAutoConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_ALWAYSAUTOCONNECT ); g_startMinimized = IsDlgButtonChecked( hwnd, IDC_CONFIG_STARTMINIMIZED ); g_captureDebugSpew_StartupState = IsDlgButtonChecked( hwnd, IDC_CONFIG_CAPTUREDEBUGSPEW ); // success return ( true ); } //----------------------------------------------------------------------------- // ConfigDlg_Proc // //----------------------------------------------------------------------------- BOOL CALLBACK ConfigDlg_Proc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch ( message ) { case WM_INITDIALOG: ConfigDlg_Setup( hwnd ); return ( TRUE ); case WM_COMMAND: switch ( LOWORD( wParam ) ) { case IDC_CONFIG_PING: ConfigDlg_Ping( hwnd ); break; case IDC_CONFIG_XBOXNAME: CHAR buff[MAX_XBOXNAMELEN]; GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, buff, sizeof( buff ) ); EnableWindow( GetDlgItem( hwnd, IDC_CONFIG_PING ), strlen( buff ) > 0 ); break; case IDC_OK: if ( !ConfigDlg_GetChanges( hwnd ) ) break; case IDCANCEL: case IDC_CANCEL: EndDialog( hwnd, wParam ); return ( TRUE ); } break; } return ( FALSE ); } //----------------------------------------------------------------------------- // ConfigDlg_Open // //----------------------------------------------------------------------------- void ConfigDlg_Open( void ) { int result; result = DialogBox( g_hInstance, MAKEINTRESOURCE( IDD_CONFIG ), g_hDlgMain, ( DLGPROC )ConfigDlg_Proc ); if ( LOWORD( result ) != IDC_OK ) return; ConfigDlg_SaveConfig(); }