mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Some code clean up
console now prints to file and stderr on windows someone feels like creating a wxw version? git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2046 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@@ -16,40 +16,33 @@
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Includes
|
||||
// -------------
|
||||
#include <string> // System: To be able to add strings with "+"
|
||||
#include <stdio.h>
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#include "Common.h"
|
||||
#include "ConsoleWindow.h" // Common
|
||||
///////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Declarations and definitions
|
||||
// -------------
|
||||
|
||||
namespace Console
|
||||
{
|
||||
|
||||
// Create handles
|
||||
#ifdef _WIN32
|
||||
FILE* __fStdOut = NULL;
|
||||
#ifdef _WIN32
|
||||
HANDLE __hStdOut = NULL;
|
||||
#endif
|
||||
|
||||
//////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
/* Start console window - width and height is the size of console window, if you enable
|
||||
File the output will also be written to this file. */
|
||||
// -------------
|
||||
void Open(int Width, int Height, char * Name, bool File)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
@@ -71,9 +64,9 @@ void Open(int Width, int Height, char * Name, bool File)
|
||||
SMALL_RECT coo = {0,0, (Width - 1),50}; // Top, left, right, bottom
|
||||
SetConsoleWindowInfo(__hStdOut, TRUE, &coo);
|
||||
|
||||
// -----------------------------------------
|
||||
|
||||
#endif
|
||||
// Create a file and a file handle if File is enabled and we don't already have a file handle
|
||||
// -------------
|
||||
if(File && !__fStdOut)
|
||||
{
|
||||
// Edit the log file name
|
||||
@@ -84,33 +77,28 @@ void Open(int Width, int Height, char * Name, bool File)
|
||||
// Open the file handle
|
||||
__fStdOut = fopen(FullFilename.c_str(), "w");
|
||||
}
|
||||
// ---------------
|
||||
#endif
|
||||
|
||||
}
|
||||
//////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
/* Close the console window and close the eventual file handle */
|
||||
// -------------
|
||||
void Close()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
FreeConsole(); // Close the console window
|
||||
if(__fStdOut) fclose(__fStdOut); // Close the file handle
|
||||
#endif
|
||||
if(__fStdOut) fclose(__fStdOut); // Close the file handle
|
||||
|
||||
}
|
||||
//////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Print to screen and file
|
||||
// -------------
|
||||
int Print(const char *fmt, ...)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
if(__hStdOut)
|
||||
{
|
||||
#endif
|
||||
char s[1024*20]; // Warning, mind this value
|
||||
va_list argptr;
|
||||
int cnt; // To store the vsnprintf return message
|
||||
@@ -119,41 +107,34 @@ int Print(const char *fmt, ...)
|
||||
cnt = vsnprintf(s, 500, fmt, argptr);
|
||||
va_end(argptr);
|
||||
|
||||
|
||||
#if defined(_WIN32)
|
||||
DWORD cCharsWritten; // We will get a value back here
|
||||
|
||||
// ------------------------------------------
|
||||
// Write to console
|
||||
// ----------------
|
||||
if(__hStdOut)
|
||||
{
|
||||
WriteConsole(__hStdOut, s, (DWORD)strlen(s), &cCharsWritten, NULL);
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
WriteConsole(__hStdOut, s, (DWORD)strlen(s), &cCharsWritten, NULL);
|
||||
#else
|
||||
fprintf(stderr, "%s", s);
|
||||
#endif
|
||||
// Write to the file
|
||||
// ----------------
|
||||
if(__fStdOut)
|
||||
{
|
||||
fprintf(__fStdOut, s);
|
||||
fflush(__fStdOut); // Write file now, don't wait
|
||||
fprintf(__fStdOut, "%s", s);
|
||||
fflush(__fStdOut); // Write file now, don't wait
|
||||
}
|
||||
|
||||
return(cnt);
|
||||
}
|
||||
else
|
||||
|
||||
#if defined(_WIN32)
|
||||
} else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
}
|
||||
/////////////////////////////
|
||||
|
||||
|
||||
// =======================================================================================
|
||||
// Clear console screen
|
||||
// ---------------
|
||||
void ClearScreen()
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
@@ -177,13 +158,10 @@ void ClearScreen()
|
||||
}
|
||||
#endif
|
||||
}
|
||||
// =====================
|
||||
|
||||
|
||||
// =======================================================================================
|
||||
/* Get window handle of console window to be able to resize it. We use GetConsoleTitle() and
|
||||
FindWindow() to locate the console window handle. */
|
||||
// ---------------
|
||||
/* Get window handle of console window to be able to resize it. We use
|
||||
GetConsoleTitle() and FindWindow() to locate the console window handle. */
|
||||
#if defined(_WIN32)
|
||||
HWND GetHwnd(void)
|
||||
{
|
||||
@@ -213,6 +191,5 @@ HWND GetHwnd(void)
|
||||
return(hwndFound);
|
||||
}
|
||||
#endif // _WIN32
|
||||
// =====================
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
@@ -65,7 +65,7 @@ std::string GetLastErrorAsString()
|
||||
static std::string errstr;
|
||||
char *tmp = dlerror();
|
||||
if (tmp)
|
||||
errstr = tmp;
|
||||
errstr = tmp;
|
||||
|
||||
return errstr;
|
||||
#endif
|
||||
@@ -121,7 +121,8 @@ int DynamicLibrary::Unload()
|
||||
Console::Print("FreeLibrary: %i\n", library_file.c_str());
|
||||
retval = FreeLibrary(library);
|
||||
#else
|
||||
retval = dlclose(library)?0:1;
|
||||
Console::Print("FreeLibrary: %i\n", library_file.c_str());
|
||||
retval = dlclose(library)?0:1;
|
||||
#endif
|
||||
if (!retval) {
|
||||
PanicAlert("Error unloading DLL %s: %s", library_file.c_str(),
|
||||
|
||||
@@ -354,7 +354,7 @@ THREAD_RETURN EmuThread(void *pArg)
|
||||
if(PADInitialize.padNumber == -1)
|
||||
{
|
||||
Plugins.GetPad(i)->Shutdown();
|
||||
Plugins.FreePad();
|
||||
Plugins.FreePad(i);
|
||||
Plugins.GetPad(i)->Initialize(&PADInitialize);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -32,11 +32,11 @@ public:
|
||||
CPluginInfo(const char *_rFileName);
|
||||
bool IsValid() const {return(m_Valid);}
|
||||
const PLUGIN_INFO& GetPluginInfo() const {return(m_PluginInfo);}
|
||||
const std::string& GetFileName() const {return(m_FileName);}
|
||||
const std::string& GetFilename() const {return(m_Filename);}
|
||||
|
||||
private:
|
||||
PLUGIN_INFO m_PluginInfo;
|
||||
std::string m_FileName;
|
||||
std::string m_Filename;
|
||||
bool m_Valid;
|
||||
};
|
||||
|
||||
@@ -50,8 +50,9 @@ public:
|
||||
Common::PluginWiimote *GetWiimote(int controller);
|
||||
Common::PluginDSP *GetDSP();
|
||||
Common::PluginVideo *GetVideo();
|
||||
Common::PluginPAD *FreePad();
|
||||
Common::PluginVideo *FreeVideo();
|
||||
|
||||
void FreePad(u32 pad);
|
||||
void FreeVideo();
|
||||
|
||||
bool InitPlugins();
|
||||
void ShutdownPlugins();
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Include
|
||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||
#include <string> // System
|
||||
#include <vector>
|
||||
|
||||
@@ -29,19 +27,11 @@
|
||||
#include "PluginManager.h"
|
||||
#include "ConfigManager.h"
|
||||
#include "Frame.h"
|
||||
//////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Declarations and definitions
|
||||
// ¯¯¯¯¯¯¯¯¯¯
|
||||
extern CFrame* main_frame;
|
||||
///////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Event table
|
||||
// ¯¯¯¯¯¯¯¯¯¯
|
||||
BEGIN_EVENT_TABLE(CConfigMain, wxDialog)
|
||||
|
||||
EVT_CLOSE(CConfigMain::OnClose)
|
||||
@@ -89,12 +79,8 @@ EVT_CHOICE(ID_WIIMOTE_CB, CConfigMain::OnSelectionChanged)
|
||||
EVT_BUTTON(ID_WIIMOTE_CONFIG, CConfigMain::OnConfig)
|
||||
|
||||
END_EVENT_TABLE()
|
||||
////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Window class
|
||||
// ¯¯¯¯¯¯¯¯¯¯
|
||||
CConfigMain::CConfigMain(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& position, const wxSize& size, long style)
|
||||
: wxDialog(parent, id, title, position, size, style)
|
||||
{
|
||||
@@ -129,12 +115,9 @@ CConfigMain::CConfigMain(wxWindow* parent, wxWindowID id, const wxString& title,
|
||||
CConfigMain::~CConfigMain()
|
||||
{
|
||||
}
|
||||
////////////////////////////////////////////
|
||||
|
||||
|
||||
// ====================================================================
|
||||
// Enable or disable objects
|
||||
// -------------
|
||||
void CConfigMain::UpdateGUI()
|
||||
{
|
||||
if(Core::GetState() != Core::CORE_UNINITIALIZED)
|
||||
@@ -147,7 +130,7 @@ void CConfigMain::UpdateGUI()
|
||||
OptimizeQuantizers->Disable();
|
||||
SkipIdle->Disable();
|
||||
EnableCheats->Disable();
|
||||
// --------
|
||||
|
||||
GamecubePage->Disable();
|
||||
WiiPage->Disable();
|
||||
PathsPage->Disable();
|
||||
@@ -187,13 +170,9 @@ void CConfigMain::CreateGUIControls()
|
||||
Notebook->AddPage(PluginPage, wxT("Plugins"));
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// General page
|
||||
// --------
|
||||
|
||||
// -----------------------------------
|
||||
// Core Settings
|
||||
// -----------
|
||||
// Basic Settings
|
||||
UseDualCore = new wxCheckBox(GeneralPage, ID_USEDUALCORE, wxT("Enable Dual Core"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
UseDualCore->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bUseDualCore);
|
||||
@@ -211,9 +190,8 @@ void CConfigMain::CreateGUIControls()
|
||||
OptimizeQuantizers = new wxCheckBox(GeneralPage, ID_OPTIMIZEQUANTIZERS, wxT("Optimize Quantizers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
OptimizeQuantizers->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bOptimizeQuantizers);
|
||||
|
||||
// -----------------------------------
|
||||
// Interface settings
|
||||
// -----------
|
||||
|
||||
// Confirm on stop
|
||||
ConfirmStop = new wxCheckBox(GeneralPage, ID_INTERFACE_CONFIRMSTOP, wxT("Confirm On Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
ConfirmStop->SetValue(SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop);
|
||||
@@ -308,9 +286,7 @@ void CConfigMain::CreateGUIControls()
|
||||
sGeneralPage->Layout();
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// Gamecube page
|
||||
// --------
|
||||
sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, GamecubePage, wxT("IPL Settings"));
|
||||
/*
|
||||
arrayStringFor_GCSystemLang.Add(wxT("English"));
|
||||
@@ -334,9 +310,7 @@ void CConfigMain::CreateGUIControls()
|
||||
sGamecube->Layout();
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// Wii page
|
||||
// --------
|
||||
sbWiimoteSettings = new wxStaticBoxSizer(wxVERTICAL, WiiPage, wxT("Wiimote Settings"));
|
||||
arrayStringFor_WiiSensBarPos.Add(wxT("Bottom")); arrayStringFor_WiiSensBarPos.Add(wxT("Top"));
|
||||
WiiSensBarPosText = new wxStaticText(WiiPage, ID_WII_BT_BAR_TEXT, wxT("Sensor Bar Position:"), wxDefaultPosition, wxDefaultSize);
|
||||
@@ -384,9 +358,7 @@ void CConfigMain::CreateGUIControls()
|
||||
sWii->Layout();
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// Paths page
|
||||
// --------
|
||||
sbISOPaths = new wxStaticBoxSizer(wxVERTICAL, PathsPage, wxT("ISO Directories"));
|
||||
ISOPaths = new wxListBox(PathsPage, ID_ISOPATHS, wxDefaultPosition, wxDefaultSize, arrayStringFor_ISOPaths, wxLB_SINGLE, wxDefaultValidator);
|
||||
AddISOPath = new wxButton(PathsPage, ID_ADDISOPATH, wxT("Add..."), wxDefaultPosition, wxDefaultSize, 0);
|
||||
@@ -424,9 +396,7 @@ void CConfigMain::CreateGUIControls()
|
||||
PathsPage->SetSizer(sPaths);
|
||||
sPaths->Layout();
|
||||
|
||||
//////////////////////////////////
|
||||
// Plugins page
|
||||
// --------
|
||||
sbGraphicsPlugin = new wxStaticBoxSizer(wxHORIZONTAL, PluginPage, wxT("Graphics"));
|
||||
GraphicSelection = new wxChoice(PluginPage, ID_GRAPHIC_CB, wxDefaultPosition, wxDefaultSize, NULL, 0, wxDefaultValidator);
|
||||
GraphicConfig = new wxButton(PluginPage, ID_GRAPHIC_CONFIG, wxT("Config..."), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||
@@ -523,9 +493,7 @@ void CConfigMain::CloseClick(wxCommandEvent& WXUNUSED (event))
|
||||
|
||||
|
||||
|
||||
// ====================================================================
|
||||
// Core settings
|
||||
// -------------
|
||||
void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
|
||||
{
|
||||
switch (event.GetId())
|
||||
@@ -587,13 +555,10 @@ void CConfigMain::GCSettingsChanged(wxCommandEvent& event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
// ==========================
|
||||
|
||||
|
||||
|
||||
// ====================================================================
|
||||
// Wii settings
|
||||
// -------------
|
||||
void CConfigMain::WiiSettingsChanged(wxCommandEvent& event)
|
||||
{
|
||||
switch (event.GetId())
|
||||
@@ -619,13 +584,10 @@ void CConfigMain::WiiSettingsChanged(wxCommandEvent& event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
// ==========================
|
||||
|
||||
|
||||
|
||||
// ====================================================================
|
||||
// Paths settings
|
||||
// -------------
|
||||
void CConfigMain::ISOPathsSelectionChanged(wxCommandEvent& WXUNUSED (event))
|
||||
{
|
||||
if (!ISOPaths->GetStringSelection().empty())
|
||||
@@ -684,9 +646,7 @@ void CConfigMain::DVDRootChanged(wxFileDirPickerEvent& WXUNUSED (event))
|
||||
}
|
||||
|
||||
|
||||
// =======================================================
|
||||
// Plugins settings
|
||||
// -------------
|
||||
|
||||
// Update plugin filenames
|
||||
void CConfigMain::OnSelectionChanged(wxCommandEvent& WXUNUSED (event))
|
||||
@@ -731,7 +691,7 @@ void CConfigMain::CallConfig(wxChoice* _pChoice)
|
||||
const CPluginInfo* pInfo = static_cast<CPluginInfo*>(_pChoice->GetClientData(Index));
|
||||
|
||||
if (pInfo != NULL)
|
||||
CPluginManager::GetInstance().OpenConfig((HWND) this->GetHandle(), pInfo->GetFileName().c_str(), pInfo->GetPluginInfo().Type);
|
||||
CPluginManager::GetInstance().OpenConfig((HWND) this->GetHandle(), pInfo->GetFilename().c_str(), pInfo->GetPluginInfo().Type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -754,7 +714,7 @@ void CConfigMain::FillChoiceBox(wxChoice* _pChoice, int _PluginType, const std::
|
||||
temp = wxString::FromAscii(rInfos[i].GetPluginInfo().Name);
|
||||
int NewIndex = _pChoice->Append(temp, (void*)&rInfos[i]);
|
||||
|
||||
if (rInfos[i].GetFileName() == _SelectFilename)
|
||||
if (rInfos[i].GetFilename() == _SelectFilename)
|
||||
{
|
||||
Index = NewIndex;
|
||||
}
|
||||
@@ -772,7 +732,7 @@ bool CConfigMain::GetFilename(wxChoice* _pChoice, std::string& _rFilename)
|
||||
if (Index >= 0)
|
||||
{
|
||||
const CPluginInfo* pInfo = static_cast<CPluginInfo*>(_pChoice->GetClientData(Index));
|
||||
_rFilename = pInfo->GetFileName();
|
||||
_rFilename = pInfo->GetFilename();
|
||||
Console::Print("GetFilename: %i %s\n", Index, _rFilename.c_str());
|
||||
return(true);
|
||||
}
|
||||
@@ -791,4 +751,3 @@ void CConfigMain::InterfaceLanguageChanged( wxCommandEvent& event )
|
||||
bRefreshList = true;
|
||||
bRefreshCache = true;
|
||||
}
|
||||
// ==========================
|
||||
|
||||
Reference in New Issue
Block a user