diff --git a/3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj b/3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj
index 55b89659b3..b72227fede 100644
--- a/3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj
+++ b/3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj
@@ -127,10 +127,6 @@
/>
-
-
@@ -165,6 +161,10 @@
/>
+
+
+
+
+
+
+
+
+
+
+
-
-class wxString;
-
-#include "Pcsx2Defs.h"
-
#include
#include // for wxPoint/wxRect stuff
#include
#include
+#include "Pcsx2Defs.h"
+
#include
#include
#include
#include // string.h under c++
#include // stdio.h under c++
#include
+#include
#include
#include "Utilities/Assertions.h"
diff --git a/common/include/Utilities/pxRadioPanel.h b/common/include/Utilities/pxRadioPanel.h
index 2e09575f75..51a2050246 100644
--- a/common/include/Utilities/pxRadioPanel.h
+++ b/common/include/Utilities/pxRadioPanel.h
@@ -79,13 +79,13 @@ class pxRadioPanel : public wxPanelWithHelpers
protected:
typedef std::vector ButtonArray;
typedef SafeArray ButtonObjArray;
-
+
ButtonArray m_buttonStrings;
ButtonObjArray m_objects;
bool m_IsRealized;
int m_idealWidth;
-
+
wxSize m_padding;
int m_Indentation;
diff --git a/common/src/Utilities/Console.cpp b/common/src/Utilities/Console.cpp
index 7478febf23..b1ce539415 100644
--- a/common/src/Utilities/Console.cpp
+++ b/common/src/Utilities/Console.cpp
@@ -30,7 +30,7 @@ void Console_SetActiveHandler( const IConsoleWriter& writer, FILE* flushfp )
pxAssertDev(
(writer.DoWrite != NULL) && (writer.DoWriteLn != NULL) &&
(writer.Newline != NULL) && (writer.SetTitle != NULL) &&
- (writer.SetColor != NULL) && (writer.ClearColor != NULL),
+ (writer.DoSetColor != NULL),
"Invalid IConsoleWriter object! All function pointer interfaces must be implemented."
);
@@ -53,22 +53,20 @@ void Console_SetActiveHandler( const IConsoleWriter& writer, FILE* flushfp )
// --------------------------------------------------------------------------------------
static void __concall ConsoleNull_SetTitle( const wxString& title ) {}
-static void __concall ConsoleNull_SetColor( ConsoleColors color ) {}
-static void __concall ConsoleNull_ClearColor() {}
+static void __concall ConsoleNull_DoSetColor( ConsoleColors color ) {}
static void __concall ConsoleNull_Newline() {}
static void __concall ConsoleNull_DoWrite( const wxString& fmt ) {}
static void __concall ConsoleNull_DoWriteLn( const wxString& fmt ) {}
const IConsoleWriter ConsoleWriter_Null =
{
- ConsoleNull_DoWrite,
- ConsoleNull_DoWriteLn,
+ NULL, //ConsoleNull_DoWrite,
+ NULL, //ConsoleNull_DoWriteLn,
+ ConsoleNull_DoSetColor,
ConsoleNull_Newline,
ConsoleNull_SetTitle,
- ConsoleNull_SetColor,
- ConsoleNull_ClearColor,
};
// --------------------------------------------------------------------------------------
@@ -134,17 +132,10 @@ static void __concall ConsoleStdio_Newline()
wxPrintf( L"\n" );
}
-static void __concall ConsoleStdio_ClearColor()
+static void __concall ConsoleStdio_DoSetColor( ConsoleColors color )
{
#ifdef __LINUX__
wxPrintf(L"\033[0m");
-#endif
-}
-
-static void __concall ConsoleStdio_SetColor( ConsoleColors color )
-{
-#ifdef __LINUX__
- ConsoleStdio_ClearColor();
wxPrintf(GetLinuxConsoleColor(color));
#endif
}
@@ -160,12 +151,11 @@ const IConsoleWriter ConsoleWriter_Stdio =
{
ConsoleStdio_DoWrite, // Writes without newlines go to buffer to avoid error log spam.
ConsoleStdio_DoWriteLn,
+ ConsoleStdio_DoSetColor,
ConsoleStdio_Newline,
ConsoleStdio_SetTitle,
- ConsoleStdio_SetColor,
- ConsoleStdio_ClearColor,
};
// --------------------------------------------------------------------------------------
@@ -186,12 +176,11 @@ const IConsoleWriter ConsoleWriter_Assert =
{
ConsoleAssert_DoWrite,
ConsoleAssert_DoWriteLn,
+ ConsoleNull_DoSetColor,
ConsoleNull_Newline,
ConsoleNull_SetTitle,
- ConsoleNull_SetColor,
- ConsoleNull_ClearColor,
};
// --------------------------------------------------------------------------------------
@@ -233,12 +222,11 @@ const IConsoleWriter ConsoleWriter_Buffered =
{
ConsoleBuffer_DoWrite, // Writes without newlines go to buffer to avoid assertion spam.
ConsoleBuffer_DoWriteLn,
+ ConsoleNull_DoSetColor,
ConsoleNull_Newline,
ConsoleNull_SetTitle,
- ConsoleNull_SetColor,
- ConsoleNull_ClearColor,
};
// --------------------------------------------------------------------------------------
@@ -259,12 +247,11 @@ const IConsoleWriter ConsoleWriter_wxError =
{
ConsoleBuffer_DoWrite, // Writes without newlines go to buffer to avoid error log spam.
Console_wxLogError_DoWriteLn,
+ ConsoleNull_DoSetColor,
ConsoleNull_Newline,
ConsoleNull_SetTitle,
- ConsoleNull_SetColor,
- ConsoleNull_ClearColor,
};
// Sanity check: truncate strings if they exceed 512k in length. Anything like that
@@ -301,6 +288,7 @@ static FormatBuffer unicode_buffer( unicode_buffer_is_deleted );
static void format_that_ascii_mess( SafeArray& buffer, const char* fmt, va_list argptr )
{
+
while( true )
{
int size = buffer.GetLength();
@@ -357,6 +345,12 @@ static void format_that_unicode_mess( SafeArray& buffer, const wxChar* f
// though it'd be kinda nice if we did.
}
+// thread-local console indentation setting.
+static __threadlocal int conlog_Indent = 0;
+
+// thread-local console color storage.
+static __threadlocal ConsoleColors conlog_Color = DefaultConsoleColor;
+
static wxString ascii_format_string(const char* fmt, va_list argptr)
{
if( ascii_buffer_is_deleted )
@@ -396,12 +390,76 @@ static wxString unicode_format_string(const wxChar* fmt, va_list argptr)
// (all non-virtual members that do common work and then pass the result through DoWrite
// or DoWriteLn)
+// Parameters:
+// glob_indent - this parameter is used to specify a global indentation setting. It is used by
+// WriteLn function, but defaults to 0 for Notice and Error calls. Local indentation always
+// applies to all writes.
+wxString IConsoleWriter::_addIndentation( const wxString& src, int glob_indent=0 ) const
+{
+ const int indent = glob_indent + _imm_indentation;
+ if( indent == 0 ) return src;
+
+ wxArrayString pieces;
+ SplitString( pieces, src, L'\n' );
+ const wxString indentStr( L'\t', indent );
+ wxString result;
+ result.reserve( src.Length() + 24 );
+ JoinString( result, pieces, L'\n' + indentStr );
+ return indentStr + result;
+}
+
+// Sets the indentation to be applied to all WriteLn's. The indentation is added to the
+// primary write, and to any newlines specified within the write. Note that this applies
+// to calls to WriteLn *only* -- calls to Write bypass the indentation parser.
+const IConsoleWriter& IConsoleWriter::SetIndent( int tabcount ) const
+{
+ conlog_Indent += tabcount;
+ pxAssert( conlog_Indent >= 0 );
+ return *this;
+}
+
+IConsoleWriter IConsoleWriter::Indent( int tabcount ) const
+{
+ IConsoleWriter retval = *this;
+ retval._imm_indentation = tabcount;
+ return retval;
+}
+
+// Changes the active console color.
+// This color will be unset by calls to colored text methods
+// such as ErrorMsg and Notice.
+const IConsoleWriter& IConsoleWriter::SetColor( ConsoleColors color ) const
+{
+ pxAssertMsg( color >= Color_Current && color < ConsoleColors_Count, "Invalid ConsoleColor specified." );
+
+ if( conlog_Color != color )
+ DoSetColor( conlog_Color = color );
+
+ return *this;
+}
+
+ConsoleColors IConsoleWriter::GetColor() const
+{
+ return conlog_Color;
+}
+
+// Restores the console color to default (usually black, or low-intensity white if the console uses a black background)
+const IConsoleWriter& IConsoleWriter::ClearColor() const
+{
+ if( conlog_Color != DefaultConsoleColor )
+ DoSetColor( conlog_Color = DefaultConsoleColor );
+
+ return *this;
+}
+
// --------------------------------------------------------------------------------------
// ASCII/UTF8 (char*)
// --------------------------------------------------------------------------------------
bool IConsoleWriter::Write( const char* fmt, ... ) const
{
+ if( DoWrite == NULL ) return false;
+
va_list args;
va_start(args,fmt);
DoWrite( ascii_format_string(fmt, args) );
@@ -412,11 +470,12 @@ bool IConsoleWriter::Write( const char* fmt, ... ) const
bool IConsoleWriter::Write( ConsoleColors color, const char* fmt, ... ) const
{
+ if( DoWrite == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( color );
+ ConsoleColorScope cs( color );
DoWrite( ascii_format_string(fmt, args) );
- ClearColor();
va_end(args);
return false;
@@ -424,9 +483,11 @@ bool IConsoleWriter::Write( ConsoleColors color, const char* fmt, ... ) const
bool IConsoleWriter::WriteLn( const char* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- DoWriteLn( ascii_format_string(fmt, args) );
+ DoWriteLn( _addIndentation( ascii_format_string(fmt, args), conlog_Indent ) );
va_end(args);
return false;
@@ -434,11 +495,11 @@ bool IConsoleWriter::WriteLn( const char* fmt, ... ) const
bool IConsoleWriter::WriteLn( ConsoleColors color, const char* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
va_list args;
va_start(args,fmt);
- SetColor( color );
- DoWriteLn( ascii_format_string(fmt, args) );
- ClearColor();
+ ConsoleColorScope cs( color );
+ DoWriteLn( _addIndentation( ascii_format_string(fmt, args), conlog_Indent ) );
va_end(args);
return false;
@@ -446,11 +507,12 @@ bool IConsoleWriter::WriteLn( ConsoleColors color, const char* fmt, ... ) const
bool IConsoleWriter::Error( const char* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( Color_StrongRed );
- DoWriteLn( ascii_format_string(fmt, args) );
- ClearColor();
+ ConsoleColorScope cs( Color_StrongRed );
+ DoWriteLn( _addIndentation( ascii_format_string(fmt, args) ) );
va_end(args);
return false;
@@ -458,11 +520,12 @@ bool IConsoleWriter::Error( const char* fmt, ... ) const
bool IConsoleWriter::Warning( const char* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( Color_StrongOrange );
- DoWriteLn( ascii_format_string(fmt, args) );
- ClearColor();
+ ConsoleColorScope cs( Color_StrongOrange );
+ DoWriteLn( _addIndentation( ascii_format_string(fmt, args) ) );
va_end(args);
return false;
@@ -474,6 +537,8 @@ bool IConsoleWriter::Warning( const char* fmt, ... ) const
bool IConsoleWriter::Write( const wxChar* fmt, ... ) const
{
+ if( DoWrite == NULL ) return false;
+
va_list args;
va_start(args,fmt);
DoWrite( unicode_format_string( fmt, args ) );
@@ -484,11 +549,12 @@ bool IConsoleWriter::Write( const wxChar* fmt, ... ) const
bool IConsoleWriter::Write( ConsoleColors color, const wxChar* fmt, ... ) const
{
+ if( DoWrite == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( color );
+ ConsoleColorScope cs( color );
DoWrite( unicode_format_string( fmt, args ) );
- ClearColor();
va_end(args);
return false;
@@ -496,9 +562,11 @@ bool IConsoleWriter::Write( ConsoleColors color, const wxChar* fmt, ... ) const
bool IConsoleWriter::WriteLn( const wxChar* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- DoWriteLn( unicode_format_string( fmt, args ) );
+ DoWriteLn( _addIndentation( unicode_format_string( fmt, args ), conlog_Indent ) );
va_end(args);
return false;
@@ -506,11 +574,12 @@ bool IConsoleWriter::WriteLn( const wxChar* fmt, ... ) const
bool IConsoleWriter::WriteLn( ConsoleColors color, const wxChar* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( color );
- DoWriteLn( unicode_format_string( fmt, args ) );
- ClearColor();
+ ConsoleColorScope cs( color );
+ DoWriteLn( _addIndentation( unicode_format_string( fmt, args ), conlog_Indent ) );
va_end(args);
return false;
@@ -518,11 +587,12 @@ bool IConsoleWriter::WriteLn( ConsoleColors color, const wxChar* fmt, ... ) cons
bool IConsoleWriter::Error( const wxChar* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( Color_StrongRed );
- DoWriteLn( unicode_format_string( fmt, args ) );
- ClearColor();
+ ConsoleColorScope cs( Color_StrongRed );
+ DoWriteLn( _addIndentation( unicode_format_string( fmt, args ) ) );
va_end(args);
return false;
@@ -530,17 +600,17 @@ bool IConsoleWriter::Error( const wxChar* fmt, ... ) const
bool IConsoleWriter::Warning( const wxChar* fmt, ... ) const
{
+ if( DoWriteLn == NULL ) return false;
+
va_list args;
va_start(args,fmt);
- SetColor( Color_StrongOrange );
- DoWriteLn( unicode_format_string( fmt, args ) );
- ClearColor();
+ ConsoleColorScope cs( Color_StrongOrange );
+ DoWriteLn( _addIndentation( unicode_format_string( fmt, args ) ) );
va_end(args);
return false;
}
-
// --------------------------------------------------------------------------------------
// Default Writer for C++ init / startup:
// --------------------------------------------------------------------------------------
diff --git a/common/src/Utilities/PrecompiledHeader.h b/common/src/Utilities/PrecompiledHeader.h
index 81362ff7f8..10e33c3096 100644
--- a/common/src/Utilities/PrecompiledHeader.h
+++ b/common/src/Utilities/PrecompiledHeader.h
@@ -1,3 +1,6 @@
+
+// Can't use #pragma once in the precompiled header, as it won't work correctly with GCC PCH.
+
#ifndef UTILITIES_PRECOMPILED_HEADER
#define UTILITIES_PRECOMPILED_HEADER
diff --git a/common/src/x86emitter/PrecompiledHeader.h b/common/src/x86emitter/PrecompiledHeader.h
index 8495f7e0d3..bb9541eb17 100644
--- a/common/src/x86emitter/PrecompiledHeader.h
+++ b/common/src/x86emitter/PrecompiledHeader.h
@@ -1,17 +1,17 @@
+
+// Can't use #pragma once in the precompiled header, as it won't work correctly with GCC PCH.
+
#ifndef EMITTER_PRECOMPILED_HEADER
#define EMITTER_PRECOMPILED_HEADER
-// must include wx/setup.h first, otherwise we get warnings/errors regarding __LINUX__
-#include
-
-#include "Pcsx2Defs.h"
-
#include
#include
#include // for wxPoint/wxRect stuff
#include
#include
+#include "Pcsx2Defs.h"
+
#include
#include
#include
diff --git a/pcsx2/CDVD/CDVD.cpp b/pcsx2/CDVD/CDVD.cpp
index 0bb6e2c970..646267432b 100644
--- a/pcsx2/CDVD/CDVD.cpp
+++ b/pcsx2/CDVD/CDVD.cpp
@@ -90,7 +90,7 @@ FILE *_cdvdOpenMechaVer()
fd = fopen(file, "wb");
if (fd == NULL)
{
- Console.Error( "\tMEC File Creation failed!" );
+ Console.Error( "MEC File Creation failed!" );
throw Exception::CreateStream( file );
//Msgbox::Alert( "_cdvdOpenMechaVer: Error creating %s", file);
//exit(1);
@@ -130,7 +130,7 @@ FILE *_cdvdOpenNVM()
fd = fopen(file, "wb");
if (fd == NULL)
{
- Console.Error( "\tNVM File Creation failed!" );
+ Console.Error( "NVM File Creation failed!" );
throw Exception::CreateStream( file );
}
for (int i=0; i<1024; i++) fputc(0, fd);
diff --git a/pcsx2/CDVD/CDVDisoReader.cpp b/pcsx2/CDVD/CDVDisoReader.cpp
index 01cf82a1a1..0566b177ed 100644
--- a/pcsx2/CDVD/CDVDisoReader.cpp
+++ b/pcsx2/CDVD/CDVDisoReader.cpp
@@ -150,12 +150,12 @@ static void FindLayer1Start()
if(layer1start == 0x200010)
{
- Console.WriteLn("\tCouldn't find second layer on dual layer... ignoring");
+ Console.Warning("CDVDiso: Couldn't find second layer... ignoring");
layer1start=-2;
}
if(layer1start>=0)
- Console.WriteLn("\tfound at 0x%8.8x", layer1start);
+ Console.WriteLn("CDVDiso: second layer found at 0x%8.8x", layer1start);
}
}
diff --git a/pcsx2/Memory.cpp b/pcsx2/Memory.cpp
index 7d09930586..881d4a9c34 100644
--- a/pcsx2/Memory.cpp
+++ b/pcsx2/Memory.cpp
@@ -39,7 +39,6 @@ BIOS
#pragma warning(disable:4799) // No EMMS at end of function
-#include
#include
#include "VUmicro.h"
diff --git a/pcsx2/Patch.cpp b/pcsx2/Patch.cpp
index f5cf589f8f..e11d108879 100644
--- a/pcsx2/Patch.cpp
+++ b/pcsx2/Patch.cpp
@@ -667,7 +667,7 @@ namespace PatchFunc
catch( wxString& exmsg )
{
Console.Error( L"(Patch) Error Parsing: %s=%s", cmd.c_str(), param.c_str() );
- Console.Error( L"\t" + exmsg );
+ Console.Indent().Error( exmsg );
}
}
diff --git a/pcsx2/PluginManager.cpp b/pcsx2/PluginManager.cpp
index b251b501ab..998c2af256 100644
--- a/pcsx2/PluginManager.cpp
+++ b/pcsx2/PluginManager.cpp
@@ -668,9 +668,10 @@ PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] )
const PluginInfo* pi = tbl_PluginInfo; do
{
+ ConsoleIndentScope indent;
const PluginsEnum_t pid = pi->id;
- Console.WriteLn( L"\tBinding %s\t: %s ", tbl_PluginInfo[pid].GetShortname().c_str(), folders[pid].c_str() );
+ Console.WriteLn( L"Binding %s\t: %s ", tbl_PluginInfo[pid].GetShortname().c_str(), folders[pid].c_str() );
if( folders[pid].IsEmpty() )
throw Exception::InvalidArgument( "Empty plugin filename." );
@@ -902,7 +903,7 @@ void PluginManager::Open( PluginsEnum_t pid )
{
if( m_info[pid].IsOpened ) return;
- Console.WriteLn( "\tOpening %s", tbl_PluginInfo[pid].shortname );
+ Console.Indent().WriteLn( "Opening %s", tbl_PluginInfo[pid].shortname );
// Each Open needs to be called explicitly. >_<
@@ -944,7 +945,7 @@ void PluginManager::Open()
void PluginManager::Close( PluginsEnum_t pid )
{
if( !m_info[pid].IsOpened ) return;
- Console.WriteLn( "\tClosing %s", tbl_PluginInfo[pid].shortname );
+ Console.Indent().WriteLn( "Closing %s", tbl_PluginInfo[pid].shortname );
if( pid == PluginId_GS )
{
@@ -996,7 +997,7 @@ void PluginManager::Init()
Console.WriteLn( Color_StrongBlue, "Initializing plugins..." );
printlog = true;
}
- Console.WriteLn( "\tInit %s", tbl_PluginInfo[pid].shortname );
+ Console.Indent().WriteLn( "Init %s", tbl_PluginInfo[pid].shortname );
if( 0 != m_info[pid].CommonBindings.Init() )
throw Exception::PluginInitError( pid );
@@ -1037,7 +1038,7 @@ void PluginManager::Shutdown()
{
const PluginsEnum_t pid = tbl_PluginInfo[i].id;
if( !m_info[pid].IsInitialized ) continue;
- DevCon.WriteLn( "\tShutdown %s", tbl_PluginInfo[pid].shortname );
+ DevCon.Indent().WriteLn( "Shutdown %s", tbl_PluginInfo[pid].shortname );
m_info[pid].IsInitialized = false;
m_info[pid].CommonBindings.Shutdown();
}
@@ -1078,7 +1079,7 @@ bool PluginManager::DoFreeze( PluginsEnum_t pid, int mode, freezeData* data )
//
void PluginManager::Freeze( PluginsEnum_t pid, SaveStateBase& state )
{
- Console.WriteLn( "\t%s %s", state.IsSaving() ? "Saving" : "Loading",
+ Console.Indent().WriteLn( "%s %s", state.IsSaving() ? "Saving" : "Loading",
tbl_PluginInfo[pid].shortname );
freezeData fP = { 0, NULL };
@@ -1093,7 +1094,7 @@ void PluginManager::Freeze( PluginsEnum_t pid, SaveStateBase& state )
// no state data to read, but the plugin expects some state data.
// Issue a warning to console...
if( fP.size != 0 )
- Console.Warning( "\tWarning: No data for this plugin was found. Plugin status may be unpredictable." );
+ Console.Indent().Warning( "Warning: No data for this plugin was found. Plugin status may be unpredictable." );
return;
// Note: Size mismatch check could also be done here on loading, but
diff --git a/pcsx2/RecoverySystem.cpp b/pcsx2/RecoverySystem.cpp
index dbd731ba14..ce37e796b2 100644
--- a/pcsx2/RecoverySystem.cpp
+++ b/pcsx2/RecoverySystem.cpp
@@ -377,7 +377,7 @@ void StateCopy_SaveToSlot( uint num )
zip_dest_filename = SaveStateBase::GetFilename( num );
(new StateThread_Freeze( OnFinished_ZipToDisk ))->Start();
Console.WriteLn( Color_StrongGreen, "Saving savestate to slot %d...", num );
- Console.WriteLn( Color_StrongGreen, L"\tfilename: %s", zip_dest_filename.c_str() );
+ Console.Indent().WriteLn( Color_StrongGreen, L"filename: %s", zip_dest_filename.c_str() );
}
void StateCopy_LoadFromSlot( uint slot )
@@ -392,7 +392,7 @@ void StateCopy_LoadFromSlot( uint slot )
}
Console.WriteLn( Color_StrongGreen, "Loading savestate from slot %d...", slot );
- Console.WriteLn( Color_StrongGreen, L"\tfilename: %s", file.c_str() );
+ Console.Indent().WriteLn( Color_StrongGreen, L"filename: %s", file.c_str() );
CoreThread.Pause();
(new StateThread_UnzipFromDisk( OnFinished_Restore, file ))->Start();
diff --git a/pcsx2/SaveState.cpp b/pcsx2/SaveState.cpp
index ef20c706ec..a72a6c5d1d 100644
--- a/pcsx2/SaveState.cpp
+++ b/pcsx2/SaveState.cpp
@@ -112,10 +112,11 @@ void SaveStateBase::FreezeBios()
{
if( memcmp( descin, desccmp, 128 ) != 0 )
{
- Console.Error(
- "\n\tWarning: BIOS Version Mismatch, savestate may be unstable!\n"
- "\t\tCurrent Version: %s\n"
- "\t\tSavestate Version: %s\n",
+ Console.Newline();
+ Console.Indent(1).Error( "Warning: BIOS Version Mismatch, savestate may be unstable!" );
+ Console.Indent(2).Error(
+ "Current Version: %s\n"
+ "Savestate Version: %s\n",
descout.ToUTF8().data(), descin
);
}
diff --git a/pcsx2/System.cpp b/pcsx2/System.cpp
index b1e9f2f06a..078874bd54 100644
--- a/pcsx2/System.cpp
+++ b/pcsx2/System.cpp
@@ -47,21 +47,20 @@ void SysDetect()
cpudetectInit();
- //Console.SetColor( Color_Gray );
-
Console.WriteLn( Color_StrongBlack, "x86-32 Init:" );
- Console.WriteLn(
- L"\tCPU vendor name = %s\n"
- L"\tFamilyID = %x\n"
- L"\tx86Family = %s\n"
- L"\tCPU speed = %d.%03d ghz\n"
- L"\tCores = %d physical [%d logical]\n"
- L"\tx86PType = %s\n"
- L"\tx86Flags = %8.8x %8.8x\n"
- L"\tx86EFlags = %8.8x\n",
+
+ Console.Indent().WriteLn(
+ L"CPU vendor name = %s\n"
+ L"FamilyID = %x\n"
+ L"x86Family = %s\n"
+ L"CPU speed = %d.%03d ghz\n"
+ L"Cores = %d physical [%d logical]\n"
+ L"x86PType = %s\n"
+ L"x86Flags = %8.8x %8.8x\n"
+ L"x86EFlags = %8.8x\n",
fromUTF8( x86caps.VendorName ).c_str(), x86caps.StepID,
fromUTF8( x86caps.FamilyName ).Trim().Trim(false).c_str(),
- x86caps.Speed / 1000, x86caps.Speed%1000,
+ x86caps.Speed / 1000, x86caps.Speed % 1000,
x86caps.PhysicalCores, x86caps.LogicalCores,
fromUTF8( x86caps.TypeName ).c_str(),
x86caps.Flags, x86caps.Flags2,
@@ -87,12 +86,10 @@ void SysDetect()
JoinString( result[0], features[0], L".. " );
JoinString( result[1], features[1], L".. " );
- Console.ClearColor();
-
Console.WriteLn( Color_StrongBlack, L"x86 Features Detected:" );
- Console.WriteLn( L"\t" + result[0] + (result[1].IsEmpty() ? L"" : (L"\n\t" + result[1])) + L"\n" );
+ Console.Indent().WriteLn( result[0] + (result[1].IsEmpty() ? L"" : (L"\n" + result[1])) + L"\n" );
- //if ( x86caps.VendorName[0] == 'A' ) //AMD cpu
+ Console.Newline();
}
// returns the translated error message for the Virtual Machine failing to allocate!
diff --git a/pcsx2/gui/AppInit.cpp b/pcsx2/gui/AppInit.cpp
index c8985c2387..3cb23baa99 100644
--- a/pcsx2/gui/AppInit.cpp
+++ b/pcsx2/gui/AppInit.cpp
@@ -452,7 +452,7 @@ struct CrtDebugBreak
{
CrtDebugBreak( int spot )
{
-#ifndef __LINUX__
+#ifdef __WXMSW__
_CrtSetBreakAlloc( spot );
#endif
}
diff --git a/pcsx2/gui/ConsoleLogger.cpp b/pcsx2/gui/ConsoleLogger.cpp
index ffb9f63731..bc3b8ab1ea 100644
--- a/pcsx2/gui/ConsoleLogger.cpp
+++ b/pcsx2/gui/ConsoleLogger.cpp
@@ -181,17 +181,17 @@ void ConsoleLogFrame::ColorArray::Create( int fontsize )
// Standard R, G, B format:
new (&m_table[Color_Default]) wxTextAttr( wxColor( 0, 0, 0 ), wxNullColour, fixed );
- new (&m_table[Color_Black]) wxTextAttr( wxColor( 0, 0, 0 ), wxNullColour, fixed );
- new (&m_table[Color_Red]) wxTextAttr( wxColor( 128, 0, 0 ), wxNullColour, fixed );
- new (&m_table[Color_Green]) wxTextAttr( wxColor( 0, 128, 0 ), wxNullColour, fixed );
- new (&m_table[Color_Blue]) wxTextAttr( wxColor( 0, 0, 128 ), wxNullColour, fixed );
- new (&m_table[Color_Magenta]) wxTextAttr( wxColor( 160, 0, 160 ), wxNullColour, fixed );
- new (&m_table[Color_Orange]) wxTextAttr( wxColor( 160, 120, 0 ), wxNullColour, fixed );
- new (&m_table[Color_Gray]) wxTextAttr( wxColor( 108, 108, 108 ), wxNullColour, fixed );
+ new (&m_table[Color_Black]) wxTextAttr( wxColor( 0, 0, 0 ), wxNullColour, fixed );
+ new (&m_table[Color_Red]) wxTextAttr( wxColor( 128, 0, 0 ), wxNullColour, fixed );
+ new (&m_table[Color_Green]) wxTextAttr( wxColor( 0, 128, 0 ), wxNullColour, fixed );
+ new (&m_table[Color_Blue]) wxTextAttr( wxColor( 0, 0, 128 ), wxNullColour, fixed );
+ new (&m_table[Color_Magenta] ) wxTextAttr( wxColor( 160, 0, 160 ), wxNullColour, fixed );
+ new (&m_table[Color_Orange]) wxTextAttr( wxColor( 160, 120, 0 ), wxNullColour, fixed );
+ new (&m_table[Color_Gray]) wxTextAttr( wxColor( 108, 108, 108 ), wxNullColour, fixed );
- new (&m_table[Color_Cyan]) wxTextAttr( wxColor( 128, 180, 180 ), wxNullColour, fixed );
- new (&m_table[Color_Yellow]) wxTextAttr( wxColor( 180, 180, 128 ), wxNullColour, fixed );
- new (&m_table[Color_White]) wxTextAttr( wxColor( 160, 160, 160 ), wxNullColour, fixed );
+ new (&m_table[Color_Cyan]) wxTextAttr( wxColor( 128, 180, 180 ), wxNullColour, fixed );
+ new (&m_table[Color_Yellow]) wxTextAttr( wxColor( 180, 180, 128 ), wxNullColour, fixed );
+ new (&m_table[Color_White]) wxTextAttr( wxColor( 160, 160, 160 ), wxNullColour, fixed );
new (&m_table[Color_StrongBlack]) wxTextAttr( wxColor( 0, 0, 0 ), wxNullColour, fixedB );
new (&m_table[Color_StrongRed]) wxTextAttr( wxColor( 128, 0, 0 ), wxNullColour, fixedB );
@@ -228,8 +228,6 @@ void ConsoleLogFrame::ColorArray::SetFont( int fontsize )
Create( fontsize );
}
-static const ConsoleColors DefaultConsoleColor = Color_Black;
-
enum MenuIDs_t
{
MenuID_FontSize_Small = 0x10,
@@ -321,7 +319,6 @@ ConsoleLogFrame::ConsoleLogFrame( MainEmuFrame *parent, const wxString& title, A
ConsoleLogFrame::~ConsoleLogFrame()
{
- safe_delete( m_threadlogger );
wxGetApp().OnProgramLogClosed();
}
@@ -454,7 +451,7 @@ void ConsoleLogFrame::OnCloseWindow(wxCloseEvent& event)
DoClose();
else
{
- safe_delete( m_threadlogger );
+ m_threadlogger = NULL;
wxGetApp().OnProgramLogClosed();
event.Skip();
}
@@ -681,31 +678,22 @@ static void __concall ConsoleToFile_SetTitle( const wxString& title )
ConsoleWriter_Stdio.SetTitle(title);
}
-static void __concall ConsoleToFile_SetColor( ConsoleColors color )
+static void __concall ConsoleToFile_DoSetColor( ConsoleColors color )
{
ConsoleWriter_Stdio.SetColor(color);
}
-static void __concall ConsoleToFile_ClearColor()
-{
- ConsoleWriter_Stdio.ClearColor();
-}
-
extern const IConsoleWriter ConsoleWriter_File;
const IConsoleWriter ConsoleWriter_File =
{
ConsoleToFile_DoWrite,
ConsoleToFile_DoWriteLn,
+ ConsoleToFile_DoSetColor,
+
ConsoleToFile_Newline,
-
ConsoleToFile_SetTitle,
- ConsoleToFile_SetColor,
- ConsoleToFile_ClearColor,
};
-// thread-local console color storage.
-static __threadlocal ConsoleColors th_CurrentColor = DefaultConsoleColor;
-
// --------------------------------------------------------------------------------------
// ConsoleToWindow Implementations
// --------------------------------------------------------------------------------------
@@ -719,17 +707,9 @@ static void __concall ConsoleToWindow_SetTitle( const wxString& title )
}
template< const IConsoleWriter& secondary >
-static void __concall ConsoleToWindow_SetColor( ConsoleColors color )
+static void __concall ConsoleToWindow_DoSetColor( ConsoleColors color )
{
secondary.SetColor(color);
- th_CurrentColor = color;
-}
-
-template< const IConsoleWriter& secondary >
-static void __concall ConsoleToWindow_ClearColor()
-{
- secondary.ClearColor();
- th_CurrentColor = DefaultConsoleColor;
}
template< const IConsoleWriter& secondary >
@@ -743,14 +723,14 @@ template< const IConsoleWriter& secondary >
static void __concall ConsoleToWindow_DoWrite( const wxString& fmt )
{
secondary.DoWrite( fmt );
- ((Pcsx2App&)*wxTheApp).GetProgramLog()->Write( th_CurrentColor, fmt );
+ ((Pcsx2App&)*wxTheApp).GetProgramLog()->Write( Console.GetColor(), fmt );
}
template< const IConsoleWriter& secondary >
static void __concall ConsoleToWindow_DoWriteLn( const wxString& fmt )
{
secondary.DoWriteLn( fmt );
- ((Pcsx2App&)*wxTheApp).GetProgramLog()->Write( th_CurrentColor, fmt + L"\n" );
+ ((Pcsx2App&)*wxTheApp).GetProgramLog()->Write( Console.GetColor(), fmt + L"\n" );
}
typedef void __concall DoWriteFn(const wxString&);
@@ -759,22 +739,20 @@ static const IConsoleWriter ConsoleWriter_Window =
{
ConsoleToWindow_DoWrite,
ConsoleToWindow_DoWriteLn,
- ConsoleToWindow_Newline,
+ ConsoleToWindow_DoSetColor,
+ ConsoleToWindow_Newline,
ConsoleToWindow_SetTitle,
- ConsoleToWindow_SetColor,
- ConsoleToWindow_ClearColor,
-};
+};
static const IConsoleWriter ConsoleWriter_WindowAndFile =
{
ConsoleToWindow_DoWrite,
ConsoleToWindow_DoWriteLn,
- ConsoleToWindow_Newline,
+ ConsoleToWindow_DoSetColor,
+ ConsoleToWindow_Newline,
ConsoleToWindow_SetTitle,
- ConsoleToWindow_SetColor,
- ConsoleToWindow_ClearColor,
};
void Pcsx2App::EnableAllLogging() const
@@ -851,29 +829,29 @@ protected:
long m_Flags;
public:
- pxMessageBoxEvent() :
- wxEvent( 0, pxEVT_MSGBOX )
- , m_Instdata( *(MsgboxEventResult*)NULL )
- , m_Title()
- , m_Content()
+ pxMessageBoxEvent()
+ : wxEvent( 0, pxEVT_MSGBOX )
+ , m_Instdata( *(MsgboxEventResult*)NULL )
+ , m_Title()
+ , m_Content()
{
m_Flags = 0;
}
- pxMessageBoxEvent( MsgboxEventResult& instdata, const wxString& title, const wxString& content, long flags ) :
- wxEvent( 0, pxEVT_MSGBOX )
- , m_Instdata( instdata )
- , m_Title( title )
- , m_Content( content )
+ pxMessageBoxEvent( MsgboxEventResult& instdata, const wxString& title, const wxString& content, long flags )
+ : wxEvent( 0, pxEVT_MSGBOX )
+ , m_Instdata( instdata )
+ , m_Title( title )
+ , m_Content( content )
{
m_Flags = flags;
}
- pxMessageBoxEvent( const pxMessageBoxEvent& event ) :
- wxEvent( event )
- , m_Instdata( event.m_Instdata )
- , m_Title( event.m_Title )
- , m_Content( event.m_Content )
+ pxMessageBoxEvent( const pxMessageBoxEvent& event )
+ : wxEvent( event )
+ , m_Instdata( event.m_Instdata )
+ , m_Title( event.m_Title )
+ , m_Content( event.m_Content )
{
m_Flags = event.m_Flags;
}
diff --git a/pcsx2/gui/ConsoleLogger.h b/pcsx2/gui/ConsoleLogger.h
index 8a1c47874c..7d65b7afbe 100644
--- a/pcsx2/gui/ConsoleLogger.h
+++ b/pcsx2/gui/ConsoleLogger.h
@@ -182,7 +182,7 @@ protected:
// Threaded log spammer, useful for testing console logging performance.
// (alternatively you can enable Disasm logging in any recompiler and achieve
// a similar effect)
- ConsoleTestThread* m_threadlogger;
+ ScopedPtr m_threadlogger;
public:
// ctor & dtor
diff --git a/pcsx2/gui/IniInterface.cpp b/pcsx2/gui/IniInterface.cpp
index 4fa96df9bd..6ba10bf4d5 100644
--- a/pcsx2/gui/IniInterface.cpp
+++ b/pcsx2/gui/IniInterface.cpp
@@ -270,11 +270,11 @@ void IniSaver::_EnumEntry( const wxString& var, int& value, const wxChar* const*
if( value >= cnt )
{
- Console.Warning(
- L"(SaveSettings) An illegal enumerated index was detected when saving '%s'\n"
- L"\tIllegal Value: %d\n"
- L"\tUsing Default: %d (%s)\n",
- var.c_str(), value, defvalue, enumArray[defvalue]
+ Console.Warning( L"(SaveSettings) An illegal enumerated index was detected when saving '%s'", var.c_str() );
+ Console.Indent().Warning(
+ L"Illegal Value: %d\n"
+ L"Using Default: %d (%s)\n",
+ value, defvalue, enumArray[defvalue]
);
// Cause a debug assertion, since this is a fully recoverable error.
diff --git a/pcsx2/gui/i18n.cpp b/pcsx2/gui/i18n.cpp
index 14869f0d36..b30487e32c 100644
--- a/pcsx2/gui/i18n.cpp
+++ b/pcsx2/gui/i18n.cpp
@@ -141,7 +141,7 @@ const wxChar* __fastcall pxGetTranslation( const wxChar* message )
if( wxStrlen( message ) > 96 )
{
Console.Warning( "pxGetTranslation: Long message detected, maybe use pxE() instead?" );
- Console.WriteLn( Color_Green, L"\tMessage: %s", message );
+ Console.Indent().WriteLn( Color_Green, L"Message: %s", message );
}
}
return wxGetTranslation( message );
@@ -156,15 +156,13 @@ bool i18n_SetLanguage( int wxLangId )
return false;
}
- wxLocale* locale = new wxLocale( wxLangId, wxLOCALE_CONV_ENCODING );
+ ScopedPtr locale( new wxLocale( wxLangId, wxLOCALE_CONV_ENCODING ) );
if( !locale->IsOk() )
{
Console.Warning( L"SetLanguage: '%s' [%s] is not supported by the operating system",
wxLocale::GetLanguageName( locale->GetLanguage() ).c_str(), locale->GetCanonicalName().c_str()
);
-
- safe_delete( locale );
return false;
}
@@ -173,8 +171,9 @@ bool i18n_SetLanguage( int wxLangId )
Console.Warning( L"SetLanguage: Cannot find pcsx2main.mo file for language '%s' [%s]",
wxLocale::GetLanguageName( locale->GetLanguage() ).c_str(), locale->GetCanonicalName().c_str()
);
- safe_delete( locale );
return false;
}
+
+ locale.DetachPtr();
return true;
}
diff --git a/pcsx2/windows/VCprojects/pcsx2_2008.vcproj b/pcsx2/windows/VCprojects/pcsx2_2008.vcproj
index 1d93fcf256..4c65355015 100644
--- a/pcsx2/windows/VCprojects/pcsx2_2008.vcproj
+++ b/pcsx2/windows/VCprojects/pcsx2_2008.vcproj
@@ -1,7 +1,7 @@
@@ -213,7 +211,6 @@
EnableEnhancedInstructionSet="0"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="PrecompiledHeader.h"
- PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
CompileAs="2"
/>
-#include
#include
#include