source-engine/utils/xbox/vxconsole/config.cpp
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

218 lines
7.1 KiB
C++

//========= 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();
}