diff options
Diffstat (limited to 'utils/xbox/vxconsole/config.cpp')
| -rw-r--r-- | utils/xbox/vxconsole/config.cpp | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/utils/xbox/vxconsole/config.cpp b/utils/xbox/vxconsole/config.cpp new file mode 100644 index 0000000..85558d7 --- /dev/null +++ b/utils/xbox/vxconsole/config.cpp @@ -0,0 +1,217 @@ +//========= 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(); +} |