Common: Moved Windows console functions to common
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1887 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
7f9ce70b33
commit
ae9cfbd8e3
|
@ -227,18 +227,115 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|x64"
|
||||||
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Console.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Console.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
|
|
|
@ -1,134 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Include
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
||||||
//#include <iostream>
|
|
||||||
#include <string>
|
|
||||||
//#include "stdafx.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <windows.h>
|
|
||||||
//#include <tchar.h>
|
|
||||||
/////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Declarations and definitions
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
|
|
||||||
// Enable or disable logging to screen and file
|
|
||||||
#define MM_DEBUG
|
|
||||||
//#define MM_DEBUG_FILEONLY
|
|
||||||
|
|
||||||
#ifdef MM_DEBUG
|
|
||||||
FILE* __fStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
#ifndef MM_DEBUG_FILEONLY
|
|
||||||
HANDLE __hStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Start console window
|
|
||||||
/* ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
Width and height is the size of console window, if you specify fname, the output will
|
|
||||||
also be writton to this file. The file pointer is automatically closed
|
|
||||||
when you close the application. */
|
|
||||||
// ---------------------
|
|
||||||
void StartConsoleWin(int width, int height, char* fname)
|
|
||||||
{
|
|
||||||
#ifdef MM_DEBUG
|
|
||||||
|
|
||||||
#ifndef MM_DEBUG_FILEONLY
|
|
||||||
// Allocate console
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
// Set console window title
|
|
||||||
SetConsoleTitle(fname);
|
|
||||||
|
|
||||||
// Get window handle to write to
|
|
||||||
__hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
// Create coordinates table
|
|
||||||
COORD co = {width, height};
|
|
||||||
|
|
||||||
// Set the innteral letter space
|
|
||||||
SetConsoleScreenBufferSize(__hStdOut, co);
|
|
||||||
|
|
||||||
// Set the window width and height
|
|
||||||
SMALL_RECT coo = {0,0, (width - 1),50}; // Top, left, right, bottom
|
|
||||||
SetConsoleWindowInfo(__hStdOut, true, &coo);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(fname)
|
|
||||||
{
|
|
||||||
// Edit the log file name
|
|
||||||
std::string FileEnding = ".log";
|
|
||||||
std::string FileName = fname;
|
|
||||||
std::string FullFilename = (FileName + FileEnding);
|
|
||||||
__fStdOut = fopen(FullFilename.c_str(), "w");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
/////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Printf function
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
int wprintf(char *fmt, ...)
|
|
||||||
{
|
|
||||||
#ifdef MM_DEBUG
|
|
||||||
char s[500]; // Bigget message size
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsprintf(s, fmt, argptr);
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
|
|
||||||
// ---------------------------------------------------
|
|
||||||
// Write to console
|
|
||||||
// --------------
|
|
||||||
#ifndef MM_DEBUG_FILEONLY
|
|
||||||
if(__hStdOut)
|
|
||||||
WriteConsole(__hStdOut, s, strlen(s), &cCharsWritten, NULL);
|
|
||||||
#endif
|
|
||||||
// ----------------------------
|
|
||||||
|
|
||||||
// Write to file
|
|
||||||
if(__fStdOut)
|
|
||||||
{
|
|
||||||
fprintf(__fStdOut, s);
|
|
||||||
fflush(__fStdOut); // Write file now, don't wait
|
|
||||||
}
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
/////////////////////////////
|
|
|
@ -1,29 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef MM_COMMON_H
|
|
||||||
#define MM_COMMON_H
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Declarations and definitions
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
void StartConsoleWin(int width = 100, int height = 2000, char* fname = "Console");
|
|
||||||
int wprintf(char *fmt, ...);
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
#endif // MM_COMMON_H
|
|
|
@ -169,7 +169,7 @@
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Source\Core\Core\Src"
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Source\Core\Core\Src"
|
||||||
PreprocessorDefinitions="_SECURE_SCL=0"
|
PreprocessorDefinitions="NDEBUG;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
@ -268,6 +268,133 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
CharacterSet="2"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Source\Core\Core\Src"
|
||||||
|
PreprocessorDefinitions="NDEBUG;DEBUGFAST;_SECURE_SCL=0"
|
||||||
|
RuntimeLibrary="0"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
AdditionalOptions="/NODEFAULTLIB:msvcrt"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|x64"
|
||||||
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
CharacterSet="2"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Source\Core\Core\Src"
|
||||||
|
PreprocessorDefinitions="_SECURE_SCL=0"
|
||||||
|
RuntimeLibrary="0"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
AdditionalOptions="/NODEFAULTLIB:msvcrt"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "Core.h" // Core
|
#include "Core.h" // Core
|
||||||
|
|
||||||
#include "IniFile.h" // Common
|
#include "IniFile.h" // Common
|
||||||
|
#include "ConsoleWindow.h"
|
||||||
|
|
||||||
#include "../../../../Source/Core/DolphinWX/Src/Globals.h" // DolphinWX
|
#include "../../../../Source/Core/DolphinWX/Src/Globals.h" // DolphinWX
|
||||||
#include "../../../../Source/Core/DolphinWX/Src/Frame.h"
|
#include "../../../../Source/Core/DolphinWX/Src/Frame.h"
|
||||||
|
@ -34,7 +35,6 @@
|
||||||
#include "../../../../Source/Core/DolphinWX/resources/KDE.h"
|
#include "../../../../Source/Core/DolphinWX/resources/KDE.h"
|
||||||
#include "../../../../Source/Core/DolphinWX/resources/X-Plastik.h"
|
#include "../../../../Source/Core/DolphinWX/resources/X-Plastik.h"
|
||||||
|
|
||||||
#include "../../Common/Src/Console.h" // Local
|
|
||||||
#include "../../Player/Src/PlayerExport.h" // Player
|
#include "../../Player/Src/PlayerExport.h" // Player
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ CFrame::MM_UpdateGUI()
|
||||||
void
|
void
|
||||||
CFrame::MM_OnPlay()
|
CFrame::MM_OnPlay()
|
||||||
{
|
{
|
||||||
//wprintf("\nCFrame::OnPlayMusicMod > Begin\n");
|
//Console::Print("\nCFrame::OnPlayMusicMod > Begin\n");
|
||||||
|
|
||||||
// Save the volume
|
// Save the volume
|
||||||
MusicMod::GlobalVolume = mm_Slider->GetValue();
|
MusicMod::GlobalVolume = mm_Slider->GetValue();
|
||||||
|
@ -296,7 +296,7 @@ CFrame::MM_OnPlay()
|
||||||
{
|
{
|
||||||
if (Core::GetState() == Core::CORE_RUN)
|
if (Core::GetState() == Core::CORE_RUN)
|
||||||
{
|
{
|
||||||
//wprintf("CFrame::OnPlayMusicMod > Pause\n");
|
//Console::Print("CFrame::OnPlayMusicMod > Pause\n");
|
||||||
if(!MusicMod::GlobalPause) // we may has set this elsewhere
|
if(!MusicMod::GlobalPause) // we may has set this elsewhere
|
||||||
{
|
{
|
||||||
MusicMod::GlobalPause = true;
|
MusicMod::GlobalPause = true;
|
||||||
|
@ -308,7 +308,7 @@ CFrame::MM_OnPlay()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//wprintf("CFrame::OnPlayMusicMod > Play\n");
|
//Console::Print("CFrame::OnPlayMusicMod > Play\n");
|
||||||
if(MusicMod::GlobalPause) // we may has set this elsewhere
|
if(MusicMod::GlobalPause) // we may has set this elsewhere
|
||||||
{
|
{
|
||||||
MusicMod::GlobalPause = false;
|
MusicMod::GlobalPause = false;
|
||||||
|
@ -336,7 +336,7 @@ CFrame::MM_OnStop()
|
||||||
void
|
void
|
||||||
CFrame::MM_OnMute(wxCommandEvent& WXUNUSED (event))
|
CFrame::MM_OnMute(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
//wprintf("CFrame::OnMute > Begin\n");
|
//Console::Print("CFrame::OnMute > Begin\n");
|
||||||
//MessageBox(0, "", "", 0);
|
//MessageBox(0, "", "", 0);
|
||||||
|
|
||||||
if(!MusicMod::GlobalMute)
|
if(!MusicMod::GlobalMute)
|
||||||
|
@ -368,7 +368,7 @@ CFrame::MM_OnMute(wxCommandEvent& WXUNUSED (event))
|
||||||
void
|
void
|
||||||
CFrame::MM_OnPause(wxCommandEvent& WXUNUSED (event))
|
CFrame::MM_OnPause(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
wprintf("CFrame::OnPause > Begin\n");
|
Console::Print("CFrame::OnPause > Begin\n");
|
||||||
//MessageBox(0, "", "", 0);
|
//MessageBox(0, "", "", 0);
|
||||||
|
|
||||||
if(!MusicMod::GlobalPause)
|
if(!MusicMod::GlobalPause)
|
||||||
|
@ -399,7 +399,7 @@ CFrame::MM_OnPause(wxCommandEvent& WXUNUSED (event))
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
void CFrame::MM_OnVolume(wxScrollEvent& event)
|
void CFrame::MM_OnVolume(wxScrollEvent& event)
|
||||||
{
|
{
|
||||||
//wprintf("CFrame::OnVolume > Begin <%i>\n", event.GetPosition());
|
//Console::Print("CFrame::OnVolume > Begin <%i>\n", event.GetPosition());
|
||||||
//MessageBox(0, "", "", 0);
|
//MessageBox(0, "", "", 0);
|
||||||
|
|
||||||
//if(event.GetEventType() == wxEVT_SCROLL_PAGEUP || event.GetEventType() == wxEVT_SCROLL_PAGEDOWN)
|
//if(event.GetEventType() == wxEVT_SCROLL_PAGEUP || event.GetEventType() == wxEVT_SCROLL_PAGEDOWN)
|
||||||
|
@ -434,7 +434,7 @@ void CFrame::MM_OnVolume(wxScrollEvent& event)
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
void CFrame::MM_OnLog(wxCommandEvent& event)
|
void CFrame::MM_OnLog(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
//wprintf("CFrame::OnLog > Begin\n");
|
//Console::Print("CFrame::OnLog > Begin\n");
|
||||||
//MessageBox(0, "", "", 0);
|
//MessageBox(0, "", "", 0);
|
||||||
|
|
||||||
if(!MusicMod::dllloaded) return; // Avoid crash
|
if(!MusicMod::dllloaded) return; // Avoid crash
|
||||||
|
@ -450,7 +450,7 @@ void CFrame::MM_OnLog(wxCommandEvent& event)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if defined (_WIN32)
|
#if defined (_WIN32)
|
||||||
FreeConsole(); Player_Console(false);
|
Console::Close(); Player_Console(false);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,9 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
#include "IniFile.h" // Common
|
#include "Common.h" // Common
|
||||||
|
#include "IniFile.h"
|
||||||
|
#include "ConsoleWindow.h"
|
||||||
|
|
||||||
#include "PowerPC/PowerPc.h" // Core
|
#include "PowerPC/PowerPc.h" // Core
|
||||||
|
|
||||||
|
@ -32,7 +34,6 @@
|
||||||
#include "../../../../Source/Core/DiscIO/Src/VolumeCreator.h"
|
#include "../../../../Source/Core/DiscIO/Src/VolumeCreator.h"
|
||||||
|
|
||||||
#include "../../Player/Src/PlayerExport.h" // Local player
|
#include "../../Player/Src/PlayerExport.h" // Local player
|
||||||
#include "../../Common/Src/Console.h" // Local common
|
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ void StructSort (std::vector <MyFilesStructure> &MyFiles);
|
||||||
|
|
||||||
|
|
||||||
// Playback
|
// Playback
|
||||||
std::string currentfile;
|
std::string CurrentFile;
|
||||||
std::string unique_gameid;
|
std::string unique_gameid;
|
||||||
|
|
||||||
std::string MusicPath;
|
std::string MusicPath;
|
||||||
|
@ -95,7 +96,7 @@ void StructSort (std::vector <MyFilesStructure> &MyFiles)
|
||||||
{
|
{
|
||||||
MyFilesStructure temp;
|
MyFilesStructure temp;
|
||||||
|
|
||||||
//wprintf("StructSort > Begin\n");
|
//Console::Print("StructSort > Begin\n");
|
||||||
|
|
||||||
for(int i = 0; i < MyFiles.size() - 1; i++)
|
for(int i = 0; i < MyFiles.size() - 1; i++)
|
||||||
{
|
{
|
||||||
|
@ -116,7 +117,7 @@ void StructSort (std::vector <MyFilesStructure> &MyFiles)
|
||||||
std::cout << i << " " << MyFiles[i].path.c_str() << "#" << MyFiles[i].offset << "\n";
|
std::cout << i << " " << MyFiles[i].path.c_str() << "#" << MyFiles[i].offset << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//wprintf("StructSort > Done\n");
|
//Console::Print("StructSort > Done\n");
|
||||||
}
|
}
|
||||||
// ============================
|
// ============================
|
||||||
|
|
||||||
|
@ -126,7 +127,7 @@ void StructSort (std::vector <MyFilesStructure> &MyFiles)
|
||||||
// ------------------------
|
// ------------------------
|
||||||
void ShowConsole()
|
void ShowConsole()
|
||||||
{
|
{
|
||||||
StartConsoleWin(100, 2000, "Console"); // Give room for 2000 rows
|
Console::Open(100, 2000, "MusicMod", true); // Give room for 2000 rows
|
||||||
}
|
}
|
||||||
|
|
||||||
void Init()
|
void Init()
|
||||||
|
@ -150,9 +151,9 @@ void Init()
|
||||||
|
|
||||||
// Write version
|
// Write version
|
||||||
#ifdef _M_X64
|
#ifdef _M_X64
|
||||||
wprintf("64 bit version\n");
|
Console::Print("64 bit version\n");
|
||||||
#else
|
#else
|
||||||
wprintf("32 bit version\n");
|
Console::Print("32 bit version\n");
|
||||||
#endif
|
#endif
|
||||||
// -----------
|
// -----------
|
||||||
|
|
||||||
|
@ -162,10 +163,11 @@ void Init()
|
||||||
// Show DLL status
|
// Show DLL status
|
||||||
Player_Main(MusicMod::bShowConsole);
|
Player_Main(MusicMod::bShowConsole);
|
||||||
//play_file("c:\\demo36_02.ast");
|
//play_file("c:\\demo36_02.ast");
|
||||||
//wprintf("DLL loaded\n");
|
//Console::Print("DLL loaded\n");
|
||||||
|
|
||||||
dllloaded = true; // Do this once
|
dllloaded = true; // Do this once
|
||||||
}
|
}
|
||||||
|
// ============================
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -198,7 +200,7 @@ void Main(std::string FileName)
|
||||||
LPSECURITY_ATTRIBUTES attr;
|
LPSECURITY_ATTRIBUTES attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
MusicPath = "Music\\";
|
MusicPath = "Music\\";
|
||||||
wprintf("Created a Music directory\n");
|
Console::Print("Created a Music directory\n");
|
||||||
CreateDirectory(MusicPath.c_str(), attr);
|
CreateDirectory(MusicPath.c_str(), attr);
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
|
@ -210,16 +212,16 @@ void Main(std::string FileName)
|
||||||
void CheckFile(std::string File, int FileNumber)
|
void CheckFile(std::string File, int FileNumber)
|
||||||
{
|
{
|
||||||
// Do nothing if we found the same file again
|
// Do nothing if we found the same file again
|
||||||
if (currentfile == File) return;
|
if (CurrentFile == File) return;
|
||||||
|
|
||||||
//wprintf(">>>> (%i)Current read %s <%u = %ux%i> <block %u>\n", i, CurrentFiles[i].path.c_str(), offset, CurrentFiles[i].offset, size);
|
//Console::Print(">>>> (%i)Current read %s <%u = %ux%i> <block %u>\n", i, CurrentFiles[i].path.c_str(), offset, CurrentFiles[i].offset, size);
|
||||||
|
|
||||||
if (CheckFileEnding(File.c_str()))
|
if (CheckFileEnding(File.c_str()))
|
||||||
{
|
{
|
||||||
wprintf("\n >>> (%i/%i) Match %s\n\n", FileNumber,
|
Console::Print("\n >>> (%i/%i) Match %s\n\n", FileNumber,
|
||||||
MyFiles.size(), File.c_str());
|
MyFiles.size(), File.c_str());
|
||||||
|
|
||||||
currentfile = File; // save the found file
|
CurrentFile = File; // Save the found file
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
// We will now save the file to the PC hard drive
|
// We will now save the file to the PC hard drive
|
||||||
|
@ -235,7 +237,7 @@ void CheckFile(std::string File, int FileNumber)
|
||||||
std::string FilePath = (MusicPath + fragment);
|
std::string FilePath = (MusicPath + fragment);
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
WritingFile = true; // Avoid detecting the file we are writing
|
WritingFile = true; // Avoid detecting the file we are writing
|
||||||
wprintf("Writing <%s> to <%s>\n", File.c_str(), FilePath.c_str());
|
Console::Print("Writing <%s> to <%s>\n", File.c_str(), FilePath.c_str());
|
||||||
my_pFileSystem->ExportFile(File.c_str(), FilePath.c_str());
|
my_pFileSystem->ExportFile(File.c_str(), FilePath.c_str());
|
||||||
WritingFile = false;
|
WritingFile = false;
|
||||||
|
|
||||||
|
@ -245,7 +247,7 @@ void CheckFile(std::string File, int FileNumber)
|
||||||
{
|
{
|
||||||
Player_Play((char*)FilePath.c_str()); // retype it from const char* to char*
|
Player_Play((char*)FilePath.c_str()); // retype it from const char* to char*
|
||||||
} else {
|
} else {
|
||||||
wprintf("Warning > Music DLL is not loaded");
|
Console::Print("Warning > Music DLL is not loaded");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
@ -254,9 +256,9 @@ void CheckFile(std::string File, int FileNumber)
|
||||||
{
|
{
|
||||||
if(!remove(CurrentPlayFile.c_str()))
|
if(!remove(CurrentPlayFile.c_str()))
|
||||||
{
|
{
|
||||||
wprintf("The program failed to remove <%s>\n", CurrentPlayFile.c_str());
|
Console::Print("The program failed to remove <%s>\n", CurrentPlayFile.c_str());
|
||||||
} else {
|
} else {
|
||||||
wprintf("The program removed <%s>\n", CurrentPlayFile.c_str());
|
Console::Print("The program removed <%s>\n", CurrentPlayFile.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,11 +270,11 @@ void CheckFile(std::string File, int FileNumber)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tell about the files we ignored
|
// Tell the user about the files we ignored
|
||||||
wprintf("(%i/%i) Ignored %s\n", FileNumber, MyFiles.size(), File.c_str());
|
Console::Print("(%i/%i) Ignored %s\n", FileNumber, MyFiles.size(), File.c_str());
|
||||||
|
|
||||||
// Update the current file
|
// Update the current file
|
||||||
currentfile = File;
|
CurrentFile = File;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src"
|
||||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_SECURE_SCL=0"
|
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_SECURE_SCL=0"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
BasicRuntimeChecks="0"
|
BasicRuntimeChecks="0"
|
||||||
|
@ -211,6 +212,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
FavorSizeOrSpeed="1"
|
FavorSizeOrSpeed="1"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SECURE_SCL=0"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
@ -346,6 +348,169 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|Win32"
|
||||||
|
OutputDirectory="$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="2"
|
||||||
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
FavorSizeOrSpeed="1"
|
||||||
|
OmitFramePointers="true"
|
||||||
|
AdditionalIncludeDirectories="..\..\..\Source\Core\Common\Src"
|
||||||
|
PreprocessorDefinitions="WIN32;DEBUGFAST;_WINDOWS;_SECURE_SCL=0"
|
||||||
|
RuntimeLibrary="0"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="false"
|
||||||
|
DebugInformationFormat="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalOptions="/NODEFAULTLIB:msvcrt"
|
||||||
|
AdditionalDependencies="libzlib1.lib comctl32.lib winmm.lib"
|
||||||
|
OutputFile="$(OutDir)/Plainamp.dll"
|
||||||
|
LinkIncremental="1"
|
||||||
|
AdditionalLibraryDirectories="Lib"
|
||||||
|
GenerateDebugInformation="false"
|
||||||
|
SubSystem="0"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
|
EntryPointSymbol=""
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|x64"
|
||||||
|
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="2"
|
||||||
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
FavorSizeOrSpeed="1"
|
||||||
|
OmitFramePointers="true"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||||
|
RuntimeLibrary="0"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="false"
|
||||||
|
DebugInformationFormat="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="libzlib1.lib comctl32.lib winmm.lib"
|
||||||
|
OutputFile="$(OutDir)/Plainamp.dll"
|
||||||
|
LinkIncremental="1"
|
||||||
|
AdditionalLibraryDirectories="Lib"
|
||||||
|
GenerateDebugInformation="false"
|
||||||
|
SubSystem="0"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
|
EntryPointSymbol=""
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
TargetMachine="17"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
|
|
|
@ -34,7 +34,7 @@ const TCHAR * SECTION = TEXT( "Plainamp" );
|
||||||
ConfVar::ConfVar( TCHAR * szKey, ConfMode mode )
|
ConfVar::ConfVar( TCHAR * szKey, ConfMode mode )
|
||||||
{
|
{
|
||||||
// MessageBox( 0, TEXT( "no const @ ConfVar" ), TEXT( "" ), 0 );
|
// MessageBox( 0, TEXT( "no const @ ConfVar" ), TEXT( "" ), 0 );
|
||||||
//wprintf("ConfVar::ConfVar(TCHAR) > Got <%s>\n", szKey);
|
//Console::Print("ConfVar::ConfVar(TCHAR) > Got <%s>\n", szKey);
|
||||||
|
|
||||||
// Init
|
// Init
|
||||||
const int iLen = ( int )_tcslen( szKey );
|
const int iLen = ( int )_tcslen( szKey );
|
||||||
|
@ -59,7 +59,7 @@ ConfVar::ConfVar( TCHAR * szKey, ConfMode mode )
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
ConfVar::ConfVar( const TCHAR * szKey, ConfMode mode )
|
ConfVar::ConfVar( const TCHAR * szKey, ConfMode mode )
|
||||||
{
|
{
|
||||||
//wprintf("ConfVar::ConfVar(const TCHAR) > Got <%s>\n", szKey);
|
//Console::Print("ConfVar::ConfVar(const TCHAR) > Got <%s>\n", szKey);
|
||||||
|
|
||||||
// Init
|
// Init
|
||||||
m_szKey = ( TCHAR * )szKey;
|
m_szKey = ( TCHAR * )szKey;
|
||||||
|
@ -73,7 +73,7 @@ ConfVar::ConfVar( const TCHAR * szKey, ConfMode mode )
|
||||||
if( !conf_map ) conf_map = new map<TCHAR *, ConfVar *>;
|
if( !conf_map ) conf_map = new map<TCHAR *, ConfVar *>;
|
||||||
conf_map->insert( pair<TCHAR *, ConfVar *>( m_szKey, this ) );
|
conf_map->insert( pair<TCHAR *, ConfVar *>( m_szKey, this ) );
|
||||||
|
|
||||||
//wprintf("ConfVar::ConfVar(const TCHAR) > Insert <%s>\n", ConfVar::m_szKey);
|
//Console::Print("ConfVar::ConfVar(const TCHAR) > Insert <%s>\n", ConfVar::m_szKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ ConfVar::~ConfVar()
|
||||||
ConfBool::ConfBool( bool * pbData, TCHAR * szKey, ConfMode mode, bool bDefault ) : ConfVar( szKey, mode )
|
ConfBool::ConfBool( bool * pbData, TCHAR * szKey, ConfMode mode, bool bDefault ) : ConfVar( szKey, mode )
|
||||||
{
|
{
|
||||||
// MessageBox( 0, TEXT( "no const @ ConfBool" ), TEXT( "" ), 0 );
|
// MessageBox( 0, TEXT( "no const @ ConfBool" ), TEXT( "" ), 0 );
|
||||||
//wprintf("ConfBool(TCHAR) > Get <%s>\n", szKey);
|
//Console::Print("ConfBool(TCHAR) > Get <%s>\n", szKey);
|
||||||
|
|
||||||
m_pbData = pbData;
|
m_pbData = pbData;
|
||||||
m_bDefault = bDefault;
|
m_bDefault = bDefault;
|
||||||
|
@ -112,7 +112,7 @@ ConfBool::ConfBool( bool * pbData, TCHAR * szKey, ConfMode mode, bool bDefault )
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
ConfBool::ConfBool( bool * pbData, const TCHAR * szKey, ConfMode mode, bool bDefault ) : ConfVar( szKey, mode )
|
ConfBool::ConfBool( bool * pbData, const TCHAR * szKey, ConfMode mode, bool bDefault ) : ConfVar( szKey, mode )
|
||||||
{
|
{
|
||||||
//wprintf("ConfBool(TCHAR) > Get <%s>\n", szKey);
|
//Console::Print("ConfBool(TCHAR) > Get <%s>\n", szKey);
|
||||||
|
|
||||||
m_pbData = pbData;
|
m_pbData = pbData;
|
||||||
m_bDefault = bDefault;
|
m_bDefault = bDefault;
|
||||||
|
@ -127,7 +127,7 @@ ConfBool::ConfBool( bool * pbData, const TCHAR * szKey, ConfMode mode, bool bDef
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void ConfBool::Read()
|
void ConfBool::Read()
|
||||||
{
|
{
|
||||||
//wprintf("ConfBool::Read() > Begin <m_bRead:%i> and <szIniPath:%s>\n", m_bRead, szIniPath);
|
//Console::Print("ConfBool::Read() > Begin <m_bRead:%i> and <szIniPath:%s>\n", m_bRead, szIniPath);
|
||||||
|
|
||||||
if( m_bRead || !szIniPath ) return;
|
if( m_bRead || !szIniPath ) return;
|
||||||
|
|
||||||
|
@ -507,13 +507,13 @@ ConfString::ConfString( TCHAR * szData, const TCHAR * szKey, ConfMode mode, TCHA
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void ConfString::Read()
|
void ConfString::Read()
|
||||||
{
|
{
|
||||||
//wprintf( "ConfString::Read() > Begin\n");
|
//Console::Print( "ConfString::Read() > Begin\n");
|
||||||
|
|
||||||
if( m_bRead || !szIniPath ) return;
|
if( m_bRead || !szIniPath ) return;
|
||||||
|
|
||||||
GetPrivateProfileString( SECTION, m_szKey, m_szDefault, m_szData, m_iMaxLen, szIniPath );
|
GetPrivateProfileString( SECTION, m_szKey, m_szDefault, m_szData, m_iMaxLen, szIniPath );
|
||||||
|
|
||||||
//wprintf( "ConfString::Read() > GetPrivateProfileString <%s> <%s> <%s>\n", m_szKey, m_szData, szIniPath);
|
//Console::Print( "ConfString::Read() > GetPrivateProfileString <%s> <%s> <%s>\n", m_szKey, m_szData, szIniPath);
|
||||||
|
|
||||||
m_bRead = true;
|
m_bRead = true;
|
||||||
}
|
}
|
||||||
|
@ -567,7 +567,7 @@ void ConfCurDir::Read()
|
||||||
// Apply
|
// Apply
|
||||||
//SetCurrentDirectory( m_szData );
|
//SetCurrentDirectory( m_szData );
|
||||||
|
|
||||||
//wprintf("ConfCurDir::Read > End <%s>\n", m_szData);
|
//Console::Print("ConfCurDir::Read > End <%s>\n", m_szData);
|
||||||
}
|
}
|
||||||
// ==============================================================================
|
// ==============================================================================
|
||||||
|
|
||||||
|
@ -581,7 +581,7 @@ void ConfCurDir::Write()
|
||||||
GetCurrentDirectory( MAX_PATH, m_szData ); // Note: without trailing slash
|
GetCurrentDirectory( MAX_PATH, m_szData ); // Note: without trailing slash
|
||||||
|
|
||||||
// MessageBox( 0, m_szData, TEXT( "CurDir" ), 0 );
|
// MessageBox( 0, m_szData, TEXT( "CurDir" ), 0 );
|
||||||
//wprintf("ConfCurDir::Read <%s>\n", m_szData);
|
//Console::Print("ConfCurDir::Read <%s>\n", m_szData);
|
||||||
|
|
||||||
ConfString::Write();
|
ConfString::Write();
|
||||||
}
|
}
|
||||||
|
@ -645,7 +645,7 @@ void Conf::Init()
|
||||||
//_sntprintf( szIniPath, _MAX_PATH, TEXT( "%s%s%s" ), szDrive, szDir, fd.cFileName );
|
//_sntprintf( szIniPath, _MAX_PATH, TEXT( "%s%s%s" ), szDrive, szDir, fd.cFileName );
|
||||||
_sntprintf( szIniPath, _MAX_PATH, TEXT( "%s%s%s" ), szDrive, szDir, TEXT( "Plainamp.ini" ) );
|
_sntprintf( szIniPath, _MAX_PATH, TEXT( "%s%s%s" ), szDrive, szDir, TEXT( "Plainamp.ini" ) );
|
||||||
|
|
||||||
wprintf("DLL > We got the ini path <%s>\n", szIniPath);
|
Console::Print("DLL > Ini path <%s>\n", szIniPath);
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Include
|
// Include
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯
|
||||||
#include "../../Common/Src/Console.h" // Local common
|
#include "../../../../Source/Core/Common/Src/ConsoleWindow.h" // Global common
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ InputPlugin::InputPlugin( TCHAR * szDllpath, bool bKeepLoaded ) : Plugin( szDllp
|
||||||
iFiltersLen = 0;
|
iFiltersLen = 0;
|
||||||
plugin = NULL;
|
plugin = NULL;
|
||||||
|
|
||||||
//wprintf("\InputPlugin::InputPlugin > Begin\n");
|
//Console::Print("\InputPlugin::InputPlugin > Begin\n");
|
||||||
|
|
||||||
if( !Load() )
|
if( !Load() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -371,7 +371,7 @@ LRESULT CALLBACK WndprocMain( HWND hwnd, UINT message, WPARAM wp, LPARAM lp )
|
||||||
static bool bRemoveIcon = false;
|
static bool bRemoveIcon = false;
|
||||||
|
|
||||||
#ifdef NOGUI
|
#ifdef NOGUI
|
||||||
//wprintf("DLL > Main.cpp:WndprocMain() was called. But nothing will be done. \n");
|
//Console::Print("DLL > Main.cpp:WndprocMain() was called. But nothing will be done. \n");
|
||||||
#else
|
#else
|
||||||
Console::Append( TEXT( "Main.cpp:WndprocMain was called" ) );
|
Console::Append( TEXT( "Main.cpp:WndprocMain was called" ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -266,7 +266,7 @@ void Output_SetVolume( int volume )
|
||||||
//_stprintf( szBuffer, TEXT( "DLL > Output_SetVolume <%i>" ), volume );
|
//_stprintf( szBuffer, TEXT( "DLL > Output_SetVolume <%i>" ), volume );
|
||||||
//Console::Append( szBuffer );
|
//Console::Append( szBuffer );
|
||||||
//Console::Append( TEXT( " " ) );
|
//Console::Append( TEXT( " " ) );
|
||||||
//wprintf( "DLL > Output_SetVolume <%i>\n", volume );
|
//Console::Print( "DLL > Output_SetVolume <%i>\n", volume );
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
|
||||||
for( int i = 0; i < active_output_count; i++ )
|
for( int i = 0; i < active_output_count; i++ )
|
||||||
|
|
|
@ -248,7 +248,7 @@ bool OutputPlugin::Config( HWND hParent )
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool OutputPlugin::Start()
|
bool OutputPlugin::Start()
|
||||||
{
|
{
|
||||||
//wprintf( "OutputPlugin::Start() > Begin <IsLoaded():%i> <bActive:%i> <active_output_count:%i>\n",
|
//Console::Print( "OutputPlugin::Start() > Begin <IsLoaded():%i> <bActive:%i> <active_output_count:%i>\n",
|
||||||
// IsLoaded(), bActive, active_output_count );
|
// IsLoaded(), bActive, active_output_count );
|
||||||
|
|
||||||
if( !IsLoaded() ) return false;
|
if( !IsLoaded() ) return false;
|
||||||
|
@ -275,7 +275,7 @@ bool OutputPlugin::Start()
|
||||||
Console::Append( szBuffer );
|
Console::Append( szBuffer );
|
||||||
Console::Append( TEXT( " " ) );
|
Console::Append( TEXT( " " ) );
|
||||||
#else
|
#else
|
||||||
wprintf( "\n >>> Output plugin '%s' activated\n\n" , GetFilename() );
|
Console::Print( "\n >>> Output plugin '%s' activated\n\n" , GetFilename() );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bActive = true;
|
bActive = true;
|
||||||
|
|
|
@ -60,14 +60,14 @@ void EnableTimer( bool bEnabled )
|
||||||
if( bEnabled )
|
if( bEnabled )
|
||||||
{
|
{
|
||||||
SetTimer( WindowMain, TIMER_SEEK_UPDATE, 1000, NULL );
|
SetTimer( WindowMain, TIMER_SEEK_UPDATE, 1000, NULL );
|
||||||
wprintf( "EnableTimer > Activated\n" );
|
Console::Print( "EnableTimer > Activated\n" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
KillTimer( WindowMain, TIMER_SEEK_UPDATE );
|
KillTimer( WindowMain, TIMER_SEEK_UPDATE );
|
||||||
StatusReset();
|
StatusReset();
|
||||||
|
|
||||||
wprintf( "EnableTimer > Killed\n" );
|
Console::Print( "EnableTimer > Killed\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
bTimerRunning = bEnabled;
|
bTimerRunning = bEnabled;
|
||||||
|
@ -82,7 +82,7 @@ bool OpenPlay( TCHAR * szFilename, int iNumber )
|
||||||
{
|
{
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
#ifdef NOGUI
|
#ifdef NOGUI
|
||||||
//wprintf( "Playback.cpp: OpenPlay > Begin <%i> <%s>\n" , iNumber, szFilename );
|
//Console::Print( "Playback.cpp: OpenPlay > Begin <%i> <%s>\n" , iNumber, szFilename );
|
||||||
#else
|
#else
|
||||||
TCHAR sszBuffer[ 5000 ];
|
TCHAR sszBuffer[ 5000 ];
|
||||||
_stprintf( sszBuffer, TEXT( "Playback.cpp: OpenPlay was called <%i> <%s>" ), iNumber, szFilename );
|
_stprintf( sszBuffer, TEXT( "Playback.cpp: OpenPlay was called <%i> <%s>" ), iNumber, szFilename );
|
||||||
|
@ -121,14 +121,14 @@ bool OpenPlay( TCHAR * szFilename, int iNumber )
|
||||||
{
|
{
|
||||||
Console::Append( TEXT( "ERROR: Extension not supported" ) );
|
Console::Append( TEXT( "ERROR: Extension not supported" ) );
|
||||||
Console::Append( " " );
|
Console::Append( " " );
|
||||||
wprintf("OpenPlay > ERROR: Extension not supported\n");
|
Console::Print("OpenPlay > ERROR: Extension not supported\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
// Now that we know which input pugin to use we set that one as active
|
// Now that we know which input pugin to use we set that one as active
|
||||||
InputPlugin * old_input = active_input_plugin; // Save the last one, if any
|
InputPlugin * old_input = active_input_plugin; // Save the last one, if any
|
||||||
active_input_plugin = iter->second;
|
active_input_plugin = iter->second;
|
||||||
wprintf("OpenPlay > Input plugin '%s' activated\n", active_input_plugin->GetFilename());
|
Console::Print("OpenPlay > Input plugin '%s' activated\n", active_input_plugin->GetFilename());
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
|
||||||
if( old_input )
|
if( old_input )
|
||||||
|
@ -145,12 +145,12 @@ bool OpenPlay( TCHAR * szFilename, int iNumber )
|
||||||
{
|
{
|
||||||
Console::Append( TEXT( "ERROR: Input plugin is NULL" ) );
|
Console::Append( TEXT( "ERROR: Input plugin is NULL" ) );
|
||||||
Console::Append( " " );
|
Console::Append( " " );
|
||||||
wprintf("OpenPlay > ERROR: Input plugin is NULL\n");
|
Console::Print("OpenPlay > ERROR: Input plugin is NULL\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connect
|
// Connect
|
||||||
//wprintf( "OpenPlay > OutMod\n" );
|
//Console::Print( "OpenPlay > OutMod\n" );
|
||||||
active_input_plugin->plugin->outMod = &output_server; // output->plugin;
|
active_input_plugin->plugin->outMod = &output_server; // output->plugin;
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -190,10 +190,10 @@ bool OpenPlay( TCHAR * szFilename, int iNumber )
|
||||||
TCHAR szTitle[ 2000 ] = TEXT( "\0" );
|
TCHAR szTitle[ 2000 ] = TEXT( "\0" );
|
||||||
int length_in_ms;
|
int length_in_ms;
|
||||||
|
|
||||||
//wprintf( "OpenPlay > GetFileInfo\n" );
|
//Console::Print( "OpenPlay > GetFileInfo\n" );
|
||||||
active_input_plugin->plugin->GetFileInfo( szFilename, szTitle, &length_in_ms );
|
active_input_plugin->plugin->GetFileInfo( szFilename, szTitle, &length_in_ms );
|
||||||
|
|
||||||
//wprintf( "OpenPlay > Play\n" );
|
//Console::Print( "OpenPlay > Play\n" );
|
||||||
active_input_plugin->plugin->Play( szFilename );
|
active_input_plugin->plugin->Play( szFilename );
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
#endif
|
#endif
|
||||||
|
@ -218,7 +218,7 @@ bool OpenPlay( TCHAR * szFilename, int iNumber )
|
||||||
// Timer ON
|
// Timer ON
|
||||||
//EnableTimer( true );
|
//EnableTimer( true );
|
||||||
|
|
||||||
//wprintf( "OpenPlay > End\n" );
|
//Console::Print( "OpenPlay > End\n" );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,7 @@ bool Playback::Play()
|
||||||
Console::Append( sszBuffer );
|
Console::Append( sszBuffer );
|
||||||
Console::Append( TEXT( " " ) );
|
Console::Append( TEXT( " " ) );
|
||||||
#else
|
#else
|
||||||
//wprintf( "Playback::Play() > Begin <%i>\n" , bPlaying );
|
//Console::Print( "Playback::Play() > Begin <%i>\n" , bPlaying );
|
||||||
#endif
|
#endif
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ bool Playback::Play()
|
||||||
Console::Append( szBuffer );
|
Console::Append( szBuffer );
|
||||||
//Console::Append( TEXT( " " ) );
|
//Console::Append( TEXT( " " ) );
|
||||||
#else
|
#else
|
||||||
//wprintf( "Playback::Play() > Filename <%s>\n", szFilename);
|
//Console::Print( "Playback::Play() > Filename <%s>\n", szFilename);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Play
|
// Play
|
||||||
|
|
|
@ -125,8 +125,9 @@ void Player_Main(bool Console)
|
||||||
|
|
||||||
//MessageBox(0, "main() opened", "", 0);
|
//MessageBox(0, "main() opened", "", 0);
|
||||||
//printf( "main() opened\n" );
|
//printf( "main() opened\n" );
|
||||||
wprintf( "\n=========================================================\n\n" );
|
Console::Print( "\n=========================================================\n\n\n" );
|
||||||
wprintf( "DLL > Player_Main() > Begin\n" );
|
//Console::Print( "DLL > Player_Main() > Begin\n" );
|
||||||
|
Console::Print( "DLL > Settings:\n", bLoop);
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -135,9 +136,9 @@ void Player_Main(bool Console)
|
||||||
Conf::Init( );
|
Conf::Init( );
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
wprintf( "\n\nDLL > Settings:\n", bLoop);
|
|
||||||
wprintf( "DLL > Loop: %i\n", bLoop);
|
Console::Print( "DLL > Loop: %i\n", bLoop);
|
||||||
wprintf( "DLL > WarnPluginsMissing: %i\n", bWarnPluginsMissing);
|
Console::Print( "DLL > WarnPluginsMissing: %i\n", bWarnPluginsMissing);
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -169,7 +170,7 @@ void Player_Main(bool Console)
|
||||||
memcpy( szPluginDir, szHomeDir, iHomeDirLen * sizeof( TCHAR ) );
|
memcpy( szPluginDir, szHomeDir, iHomeDirLen * sizeof( TCHAR ) );
|
||||||
memcpy( szPluginDir + iHomeDirLen, TEXT( "PluginsMusic" ), 12 * sizeof( TCHAR ) );
|
memcpy( szPluginDir + iHomeDirLen, TEXT( "PluginsMusic" ), 12 * sizeof( TCHAR ) );
|
||||||
szPluginDir[ iHomeDirLen + 12 ] = TEXT( '\0' );
|
szPluginDir[ iHomeDirLen + 12 ] = TEXT( '\0' );
|
||||||
wprintf("DLL > Plugindir: %s\n", szPluginDir);
|
Console::Print("DLL > Plugindir: %s\n", szPluginDir);
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
#ifndef NOGUI
|
#ifndef NOGUI
|
||||||
Font::Create();
|
Font::Create();
|
||||||
|
@ -182,7 +183,7 @@ void Player_Main(bool Console)
|
||||||
//GlobalVolume = Playback::Volume::Get(); // Don't bother with this for now
|
//GlobalVolume = Playback::Volume::Get(); // Don't bother with this for now
|
||||||
//GlobalCurrentVolume = GlobalVolume;
|
//GlobalCurrentVolume = GlobalVolume;
|
||||||
//Output_SetVolume( GlobalVolume );
|
//Output_SetVolume( GlobalVolume );
|
||||||
wprintf("DLL > Volume: %i\n\n", GlobalVolume);
|
Console::Print("DLL > Volume: %i\n\n", GlobalVolume);
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -205,10 +206,10 @@ void Player_Main(bool Console)
|
||||||
Plugin::FindAll<DspPlugin> ( szPluginDir, TEXT( "dsp_*.dll" ), false );
|
Plugin::FindAll<DspPlugin> ( szPluginDir, TEXT( "dsp_*.dll" ), false );
|
||||||
Plugin::FindAll<GenPlugin> ( szPluginDir, TEXT( "gen_*.dll" ), true );
|
Plugin::FindAll<GenPlugin> ( szPluginDir, TEXT( "gen_*.dll" ), true );
|
||||||
|
|
||||||
//wprintf( "Winmain.cpp > PluginManager::Fill()\n" );
|
//Console::Print( "Winmain.cpp > PluginManager::Fill()\n" );
|
||||||
PluginManager::Fill();
|
PluginManager::Fill();
|
||||||
|
|
||||||
//wprintf( "Winmain.cpp > PluginManager::Fill()\n" );
|
//Console::Print( "Winmain.cpp > PluginManager::Fill()\n" );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -250,26 +251,26 @@ void Player_Main(bool Console)
|
||||||
// Check the plugins
|
// Check the plugins
|
||||||
if( input_plugins.empty() )
|
if( input_plugins.empty() )
|
||||||
{
|
{
|
||||||
wprintf("\n *** Warning: No valid input plugins found\n\n");
|
Console::Print("\n *** Warning: No valid input plugins found\n\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wprintf(" >>> These valid input plugins were found:\n");
|
Console::Print(" >>> These valid input plugins were found:\n");
|
||||||
for(int i = 0; i < input_plugins.size(); i++)
|
for(int i = 0; i < input_plugins.size(); i++)
|
||||||
wprintf(" %i: %s\n", (i + 1), input_plugins.at(i)->GetFilename());
|
Console::Print(" %i: %s\n", (i + 1), input_plugins.at(i)->GetFilename());
|
||||||
wprintf("\n");
|
Console::Print("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// The input plugins are never activated here, they are activate for each file
|
// The input plugins are never activated here, they are activate for each file
|
||||||
if( !active_input_plugin || !active_input_plugin->plugin )
|
if( !active_input_plugin || !active_input_plugin->plugin )
|
||||||
{
|
{
|
||||||
// wprintf("The input plugin is not activated yet\n");
|
// Console::Print("The input plugin is not activated yet\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//const int ms_len = active_input_plugin->plugin->GetLength();
|
//const int ms_len = active_input_plugin->plugin->GetLength();
|
||||||
//const int ms_cur = active_input_plugin->plugin->GetOutputTime();
|
//const int ms_cur = active_input_plugin->plugin->GetOutputTime();
|
||||||
//wprintf("We are at <%i of %i>\n", ms_cur, ms_len);
|
//Console::Print("We are at <%i of %i>\n", ms_cur, ms_len);
|
||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
if( active_output_count > 0 )
|
if( active_output_count > 0 )
|
||||||
|
@ -280,11 +281,11 @@ void Player_Main(bool Console)
|
||||||
{
|
{
|
||||||
res_temp = active_output_plugins[ i ]->plugin->GetOutputTime();
|
res_temp = active_output_plugins[ i ]->plugin->GetOutputTime();
|
||||||
}
|
}
|
||||||
wprintf("Playback progress <%i>\n", res_temp);*/
|
Console::Print("Playback progress <%i>\n", res_temp);*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wprintf("\n *** Warning: The output plugin is not working\n\n");
|
Console::Print("\n *** Warning: The output plugin is not working\n\n");
|
||||||
}
|
}
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
|
||||||
|
@ -292,14 +293,14 @@ void Player_Main(bool Console)
|
||||||
// Start the timer
|
// Start the timer
|
||||||
if(!TimerCreated && bLoop) // Only create this the first time
|
if(!TimerCreated && bLoop) // Only create this the first time
|
||||||
{
|
{
|
||||||
//wprintf("Created the timer\n");
|
//Console::Print("Created the timer\n");
|
||||||
MakeTime();
|
MakeTime();
|
||||||
TimerCreated = true;
|
TimerCreated = true;
|
||||||
}
|
}
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
|
||||||
wprintf( "\n=========================================================\n\n" );
|
Console::Print( "\n=========================================================\n\n" );
|
||||||
//wprintf( "DLL > main_dll() > End\n\n\n" );
|
//Console::Print( "DLL > main_dll() > End\n\n\n" );
|
||||||
|
|
||||||
//std::cin.get();
|
//std::cin.get();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯
|
||||||
#include <iostream> // System
|
#include <iostream> // System
|
||||||
|
|
||||||
#include "../../../../Source/Core/Common/Src/Common.h" // Global common
|
#include "Common.h" // Global common
|
||||||
|
#include "ConsoleWindow.h"
|
||||||
|
|
||||||
#include "../../Common/Src/Console.h" // Local common
|
//#include "../../Common/Src/Console.h" // Local common
|
||||||
|
|
||||||
#include "OutputPlugin.h" // Local
|
#include "OutputPlugin.h" // Local
|
||||||
#include "Playback.h"
|
#include "Playback.h"
|
||||||
|
@ -30,7 +31,7 @@ bool Initialized = false;
|
||||||
|
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
/* We keep the file in the playlist, even though we currently only every have one file here
|
/* We keep the file in the playlist, even though we currently only ever have one file here
|
||||||
at a time */
|
at a time */
|
||||||
// ---------
|
// ---------
|
||||||
void AddFileToPlaylist(char * a)
|
void AddFileToPlaylist(char * a)
|
||||||
|
@ -59,21 +60,21 @@ void AddFileToPlaylist(char * a)
|
||||||
|
|
||||||
void Player_Play(char * FileName)
|
void Player_Play(char * FileName)
|
||||||
{
|
{
|
||||||
wprintf("Play file <%s>\n", FileName);
|
Console::Print("Play file <%s>\n", FileName);
|
||||||
|
|
||||||
// Check if the file exists
|
// Check if the file exists
|
||||||
if(GetFileAttributes(FileName) == INVALID_FILE_ATTRIBUTES)
|
if(GetFileAttributes(FileName) == INVALID_FILE_ATTRIBUTES)
|
||||||
{
|
{
|
||||||
wprintf("Warning: The file <%s> does not exist. Something is wrong.\n", FileName);
|
Console::Print("Warning: The file <%s> does not exist. Something is wrong.\n", FileName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Playback::Stop();
|
Playback::Stop();
|
||||||
//wprintf("Stop\n");
|
//Console::Print("Stop\n");
|
||||||
playlist->RemoveAll();
|
playlist->RemoveAll();
|
||||||
//wprintf("RemoveAll\n");
|
//Console::Print("RemoveAll\n");
|
||||||
AddFileToPlaylist(FileName);
|
AddFileToPlaylist(FileName);
|
||||||
//wprintf("addfiletoplaylist\n");
|
//Console::Print("addfiletoplaylist\n");
|
||||||
|
|
||||||
// Play the file
|
// Play the file
|
||||||
Playback::Play();
|
Playback::Play();
|
||||||
|
@ -83,7 +84,7 @@ void Player_Play(char * FileName)
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
// Set volume. This must probably be done after the dll is loaded.
|
// Set volume. This must probably be done after the dll is loaded.
|
||||||
//Output_SetVolume( Playback::Volume::Get() );
|
//Output_SetVolume( Playback::Volume::Get() );
|
||||||
//wprintf("Volume(%i)\n", Playback::Volume::Get());
|
//Console::Print("Volume(%i)\n", Playback::Volume::Get());
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
GlobalPause = false;
|
GlobalPause = false;
|
||||||
|
@ -92,7 +93,7 @@ void Player_Play(char * FileName)
|
||||||
void Player_Stop()
|
void Player_Stop()
|
||||||
{
|
{
|
||||||
Playback::Stop();
|
Playback::Stop();
|
||||||
//wprintf("Stop\n");
|
//Console::Print("Stop\n");
|
||||||
playlist->RemoveAll();
|
playlist->RemoveAll();
|
||||||
|
|
||||||
CurrentlyPlayingFile = "";
|
CurrentlyPlayingFile = "";
|
||||||
|
@ -105,13 +106,13 @@ void Player_Pause()
|
||||||
{
|
{
|
||||||
if (!GlobalPause)
|
if (!GlobalPause)
|
||||||
{
|
{
|
||||||
wprintf("DLL > Pause\n");
|
Console::Print("DLL > Pause\n");
|
||||||
Playback::Pause();
|
Playback::Pause();
|
||||||
GlobalPause = true;
|
GlobalPause = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wprintf("DLL > UnPause from Pause\n");
|
Console::Print("DLL > UnPause from Pause\n");
|
||||||
Player_Unpause();
|
Player_Unpause();
|
||||||
GlobalPause = false;
|
GlobalPause = false;
|
||||||
}
|
}
|
||||||
|
@ -119,7 +120,7 @@ void Player_Pause()
|
||||||
|
|
||||||
void Player_Unpause()
|
void Player_Unpause()
|
||||||
{
|
{
|
||||||
wprintf("DLL > UnPause\n");
|
Console::Print("DLL > UnPause\n");
|
||||||
Playback::Play();
|
Playback::Play();
|
||||||
GlobalPause = false;
|
GlobalPause = false;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +136,7 @@ void Player_Unpause()
|
||||||
void Player_Mute(int Vol)
|
void Player_Mute(int Vol)
|
||||||
{
|
{
|
||||||
if(GlobalVolume == -1) GlobalVolume = Vol;
|
if(GlobalVolume == -1) GlobalVolume = Vol;
|
||||||
wprintf("DLL > Mute <%i> <%i>\n", GlobalVolume, GlobalMute);
|
Console::Print("DLL > Mute <%i> <%i>\n", GlobalVolume, GlobalMute);
|
||||||
|
|
||||||
GlobalMute = !GlobalMute;
|
GlobalMute = !GlobalMute;
|
||||||
|
|
||||||
|
@ -143,15 +144,15 @@ void Player_Mute(int Vol)
|
||||||
if(GlobalMute)
|
if(GlobalMute)
|
||||||
{
|
{
|
||||||
Output_SetVolume( 0 );
|
Output_SetVolume( 0 );
|
||||||
wprintf("DLL > Volume <%i>\n", GlobalMute);
|
Console::Print("DLL > Volume <%i>\n", GlobalMute);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Output_SetVolume( GlobalVolume );
|
Output_SetVolume( GlobalVolume );
|
||||||
wprintf("DLL > Volume <%i>\n", GlobalMute);
|
Console::Print("DLL > Volume <%i>\n", GlobalMute);
|
||||||
}
|
}
|
||||||
|
|
||||||
//wprintf("Volume(%i)\n", Playback::Volume::Get());
|
//Console::Print("Volume(%i)\n", Playback::Volume::Get());
|
||||||
}
|
}
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
||||||
|
@ -160,12 +161,12 @@ void Player_Volume(int Vol)
|
||||||
{
|
{
|
||||||
GlobalVolume = Vol;
|
GlobalVolume = Vol;
|
||||||
Output_SetVolume( GlobalVolume );
|
Output_SetVolume( GlobalVolume );
|
||||||
//wprintf("DLL > Volume <%i> <%i>\n", GlobalVolume, GlobalCurrentVolume);
|
//Console::Print("DLL > Volume <%i> <%i>\n", GlobalVolume, GlobalCurrentVolume);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShowConsole()
|
void ShowConsole()
|
||||||
{
|
{
|
||||||
StartConsoleWin(100, 2000, "MusicMod"); // give room for 2000 rows
|
Console::Open(100, 2000, "MusicMod", true); // give room for 2000 rows
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ public:
|
||||||
|
|
||||||
if( 0 > iIndex || iIndex >= ( int )_database.size() )
|
if( 0 > iIndex || iIndex >= ( int )_database.size() )
|
||||||
{
|
{
|
||||||
wprintf("SetCurIndex > Return");
|
Console::Print("SetCurIndex > Return");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ extern bool GlobalPause;
|
||||||
void CALLBACK Update(unsigned int,unsigned int,unsigned long,unsigned long,unsigned long)
|
void CALLBACK Update(unsigned int,unsigned int,unsigned long,unsigned long,unsigned long)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
//wprintf("DLL > Update() > Begin (%i)\n", active_input_plugin);
|
//Console::Print("DLL > Update() > Begin (%i)\n", active_input_plugin);
|
||||||
|
|
||||||
// --------------------------------
|
// --------------------------------
|
||||||
// Manage restart when playback for a file has reached the end of the file
|
// Manage restart when playback for a file has reached the end of the file
|
||||||
|
@ -56,7 +56,7 @@ extern bool GlobalPause;
|
||||||
// Check if the input plugin is activated
|
// Check if the input plugin is activated
|
||||||
if(!active_input_plugin || !active_input_plugin->plugin)
|
if(!active_input_plugin || !active_input_plugin->plugin)
|
||||||
{
|
{
|
||||||
//wprintf("The input plugin is not activated yet\n");
|
//Console::Print("The input plugin is not activated yet\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -73,20 +73,20 @@ extern bool GlobalPause;
|
||||||
if ( progress > 0.7 ) // Only show this if we are getting close to the end, for bugtesting
|
if ( progress > 0.7 ) // Only show this if we are getting close to the end, for bugtesting
|
||||||
// basically
|
// basically
|
||||||
{
|
{
|
||||||
//wprintf("Playback progress <%i of %i>\n", ms_cur, ms_len);
|
//Console::Print("Playback progress <%i of %i>\n", ms_cur, ms_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because cur never go all the way to len we can't use a == comparison. Insted of this
|
// Because cur never go all the way to len we can't use a == comparison. Insted of this
|
||||||
// we could also check if the location is the same as right before.
|
// we could also check if the location is the same as right before.
|
||||||
if(ms_cur > ms_len - 1000 && !GlobalPause) // avoid restarting in cases where we just pressed pause
|
if(ms_cur > ms_len - 1000 && !GlobalPause) // avoid restarting in cases where we just pressed pause
|
||||||
{
|
{
|
||||||
wprintf("Restart <%s>\n", CurrentlyPlayingFile.c_str());
|
Console::Print("Restart <%s>\n", CurrentlyPlayingFile.c_str());
|
||||||
Player_Play((char *)CurrentlyPlayingFile.c_str());
|
Player_Play((char *)CurrentlyPlayingFile.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// --------------
|
// --------------
|
||||||
|
|
||||||
//wprintf("Make new time\n");
|
//Console::Print("Make new time\n");
|
||||||
MakeTime(); // Make a new one
|
MakeTime(); // Make a new one
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ int MainTimer()
|
||||||
// cout << ".";
|
// cout << ".";
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//wprintf("MakeTime\n");
|
//Console::Print("MakeTime\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,6 +265,130 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|x64"
|
||||||
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
TargetMachine="17"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
|
|
|
@ -566,6 +566,14 @@
|
||||||
RelativePath=".\Src\Common.h"
|
RelativePath=".\Src\Common.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ConsoleWindow.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ConsoleWindow.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\CPUDetect.cpp"
|
RelativePath=".\Src\CPUDetect.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
@ -36,9 +36,6 @@
|
||||||
#define LOGGING
|
#define LOGGING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Allow wxWidgets in Core
|
|
||||||
//#define WX_CORE
|
|
||||||
|
|
||||||
#include "../../../PluginSpecs/CommonTypes.h"
|
#include "../../../PluginSpecs/CommonTypes.h"
|
||||||
#define HAVE_WIIUSE 1
|
#define HAVE_WIIUSE 1
|
||||||
#define HAVE_WX 1
|
#define HAVE_WX 1
|
||||||
|
|
|
@ -15,27 +15,38 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#ifndef WIIMOTE_CONSOLE_H
|
#ifndef _CONSOLE_H
|
||||||
#define WIIMOTE_CONSOLE_H
|
#define _CONSOLE_H
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Includes
|
// Includes
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Declarations
|
// Declarations
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
std::string Tm(bool Ms = false);
|
namespace Console
|
||||||
void startConsoleWin(int width, int height, char* fname);
|
{
|
||||||
int wprintf(const char *fmt, ...);
|
|
||||||
int aprintf(int a, const char *fmt, ...);
|
|
||||||
void ClearScreen();
|
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
extern bool WriteToFile;
|
||||||
|
|
||||||
|
// Functions
|
||||||
|
void Open(int Width = 80, int Height = 100, char * Name = "Console", bool File = false);
|
||||||
|
void Close();
|
||||||
|
int Print(const char *fmt, ...);
|
||||||
|
void ClearScreen();
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
HWND GetConsoleHwnd(void);
|
HWND GetHwnd(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
} // Console
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
|
||||||
#endif // WIIMOTE_CONSOLE_H
|
|
||||||
|
#endif // _CONSOLE_H
|
|
@ -40,7 +40,6 @@ and stopped.
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#include "DynamicLibrary.h"
|
#include "DynamicLibrary.h"
|
||||||
#include "../../../../Branches/MusicMod/Common/Src/Console.h"
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -157,7 +156,7 @@ void* DynamicLibrary::Get(const char* funcname) const
|
||||||
if (!retval)
|
if (!retval)
|
||||||
{
|
{
|
||||||
LOG(MASTER_LOG, "Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), GetLastErrorAsString().c_str());
|
LOG(MASTER_LOG, "Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), GetLastErrorAsString().c_str());
|
||||||
PanicAlert("Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), GetLastErrorAsString().c_str());
|
//PanicAlert("Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), GetLastErrorAsString().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="Core"
|
Name="Core"
|
||||||
ProjectGUID="{F0B874CB-4476-4199-9315-8343D05AE684}"
|
ProjectGUID="{F0B874CB-4476-4199-9315-8343D05AE684}"
|
||||||
RootNamespace="Core"
|
RootNamespace="Core"
|
||||||
|
@ -1000,6 +1000,70 @@
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="Boot"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot_BIOSEmu.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot_DOL.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot_DOL.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot_ELF.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\Boot_ELF.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\ElfReader.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\ElfReader.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\Boot\ElfTypes.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="ActionReplay"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ActionReplay.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ActionReplay.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ARDecrypt.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Src\ARDecrypt.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="IPC HLE"
|
Name="IPC HLE"
|
||||||
>
|
>
|
||||||
|
@ -1100,70 +1164,6 @@
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
|
||||||
Name="Boot"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot_BIOSEmu.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot_DOL.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot_DOL.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot_ELF.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\Boot_ELF.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\ElfReader.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\ElfReader.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Boot\ElfTypes.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="ActionReplay"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\ActionReplay.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\ActionReplay.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\ARDecrypt.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\ARDecrypt.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Console.cpp"
|
RelativePath=".\Src\Console.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include "../Core.h" // Local core functions
|
#include "../Core.h" // Local core functions
|
||||||
#include "../Debugger/Debugger_SymbolMap.h"
|
#include "../Debugger/Debugger_SymbolMap.h"
|
||||||
#include "../Host.h"
|
#include "../Host.h"
|
||||||
#include "../../../../Branches/MusicMod/Common/Src/Console.h"
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="DolphinWX"
|
Name="DolphinWX"
|
||||||
ProjectGUID="{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}"
|
ProjectGUID="{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}"
|
||||||
RootNamespace="DolphinWX"
|
RootNamespace="DolphinWX"
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine=""$(ProjectDir)..\Common\SubWCRev.exe" "$(SolutionDir)\." "$(ProjectDir)..\Common\src\svnrev_template.h" "$(ProjectDir)..\Common\src\svnrev.h""
|
CommandLine=""$(ProjectDir)..\Common\SubWCRev.exe" "$(SolutionDir)\." "$(ProjectDir)..\Common\src\svnrev_template.h" "$(ProjectDir)..\Common\src\svnrev.h""
|
||||||
ExcludedFromBuild="false"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
Description="Copying Data\* to $(TargetDir)"
|
Description="Copying Data\* to $(TargetDir)"
|
||||||
CommandLine="xcopy "$(SolutionDir)..\Data" "$(TargetDir)" /s /e /q /d
echo Copying External .dlls
xcopy "$(SolutionDir)..\Externals\Cg\*.dll" "$(TargetDir)" /s /e /q /d
xcopy "$(SolutionDir)..\Externals\SDL\win32\*.dll" "$(TargetDir)" /s /e /q /d
xcopy "$(SolutionDir)..\Externals\WiiUse\Win32\*.dll" "$(TargetDir)" /s /e /q /d
"
|
CommandLine="xcopy "$(SolutionDir)..\Data" "$(TargetDir)" /s /e /q /d
echo Copying External .dlls
xcopy "$(SolutionDir)..\Externals\Cg\*.dll" "$(TargetDir)" /s /e /q /d
xcopy "$(SolutionDir)..\Externals\SDL\win32\*.dll" "$(TargetDir)" /s /e /q /d
xcopy "$(SolutionDir)..\Externals\WiiUse\Win32\*.dll" "$(TargetDir)" /s /e /q /d
"
|
||||||
ExcludedFromBuild="false"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
#include "ConfigMain.h"
|
#include "ConfigMain.h"
|
||||||
#include "Frame.h"
|
#include "Frame.h"
|
||||||
#include "CodeWindow.h"
|
#include "CodeWindow.h"
|
||||||
#include "../../../../Branches/MusicMod/Common/Src/Console.h"
|
#include "../../../Branches/MusicMod/Main/Src/Setup.h"
|
||||||
#ifdef MUSICMOD
|
#ifdef MUSICMOD
|
||||||
#include "../../../Branches/MusicMod/Main/Src/Main.h" // MusicMod
|
#include "../../../Branches/MusicMod/Main/Src/Main.h" // MusicMod
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -6,7 +6,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Core", "Core\Core\Core.vcpr
|
||||||
{C7E5D50A-2916-464B-86A7-E10B3CC88ADA} = {C7E5D50A-2916-464B-86A7-E10B3CC88ADA}
|
{C7E5D50A-2916-464B-86A7-E10B3CC88ADA} = {C7E5D50A-2916-464B-86A7-E10B3CC88ADA}
|
||||||
{0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
|
{0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
|
||||||
{71B16F46-0B00-4EDA-B253-D6D9D03A215C} = {71B16F46-0B00-4EDA-B253-D6D9D03A215C}
|
{71B16F46-0B00-4EDA-B253-D6D9D03A215C} = {71B16F46-0B00-4EDA-B253-D6D9D03A215C}
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803} = {DE7C596C-CBC4-4278-8909-146D63990803}
|
|
||||||
{29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
|
{29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
|
||||||
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
||||||
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
|
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
|
||||||
|
@ -55,19 +54,16 @@ EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DolphinWX", "Core\DolphinWX\DolphinWX.vcproj", "{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DolphinWX", "Core\DolphinWX\DolphinWX.vcproj", "{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
|
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
|
||||||
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160} = {CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}
|
||||||
{0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
|
{0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495} = {8D612734-FAA5-4B8A-804F-4DEA2367D495}
|
|
||||||
{71B16F46-0B00-4EDA-B253-D6D9D03A215C} = {71B16F46-0B00-4EDA-B253-D6D9D03A215C}
|
{71B16F46-0B00-4EDA-B253-D6D9D03A215C} = {71B16F46-0B00-4EDA-B253-D6D9D03A215C}
|
||||||
{33546D62-7F34-4EA6-A88E-D538B36E16BF} = {33546D62-7F34-4EA6-A88E-D538B36E16BF}
|
{33546D62-7F34-4EA6-A88E-D538B36E16BF} = {33546D62-7F34-4EA6-A88E-D538B36E16BF}
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803} = {DE7C596C-CBC4-4278-8909-146D63990803}
|
|
||||||
{3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
|
{3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF} = {95CCAABC-7062-47C4-B8C1-A064DD5F16FF}
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF} = {95CCAABC-7062-47C4-B8C1-A064DD5F16FF}
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068} = {521498BE-6089-4780-8223-E67C22F4E068}
|
|
||||||
{29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
|
{29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
|
||||||
{4D3CD4C5-412B-4B49-9B1B-A68A2A129C77} = {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}
|
{4D3CD4C5-412B-4B49-9B1B-A68A2A129C77} = {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}
|
||||||
{F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
|
{F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A} = {0B72B5D6-5D72-4391-84A7-9CCA5392668A}
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A} = {0B72B5D6-5D72-4391-84A7-9CCA5392668A}
|
||||||
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
|
||||||
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
|
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -139,7 +135,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Externals", "Externals", "{
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Player", "..\Branches\MusicMod\Player\Player.vcproj", "{0B72B5D6-5D72-4391-84A7-9CCA5392668A}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Player", "..\Branches\MusicMod\Player\Player.vcproj", "{0B72B5D6-5D72-4391-84A7-9CCA5392668A}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803} = {DE7C596C-CBC4-4278-8909-146D63990803}
|
|
||||||
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -155,7 +150,6 @@ EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Main", "..\Branches\MusicMod\Main\Main.vcproj", "{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Main", "..\Branches\MusicMod\Main\Main.vcproj", "{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160} = {CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160} = {CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803} = {DE7C596C-CBC4-4278-8909-146D63990803}
|
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A} = {0B72B5D6-5D72-4391-84A7-9CCA5392668A}
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A} = {0B72B5D6-5D72-4391-84A7-9CCA5392668A}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -239,8 +233,10 @@ Global
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Debug|Win32.ActiveCfg = Debug|Win32
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Debug|x64.ActiveCfg = Debug|x64
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|Win32.ActiveCfg = Release|Win32
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|Win32.Build.0 = Release|Win32
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|x64.ActiveCfg = Release|x64
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|x64.ActiveCfg = Release|x64
|
||||||
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|x64.Build.0 = Release|x64
|
{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}.Release|x64.Build.0 = Release|x64
|
||||||
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9}.Debug|Win32.ActiveCfg = Debug|Win32
|
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
@ -322,7 +318,6 @@ Global
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Debug|Win32.ActiveCfg = Debug|Win32
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Debug|x64.ActiveCfg = Debug|x64
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Release|Win32.ActiveCfg = Release|Win32
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Release|Win32.Build.0 = Release|Win32
|
{8D612734-FAA5-4B8A-804F-4DEA2367D495}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
@ -359,15 +354,14 @@ Global
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
{521498BE-6089-4780-8223-E67C22F4E068}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.DebugFast|x64.Build.0 = DebugFast|x64
|
{521498BE-6089-4780-8223-E67C22F4E068}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.Release|Win32.ActiveCfg = Release|Win32
|
{521498BE-6089-4780-8223-E67C22F4E068}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.Release|x64.ActiveCfg = Release|x64
|
{521498BE-6089-4780-8223-E67C22F4E068}.Release|x64.ActiveCfg = Release|x64
|
||||||
{521498BE-6089-4780-8223-E67C22F4E068}.Release|x64.Build.0 = Release|x64
|
{521498BE-6089-4780-8223-E67C22F4E068}.Release|x64.Build.0 = Release|x64
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|Win32.ActiveCfg = Debug|Win32
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|Win32.Build.0 = Debug|Win32
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|x64.ActiveCfg = Debug|x64
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|x64.Build.0 = Debug|x64
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Debug|x64.Build.0 = Debug|x64
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|Win32.ActiveCfg = Debug|Win32
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|Win32.Build.0 = Debug|Win32
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|x64.ActiveCfg = Debug|x64
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|x64.ActiveCfg = Debug|x64
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|x64.Build.0 = Debug|x64
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.DebugFast|x64.Build.0 = Debug|x64
|
||||||
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Release|Win32.ActiveCfg = Release|Win32
|
{0B72B5D6-5D72-4391-84A7-9CCA5392668A}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
@ -378,7 +372,7 @@ Global
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|Win32.Build.0 = Debug|Win32
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|x64.ActiveCfg = Debug|x64
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|x64.Build.0 = Debug|x64
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Debug|x64.Build.0 = Debug|x64
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|Win32.ActiveCfg = Debug|Win32
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|x64.ActiveCfg = Debug|x64
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|x64.ActiveCfg = Debug|x64
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|x64.Build.0 = Debug|x64
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.DebugFast|x64.Build.0 = Debug|x64
|
||||||
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Release|Win32.ActiveCfg = Release|Win32
|
{0D14F1E9-490B-4A2D-A4EF-0535E8B3C718}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
@ -387,8 +381,8 @@ Global
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|Win32.ActiveCfg = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|Win32.Build.0 = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|x64.ActiveCfg = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|Win32.ActiveCfg = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|Win32.Build.0 = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|x64.ActiveCfg = Debug|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.DebugFast|x64.ActiveCfg = Debug|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.Release|Win32.ActiveCfg = Release|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{DE7C596C-CBC4-4278-8909-146D63990803}.Release|Win32.Build.0 = Release|Win32
|
{DE7C596C-CBC4-4278-8909-146D63990803}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
@ -397,8 +391,8 @@ Global
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|Win32.ActiveCfg = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|Win32.Build.0 = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|x64.ActiveCfg = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|Win32.ActiveCfg = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|Win32.Build.0 = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|x64.ActiveCfg = Debug|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.DebugFast|x64.ActiveCfg = Debug|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Release|Win32.ActiveCfg = Release|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Release|Win32.Build.0 = Release|Win32
|
{95CCAABC-7062-47C4-B8C1-A064DD5F16FF}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
|
|
@ -742,15 +742,15 @@
|
||||||
Name="Logging"
|
Name="Logging"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Console.cpp"
|
RelativePath=".\Src\Debugger\File.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Console.h"
|
RelativePath=".\Src\Debugger\File.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Logging.cpp"
|
RelativePath=".\Src\Debugger\Logging.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// includes
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -28,13 +31,16 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "ConsoleWindow.h" // Open and close console
|
||||||
|
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "PBView.h"
|
#include "PBView.h"
|
||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#include "FileSearch.h"
|
#include "FileSearch.h"
|
||||||
#include "../Logging/Console.h" // open and close console
|
//#include "../Logging/File.h" // Write to file
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
// Make the wxTextCtrls scroll with each other
|
// Make the wxTextCtrls scroll with each other
|
||||||
|
@ -55,7 +61,7 @@ void CDebugger::DoScrollBlocks()
|
||||||
else if(GetAsyncKeyState(VK_NUMPAD2))
|
else if(GetAsyncKeyState(VK_NUMPAD2))
|
||||||
A += 0.11;
|
A += 0.11;
|
||||||
|
|
||||||
wprintf("GetScrollPos:%i GetScrollRange:%i GetPosition:%i GetLastPosition:%i GetMaxWidth:%i \
|
Console::Print("GetScrollPos:%i GetScrollRange:%i GetPosition:%i GetLastPosition:%i GetMaxWidth:%i \
|
||||||
GetLineLength:%i XYToPosition:%i\n \
|
GetLineLength:%i XYToPosition:%i\n \
|
||||||
GetScrollPos * GetLineLength + GetScrollRange:%i A:%f\n",
|
GetScrollPos * GetLineLength + GetScrollRange:%i A:%f\n",
|
||||||
m_bl95->GetScrollPos(wxVERTICAL), m_bl95->GetScrollRange(wxVERTICAL),
|
m_bl95->GetScrollPos(wxVERTICAL), m_bl95->GetScrollRange(wxVERTICAL),
|
||||||
|
|
|
@ -19,26 +19,31 @@
|
||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
// includes
|
// includes
|
||||||
#include <iostream>
|
#include <iostream> // System
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "ConsoleWindow.h" // Open and close console
|
||||||
|
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "PBView.h"
|
#include "PBView.h"
|
||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#include "FileSearch.h"
|
#include "FileSearch.h"
|
||||||
#include "../Logging/Console.h" // open and close console
|
#include "../Debugger/File.h" // Write to file
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Declare events
|
// Event table and class
|
||||||
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
||||||
EVT_CLOSE(CDebugger::OnClose) // on close event
|
EVT_CLOSE(CDebugger::OnClose) // on close event
|
||||||
|
|
||||||
|
@ -69,8 +74,6 @@ BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
||||||
//EVT_SCROLL(CDebugger::ScrollBlocks)
|
//EVT_SCROLL(CDebugger::ScrollBlocks)
|
||||||
//EVT_SCROLLWIN(CDebugger::ScrollBlocks)
|
//EVT_SCROLLWIN(CDebugger::ScrollBlocks)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
// =======================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
CDebugger::CDebugger(wxWindow *parent, wxWindowID id, const wxString &title,
|
CDebugger::CDebugger(wxWindow *parent, wxWindowID id, const wxString &title,
|
||||||
const wxPoint &position, const wxSize& size, long style)
|
const wxPoint &position, const wxSize& size, long style)
|
||||||
|
@ -147,7 +150,50 @@ CDebugger::~CDebugger()
|
||||||
this->Save(file);
|
this->Save(file);
|
||||||
file.Save(DEBUGGER_CONFIG_FILE);
|
file.Save(DEBUGGER_CONFIG_FILE);
|
||||||
}
|
}
|
||||||
|
// ====================
|
||||||
|
|
||||||
|
|
||||||
|
// ========================================================================
|
||||||
|
// System functions
|
||||||
|
// --------------
|
||||||
|
void CDebugger::OnClose(wxCloseEvent& /*event*/)
|
||||||
|
{
|
||||||
|
// Save the window position when we hide the window to
|
||||||
|
IniFile file;
|
||||||
|
file.Load(DEBUGGER_CONFIG_FILE);
|
||||||
|
this->Save(file);
|
||||||
|
file.Save(DEBUGGER_CONFIG_FILE);
|
||||||
|
|
||||||
|
EndModal(0);
|
||||||
|
#ifdef _WIN32
|
||||||
|
Console::Close(); // Take the console window with it
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDebugger::DoHide()
|
||||||
|
{
|
||||||
|
Hide();
|
||||||
|
#ifdef _WIN32
|
||||||
|
Console::Close(); // The console goes with the wx window
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDebugger::DoShow()
|
||||||
|
{
|
||||||
|
Show();
|
||||||
|
DoShowHideConsole(); // The console goes with the wx window
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDebugger::OnUpdate(wxCommandEvent& /*event*/)
|
||||||
|
{
|
||||||
|
this->NotifyUpdate();
|
||||||
|
}
|
||||||
|
// ===============
|
||||||
|
|
||||||
|
|
||||||
|
// ==========================================================================
|
||||||
|
// Save and load settings
|
||||||
|
// --------------
|
||||||
void CDebugger::Save(IniFile& _IniFile) const
|
void CDebugger::Save(IniFile& _IniFile) const
|
||||||
{
|
{
|
||||||
// TODO2: get the screen resolution and make limits from that
|
// TODO2: get the screen resolution and make limits from that
|
||||||
|
@ -197,7 +243,12 @@ void CDebugger::Load(IniFile& _IniFile)
|
||||||
_IniFile.Get("SoundWindow", "StoreMails", &StoreMails, m_gcwiiset->IsChecked(1));
|
_IniFile.Get("SoundWindow", "StoreMails", &StoreMails, m_gcwiiset->IsChecked(1));
|
||||||
m_gcwiiset->Check(1, StoreMails);
|
m_gcwiiset->Check(1, StoreMails);
|
||||||
}
|
}
|
||||||
|
// ===================
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Create GUI controls
|
||||||
|
// -------------
|
||||||
void CDebugger::CreateGUIControls()
|
void CDebugger::CreateGUIControls()
|
||||||
{
|
{
|
||||||
SetTitle(wxT("Sound Debugging"));
|
SetTitle(wxT("Sound Debugging"));
|
||||||
|
@ -517,39 +568,7 @@ SetTitle(wxT("Sound Debugging"));
|
||||||
NotifyUpdate();
|
NotifyUpdate();
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
|
/////////////////////////////
|
||||||
// ========================================================================
|
|
||||||
// System functions
|
|
||||||
// --------------
|
|
||||||
void CDebugger::OnClose(wxCloseEvent& /*event*/)
|
|
||||||
{
|
|
||||||
// save the window position when we hide the window to
|
|
||||||
IniFile file;
|
|
||||||
file.Load(DEBUGGER_CONFIG_FILE);
|
|
||||||
this->Save(file);
|
|
||||||
file.Save(DEBUGGER_CONFIG_FILE);
|
|
||||||
|
|
||||||
EndModal(0);
|
|
||||||
CloseConsole(); // Take the console window with it
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDebugger::DoHide()
|
|
||||||
{
|
|
||||||
Hide();
|
|
||||||
CloseConsole(); // The console goes with the wx window
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDebugger::DoShow()
|
|
||||||
{
|
|
||||||
Show();
|
|
||||||
DoShowHideConsole(); // The console goes with the wx window
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDebugger::OnUpdate(wxCommandEvent& /*event*/)
|
|
||||||
{
|
|
||||||
this->NotifyUpdate();
|
|
||||||
}
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -664,10 +683,12 @@ void CDebugger::ShowHideConsole(wxCommandEvent& event)
|
||||||
|
|
||||||
void CDebugger::DoShowHideConsole()
|
void CDebugger::DoShowHideConsole()
|
||||||
{
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
if(m_options->IsChecked(3))
|
if(m_options->IsChecked(3))
|
||||||
OpenConsole();
|
OpenConsole();
|
||||||
else
|
else
|
||||||
CloseConsole();
|
CloseConsole();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
// ==============
|
// ==============
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
// Copyright (C) 2003-2008 Dolphin Project.
|
||||||
|
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, version 2.0.
|
||||||
|
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License 2.0 for more details.
|
||||||
|
|
||||||
|
// A copy of the GPL 2.0 should have been included with the program.
|
||||||
|
// If not, see http://www.gnu.org/licenses/
|
||||||
|
|
||||||
|
// Official SVN repository and contact information can be found at
|
||||||
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------
|
||||||
|
// Includes
|
||||||
|
#include <string>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "Common.h"
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
|
#include "../Debugger/Debugger.h"
|
||||||
|
#include "../Debugger/File.h"
|
||||||
|
extern CDebugger* m_frame;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// --------------------
|
||||||
|
// On and off
|
||||||
|
bool g_consoleEnable = true;
|
||||||
|
//int gSaveFile = 0;
|
||||||
|
#define DEBUG_HLE
|
||||||
|
|
||||||
|
// --------------------
|
||||||
|
// Create file handles
|
||||||
|
#ifdef DEBUG_HLE
|
||||||
|
FILE* __fStdOut[nFiles];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// =======================================================================================
|
||||||
|
/* Open file handles */
|
||||||
|
// -------------
|
||||||
|
void StartFile(int width, int height, char* fname)
|
||||||
|
{
|
||||||
|
#if defined(DEBUG_HLE) && defined(_WIN32)
|
||||||
|
if(fname)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < nFiles; i++)
|
||||||
|
{
|
||||||
|
// Edit the log file name
|
||||||
|
std::string FileEnding = ".log";
|
||||||
|
std::string FileName = fname;
|
||||||
|
char buffer[33]; _itoa(i, buffer, 10); // convert number to string
|
||||||
|
std::string FullFilename = (FileName + buffer + FileEnding);
|
||||||
|
__fStdOut[i] = fopen(FullFilename.c_str(), "w");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
// ======================
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/* Close the file handles */
|
||||||
|
// -------------
|
||||||
|
void CloseFile()
|
||||||
|
{
|
||||||
|
// Close the file handles
|
||||||
|
for(int i = 0; i < nFiles; i++)
|
||||||
|
{
|
||||||
|
if(__fStdOut[i]) fclose(__fStdOut[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------
|
||||||
|
// File printf function
|
||||||
|
// -------------
|
||||||
|
int PrintFile(int a, char *fmt, ...)
|
||||||
|
{
|
||||||
|
#if defined(DEBUG_HLE) && defined(_WIN32)
|
||||||
|
|
||||||
|
if(m_frame->gSaveFile)
|
||||||
|
{
|
||||||
|
char s[StringSize];
|
||||||
|
va_list argptr;
|
||||||
|
int cnt;
|
||||||
|
|
||||||
|
va_start(argptr, fmt);
|
||||||
|
cnt = vsnprintf(s, StringSize, fmt, argptr);
|
||||||
|
va_end(argptr);
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------
|
||||||
|
if(__fStdOut[a]) // TODO: make this work, we have to set all default values to NULL
|
||||||
|
// to make it work
|
||||||
|
fprintf(__fStdOut[a], s);
|
||||||
|
// -------------
|
||||||
|
|
||||||
|
return(cnt);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// includes
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -28,23 +31,31 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//#include "ConsoleWindow.h" // Open and close console
|
||||||
|
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "PBView.h"
|
#include "PBView.h"
|
||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#include "FileSearch.h"
|
#include "FileSearch.h"
|
||||||
#include "../Logging/Console.h" // open and close console
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Declarations and definitions
|
||||||
|
// -------------
|
||||||
extern std::vector<std::string> sMailLog, sMailTime;
|
extern std::vector<std::string> sMailLog, sMailTime;
|
||||||
extern CDebugger* m_frame;
|
extern CDebugger* m_frame;
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Update mail window
|
// Update mail window
|
||||||
// --------------
|
// --------------
|
||||||
void CDebugger::DoUpdateMail()
|
void CDebugger::DoUpdateMail()
|
||||||
{
|
{
|
||||||
//wprintf("i %i %i\n", sFullMail.size(), sMailLog.size());
|
//Console::Print("i %i %i\n", sFullMail.size(), sMailLog.size());
|
||||||
|
|
||||||
if(sFullMail.size() > 0 && sMailLog.size() > 0)
|
if(sFullMail.size() > 0 && sMailLog.size() > 0)
|
||||||
{
|
{
|
||||||
|
@ -69,7 +80,7 @@ void CDebugger::UpdateMail(wxNotebookEvent& event)
|
||||||
// Change mail from radio button change
|
// Change mail from radio button change
|
||||||
void CDebugger::ChangeMail(wxCommandEvent& event)
|
void CDebugger::ChangeMail(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
//wprintf("abc");
|
//Console::Print("abc");
|
||||||
DoUpdateMail();
|
DoUpdateMail();
|
||||||
//if(StoreMails) ReadDir();
|
//if(StoreMails) ReadDir();
|
||||||
}
|
}
|
||||||
|
@ -120,7 +131,7 @@ void CDebugger::ReadDir()
|
||||||
else
|
else
|
||||||
cut = pieces[0];
|
cut = pieces[0];
|
||||||
|
|
||||||
//wprintf("%s %s %s\n", pieces[0].c_str(), pieces[1].c_str(),
|
//Console::Print("%s %s %s\n", pieces[0].c_str(), pieces[1].c_str(),
|
||||||
// pieces[2].c_str(), pieces[3].c_str());
|
// pieces[2].c_str(), pieces[3].c_str());
|
||||||
|
|
||||||
if (NoDuplicate(pieces[0]) && pieces.size() >= 3)
|
if (NoDuplicate(pieces[0]) && pieces.size() >= 3)
|
||||||
|
@ -163,11 +174,11 @@ u32 CDebugger::CountFiles(std::string FileName)
|
||||||
|
|
||||||
for (u32 i = 0; i < all_all_files.size(); i++)
|
for (u32 i = 0; i < all_all_files.size(); i++)
|
||||||
{
|
{
|
||||||
//wprintf("CountFiles %i %s\n", i, all_all_files[i].c_str());
|
//Console::Print("CountFiles %i %s\n", i, all_all_files[i].c_str());
|
||||||
if(all_all_files[i] == FileName)
|
if(all_all_files[i] == FileName)
|
||||||
match++;
|
match++;
|
||||||
}
|
}
|
||||||
//wprintf("We found %i files for this game\n", match);
|
//Console::Print("We found %i files for this game\n", match);
|
||||||
return match;
|
return match;
|
||||||
}
|
}
|
||||||
// ==============
|
// ==============
|
||||||
|
@ -219,13 +230,13 @@ void CDebugger::Readfile(std::string FileName, bool GC)
|
||||||
if(m_RadioBox[3]->IsItemEnabled(i)) curr_n++;
|
if(m_RadioBox[3]->IsItemEnabled(i)) curr_n++;
|
||||||
m_RadioBox[3]->Enable(i, false); // disable all
|
m_RadioBox[3]->Enable(i, false); // disable all
|
||||||
}
|
}
|
||||||
//wprintf("Disabled all: n %i\n", n);
|
//Console::Print("Disabled all: n %i\n", n);
|
||||||
|
|
||||||
|
|
||||||
for (u32 i = 0; i < n; i++)
|
for (u32 i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
m_RadioBox[3]->Enable(i, true); // then anble the right ones
|
m_RadioBox[3]->Enable(i, true); // then anble the right ones
|
||||||
//wprintf("m_RadioBox[3] enabled: %i\n", i);
|
//Console::Print("m_RadioBox[3] enabled: %i\n", i);
|
||||||
|
|
||||||
std::string sz = "";
|
std::string sz = "";
|
||||||
std::ostringstream ci;
|
std::ostringstream ci;
|
||||||
|
@ -233,7 +244,7 @@ void CDebugger::Readfile(std::string FileName, bool GC)
|
||||||
std::string f0 = FULL_MAIL_LOGS_DIR + FileName + "_sep" + ci.str() + "_sep" + "0_sep" + (GC ? "GC" : "Wii") + "_sep.log";
|
std::string f0 = FULL_MAIL_LOGS_DIR + FileName + "_sep" + ci.str() + "_sep" + "0_sep" + (GC ? "GC" : "Wii") + "_sep.log";
|
||||||
std::string f1 = FULL_MAIL_LOGS_DIR + FileName + "_sep" + ci.str() + "_sep" + "1_sep" + (GC ? "GC" : "Wii") + "_sep.log";
|
std::string f1 = FULL_MAIL_LOGS_DIR + FileName + "_sep" + ci.str() + "_sep" + "1_sep" + (GC ? "GC" : "Wii") + "_sep.log";
|
||||||
|
|
||||||
//wprintf("ifstream %s %s\n", f0.c_str(), f1.c_str());
|
//Console::Print("ifstream %s %s\n", f0.c_str(), f1.c_str());
|
||||||
|
|
||||||
if(sFullMail.size() <= i) sFullMail.resize(sFullMail.size() + 1);
|
if(sFullMail.size() <= i) sFullMail.resize(sFullMail.size() + 1);
|
||||||
if(sMailLog.size() <= i) sMailLog.resize(sMailLog.size() + 1);
|
if(sMailLog.size() <= i) sMailLog.resize(sMailLog.size() + 1);
|
||||||
|
@ -244,7 +255,7 @@ void CDebugger::Readfile(std::string FileName, bool GC)
|
||||||
else sMailLog.at(i) = "";
|
else sMailLog.at(i) = "";
|
||||||
}
|
}
|
||||||
if(n < curr_n) m_RadioBox[3]->Select(n - 1);
|
if(n < curr_n) m_RadioBox[3]->Select(n - 1);
|
||||||
//wprintf("Select: %i | n %i curr_n %i\n", n - 1, n, curr_n);
|
//Console::Print("Select: %i | n %i curr_n %i\n", n - 1, n, curr_n);
|
||||||
DoUpdateMail();
|
DoUpdateMail();
|
||||||
}
|
}
|
||||||
// ==============
|
// ==============
|
||||||
|
@ -278,7 +289,7 @@ void CDebugger::OnGameChange(wxCommandEvent& event)
|
||||||
void CDebugger::MailSettings(wxCommandEvent& event)
|
void CDebugger::MailSettings(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
//for (int i = 0; i < all_all_files.size(); ++i)
|
//for (int i = 0; i < all_all_files.size(); ++i)
|
||||||
//wprintf("s: %s \n", all_all_files.at(i).c_str());
|
//Console::Print("s: %s \n", all_all_files.at(i).c_str());
|
||||||
|
|
||||||
ScanMails = m_gcwiiset->IsChecked(0);
|
ScanMails = m_gcwiiset->IsChecked(0);
|
||||||
StoreMails = m_gcwiiset->IsChecked(1);
|
StoreMails = m_gcwiiset->IsChecked(1);
|
||||||
|
|
|
@ -1,230 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// Includes
|
|
||||||
#include <string>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "Common.h"
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
#include "../Debugger/Debugger.h"
|
|
||||||
|
|
||||||
extern CDebugger* m_frame;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// On and off
|
|
||||||
bool g_consoleEnable = true;
|
|
||||||
//int gSaveFile = 0;
|
|
||||||
#define DEBUG_HLE
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// Settings
|
|
||||||
int nFiles = 4;
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// Create handles
|
|
||||||
|
|
||||||
#ifdef DEBUG_HLE
|
|
||||||
FILE* __fStdOut[4]; // you have to update this manually, we can't place a nFiles in there
|
|
||||||
#endif
|
|
||||||
#ifdef _WIN32
|
|
||||||
HANDLE __hStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Start console window - width and height is the size of console window, if you specify
|
|
||||||
fname, the output will also be written to this file. TODO: Close the file pointer when the app
|
|
||||||
is closed */
|
|
||||||
// -------------
|
|
||||||
void startConsoleWin(int width, int height, char* fname)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_HLE) && defined(_WIN32)
|
|
||||||
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
SetConsoleTitle(fname);
|
|
||||||
__hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
COORD co = {width,height};
|
|
||||||
SetConsoleScreenBufferSize(__hStdOut, co);
|
|
||||||
|
|
||||||
SMALL_RECT coo = {0,0,(width - 1),70}; // top, left, right, bottom
|
|
||||||
SetConsoleWindowInfo(__hStdOut, TRUE, &coo);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Write to a file
|
|
||||||
if(fname)
|
|
||||||
{
|
|
||||||
for(int i = 0; i < nFiles; i++)
|
|
||||||
{
|
|
||||||
// Edit the log file name
|
|
||||||
std::string FileEnding = ".log";
|
|
||||||
std::string FileName = fname;
|
|
||||||
char buffer[33]; _itoa(i, buffer, 10); // convert number to string
|
|
||||||
std::string FullFilename = (FileName + buffer + FileEnding);
|
|
||||||
__fStdOut[i] = fopen(FullFilename.c_str(), "w");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ---------------
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// File printf function
|
|
||||||
int aprintf(int a, char *fmt, ...)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_HLE) && defined(_WIN32)
|
|
||||||
|
|
||||||
if(m_frame->gSaveFile)
|
|
||||||
{
|
|
||||||
char s[5000]; // WARNING: mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 5000, fmt, argptr); // remember to update this value to
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
if(__fStdOut[a]) // TODO: make this work, we have to set all default values to NULL
|
|
||||||
//to make it work
|
|
||||||
fprintf(__fStdOut[a], s);
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Printf to screen function
|
|
||||||
int wprintf(const char *fmt, ...)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_HLE) && defined(_WIN32)
|
|
||||||
char s[1024*20]; // Warning, mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 1024*20, fmt, argptr);
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
if(__hStdOut)
|
|
||||||
{
|
|
||||||
WriteConsole(__hStdOut, s, strlen(s), &cCharsWritten, NULL);
|
|
||||||
}
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Clear console screen
|
|
||||||
void ClearScreen()
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_HLE) && defined(_WIN32)
|
|
||||||
if(g_consoleEnable)
|
|
||||||
{
|
|
||||||
COORD coordScreen = { 0, 0 };
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
|
||||||
DWORD dwConSize;
|
|
||||||
|
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
|
||||||
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
SetConsoleCursorPosition(hConsole, coordScreen);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Get window handle of console window to be able to resize it
|
|
||||||
#if defined(DEBUG_HLE) && defined(_WIN32)
|
|
||||||
HWND GetConsoleHwnd(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
|
|
||||||
HWND hwndFound; // This is what is returned to the caller.
|
|
||||||
char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
|
|
||||||
// WindowTitle.
|
|
||||||
char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
|
|
||||||
// WindowTitle.
|
|
||||||
|
|
||||||
// Fetch current window title.
|
|
||||||
|
|
||||||
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
|
|
||||||
|
|
||||||
// Format a "unique" NewWindowTitle.
|
|
||||||
|
|
||||||
wsprintf(pszNewWindowTitle,"%d/%d",
|
|
||||||
GetTickCount(),
|
|
||||||
GetCurrentProcessId());
|
|
||||||
|
|
||||||
// Change current window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Ensure window title has been updated.
|
|
||||||
|
|
||||||
Sleep(40);
|
|
||||||
|
|
||||||
// Look for NewWindowTitle.
|
|
||||||
|
|
||||||
hwndFound = FindWindow(NULL, pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Restore original window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszOldWindowTitle);
|
|
||||||
|
|
||||||
return(hwndFound);
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif // win32
|
|
|
@ -1,28 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
void startConsoleWin(int width, int height, char* fname);
|
|
||||||
int wprintf(const char *fmt, ...);
|
|
||||||
int aprintf(int a, char *fmt, ...);
|
|
||||||
void ClearScreen();
|
|
||||||
void OpenConsole();
|
|
||||||
void CloseConsole();
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
HWND GetConsoleHwnd(void);
|
|
||||||
#endif
|
|
|
@ -1,943 +0,0 @@
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Licensetype: GNU General Public License (GPL)
|
|
||||||
//
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
//
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
//
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Includes
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
#include <string> // so that we can test std::string == abc
|
|
||||||
#include <math.h> // for the pow() function
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "StringUtil.h"
|
|
||||||
|
|
||||||
#include "../Debugger/Debugger.h"
|
|
||||||
#include "../Debugger/PBView.h"
|
|
||||||
#include "Console.h" // open and close console, clear console window
|
|
||||||
|
|
||||||
#include "../Globals.h"
|
|
||||||
#include "../UCodes/UCodes.h"
|
|
||||||
#include "../UCodes/UCode_AXStructs.h"
|
|
||||||
#include "../UCodes/UCode_AX.h"
|
|
||||||
#include "../UCodes/UCode_AXWii.h"
|
|
||||||
#include "../UCodes/UCode_AX_Voice.h"
|
|
||||||
|
|
||||||
// Externals
|
|
||||||
extern int nFiles;
|
|
||||||
extern CDebugger* m_frame;
|
|
||||||
//int PBSize = 128;
|
|
||||||
|
|
||||||
// Parameter blocks
|
|
||||||
|
|
||||||
std::vector<int> mem(NUMBER_OF_PBS); // mem1 or mem2
|
|
||||||
std::vector<u32> gloopPos(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gsampleEnd(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gsamplePos(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// main
|
|
||||||
std::vector<u16> running(NUMBER_OF_PBS, 0);
|
|
||||||
std::vector<u16> gsrc_type(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gis_stream(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// PBSampleRateConverter src
|
|
||||||
std::vector<u32> gratio(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gratiohi(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gratiolo(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gfrac(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gcoef(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// PBSampleRateConverter mixer
|
|
||||||
std::vector<u16> gvolume_left(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmix_unknown(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gvolume_right(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmix_unknown2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_control(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gmixer_control_wii(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
std::vector<u16> gmixer_vol1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol3(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol4(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol5(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol6(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_vol7(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
std::vector<u16> gmixer_d1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d3(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d4(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d5(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d6(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gmixer_d7(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// PBVolumeEnvelope vol_env
|
|
||||||
std::vector<u16> gcur_volume(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gcur_volume_delta(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// PBAudioAddr audio_addr (incl looping)
|
|
||||||
std::vector<u16> gaudioFormat(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> glooping(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gloop1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gloop2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gloop3(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// PBADPCMInfo adpcm
|
|
||||||
std::vector<u16> gadloop1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gadloop2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gadloop3(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// updates
|
|
||||||
std::vector<u16> gupdates1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gupdates2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gupdates3(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gupdates4(NUMBER_OF_PBS);
|
|
||||||
std::vector<u16> gupdates5(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_addr(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_data(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_data1(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_data2(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_data3(NUMBER_OF_PBS);
|
|
||||||
std::vector<u32> gupdates_data4(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
// Counters
|
|
||||||
|
|
||||||
int count1 = 0;
|
|
||||||
int count2 = 0;
|
|
||||||
int iupd = 0;
|
|
||||||
bool iupdonce = false;
|
|
||||||
std::vector<u16> viupd(15); // the length of the update frequency bar
|
|
||||||
int vectorLengthGUI = 8; // length of playback history bar for the GUI version
|
|
||||||
int vectorLength = 15; // for console version
|
|
||||||
int vectorLength2 = 100; // for console version, how long to show
|
|
||||||
|
|
||||||
// More stuff
|
|
||||||
|
|
||||||
// should we worry about the additonal memory these lists require? bool will allocate
|
|
||||||
// very little memory
|
|
||||||
std::vector< std::vector<bool> > vector1(NUMBER_OF_PBS, std::vector<bool>(vectorLength, false));
|
|
||||||
std::vector< std::vector<bool> > vector2(NUMBER_OF_PBS, std::vector<bool>(vectorLength2, false));
|
|
||||||
std::vector<int> numberRunning(NUMBER_OF_PBS);
|
|
||||||
|
|
||||||
|
|
||||||
// Classes
|
|
||||||
|
|
||||||
extern CDebugger* m_frame;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write title
|
|
||||||
// --------------
|
|
||||||
std::string writeTitle(int a, bool Wii)
|
|
||||||
{
|
|
||||||
std::string b;
|
|
||||||
if(a == 0)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // show base 10
|
|
||||||
{
|
|
||||||
b = " adpcm adpcm_loop\n";
|
|
||||||
b = b + " Nr m pos / end lpos | voll volr | isl iss | pre yn1 yn2 pre yn1 yn2 | frac ratio[hi lo]\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
b = " adpcm adpcm_loop\n";
|
|
||||||
b = b + " Nr pos / end lpos | voll volr | isl iss | pre yn1 yn2 pre yn1 yn2 | frac rati[hi lo ]\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a == 1)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // show base 10
|
|
||||||
{
|
|
||||||
b = " Nr pos / end lpos | voll volr | src form coef | 1 2 3 4 5 addr value\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
b = " Nr pos / end lpos | voll volr | src form coef | 1 2 3 4 5 addr value\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a == 2)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // show base 10
|
|
||||||
{
|
|
||||||
b = " Nr pos / end lpos | voll volr | isl iss | e-l e-s\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
b = " Nr pos / end lpos | voll volr | isl iss | e-l e-s\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a == 3)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // show base 10
|
|
||||||
{
|
|
||||||
if(Wii)
|
|
||||||
b = " Nr voll volr dl dr curv delt mixc r | v1 v2 v3 v4 v5 v6 v7 | d1 d2 d3 d4 d5 d6 d7\n";
|
|
||||||
else
|
|
||||||
b = " Nr voll volr dl dr curv delt mixc r | v1 v2 v3 v4 v5 v6 v7 | d1 d2 d3 d4 d5 d6 d7\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(Wii)
|
|
||||||
b = " Nr voll volr dl dr curv delt mixc r | v1 v2 v3 v4 v5 v6 v7 | d1 d2 d3 d4 d5 d6 d7\n";
|
|
||||||
else
|
|
||||||
b = " Nr voll volr dl dr curv delt mixc r | v1 v2 v3 v4 v5 v6 v7 | d1 d2 d3 d4 d5 d6 d7\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
// =======================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write main message (presets)
|
|
||||||
// --------------
|
|
||||||
std::string writeMessage(int a, int i, bool Wii)
|
|
||||||
{
|
|
||||||
char buf [1000] = "";
|
|
||||||
std::string sbuf;
|
|
||||||
// =======================================================================================
|
|
||||||
// PRESETS
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
/*
|
|
||||||
PRESET 0
|
|
||||||
" Nr m pos / end lpos | voll volr | isl iss | pre yn1 yn2 pre yn1 yn2 | frac ratio[hi lo]\n";
|
|
||||||
"---------------|00 1 12,341,234/134,123,412 12341234 | 00,000 00,000 | 0 0 | 000 00000 00000 000 00000 00000 | 00000 00000[0 00000]
|
|
||||||
|
|
||||||
" Nr pos / end lpos | voll volr | isl iss | pre yn1 yn2 pre yn1 yn2 | frac rati[hi lo ]\n";
|
|
||||||
"---------------|00 12,341,234/134,123,412 12341234 | 00,000 00,000 | 0 0 | 000 0000 0000 000 0000 0000 | 0000 0000[0 00000]
|
|
||||||
|
|
||||||
PRESET 1 (updates)
|
|
||||||
" Nr pos / end lpos | voll volr | src form coef | 1 2 3 4 5 addr value\n";
|
|
||||||
"---------------|00 12,341,234/12,341,234 12341234 | 00,000 00,000 | 0 0 0 | 0 0 0 0 0 80808080 80808080
|
|
||||||
|
|
||||||
PRESET 2
|
|
||||||
" Nr pos / end lpos | voll volr | isl iss | e-l e-s\n";
|
|
||||||
"---------------|00 12,341,234/12341234 12,341,234 | 00000 00000 | 0 0 | 00,000,000 00,000,000
|
|
||||||
*/
|
|
||||||
if(a == 0)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // base 10 (decimal)
|
|
||||||
{
|
|
||||||
if(Wii) // Wii
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %i %10s/%10s %10s | %6s %6s | %i %i | %03i %05i %05i %03i %05i %05i | %05i %05i[%i %05i]",
|
|
||||||
223, i, mem[i], ThS(gsamplePos[i],true).c_str(), ThS(gsampleEnd[i],true).c_str(), ThS(gloopPos[i],true).c_str(),
|
|
||||||
ThS(gvolume_left[i]).c_str(), ThS(gvolume_right[i]).c_str(),
|
|
||||||
glooping[i], gis_stream[i],
|
|
||||||
gadloop1[i], gadloop2[i], gadloop3[i], gloop1[i], gloop2[i], gloop3[i],
|
|
||||||
gfrac[i], gratio[i], gratiohi[i], gratiolo[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else // GC
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %10s/%10s %10s | %6s %6s | %i %i | %03i %05i %05i %03i %05i %05i | %05i %05i[%i %05i]",
|
|
||||||
223, i, ThS(gsamplePos[i],true).c_str(), ThS(gsampleEnd[i],true).c_str(), ThS(gloopPos[i],true).c_str(),
|
|
||||||
ThS(gvolume_left[i]).c_str(), ThS(gvolume_right[i]).c_str(),
|
|
||||||
glooping[i], gis_stream[i],
|
|
||||||
gadloop1[i], gadloop2[i], gadloop3[i], gloop1[i], gloop2[i], gloop3[i],
|
|
||||||
gfrac[i], gratio[i], gratiohi[i], gratiolo[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %08x/%08x %08x | %04x %04x | %i %i | %02x %04x %04x %02x %04x %04x | %04x %04x[%i %04x]",
|
|
||||||
223, i, gsamplePos[i], gsampleEnd[i], gloopPos[i],
|
|
||||||
gvolume_left[i], gvolume_right[i],
|
|
||||||
glooping[i], gis_stream[i],
|
|
||||||
gadloop1[i], gadloop2[i], gadloop3[i], gloop1[i], gloop2[i], gloop3[i],
|
|
||||||
gfrac[i], gratio[i], gratiohi[i], gratiolo[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a == 1)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase) // base 10 (decimal)
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %10s/%10s %10s | %6s %6s | %u %u %u | %u %u %u %u %u %08x %08x %08x %08x %08x %08x",
|
|
||||||
223, i, ThS(gsamplePos[i]).c_str(), ThS(gsampleEnd[i]).c_str(), ThS(gloopPos[i]).c_str(),
|
|
||||||
ThS(gvolume_left[i]).c_str(), ThS(gvolume_right[i]).c_str(),
|
|
||||||
gsrc_type[i], gaudioFormat[i], gcoef[i],
|
|
||||||
gupdates1[i], gupdates2[i], gupdates3[i], gupdates4[i], gupdates5[i], gupdates_addr[i],
|
|
||||||
gupdates_data[i], gupdates_data1[i], gupdates_data2[i], gupdates_data3[i], gupdates_data4[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else // base 16 (hexadecimal)
|
|
||||||
{
|
|
||||||
if(Wii) // Wii
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %08x/%08x %08x | %04x %04x | %u %u %u | %u %u %u %08x %08x %08x %08x %08x %08x",
|
|
||||||
223, i, gsamplePos[i], gsampleEnd[i], gloopPos[i],
|
|
||||||
gvolume_left[i], gvolume_right[i],
|
|
||||||
gsrc_type[i], gaudioFormat[i], gcoef[i],
|
|
||||||
gupdates1[i], gupdates2[i], gupdates3[i], gupdates_addr[i],
|
|
||||||
gupdates_data[i], gupdates_data1[i], gupdates_data2[i], gupdates_data3[i], gupdates_data4[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else // GC
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %08x/%08x %08x | %04x %04x | %u %u %u | %u %u %u %u %u %08x %08x %08x %08x %08x %08x",
|
|
||||||
223, i, gsamplePos[i], gsampleEnd[i], gloopPos[i],
|
|
||||||
gvolume_left[i], gvolume_right[i],
|
|
||||||
gsrc_type[i], gaudioFormat[i], gcoef[i],
|
|
||||||
gupdates1[i], gupdates2[i], gupdates3[i], gupdates4[i], gupdates5[i], gupdates_addr[i],
|
|
||||||
gupdates_data[i], gupdates_data1[i], gupdates_data2[i], gupdates_data3[i], gupdates_data4[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a == 2)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase)
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %10s/%10s %10s | %05i %05i | %i %i | %10s %10s",
|
|
||||||
223, i, ThS(gsamplePos[i]).c_str(), ThS(gsampleEnd[i]).c_str(), ThS(gloopPos[i]).c_str(),
|
|
||||||
gvolume_left[i], gvolume_right[i],
|
|
||||||
glooping[i], gis_stream[i],
|
|
||||||
ThS(gsampleEnd[i] - gloopPos[i], false).c_str(), ThS(gsampleEnd[i] - gsamplePos[i], false).c_str()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %08x/%08x %08x | %04x %04x | %i %i | %08x %08x",
|
|
||||||
223, i, gsamplePos[i], gsampleEnd[i], gloopPos[i],
|
|
||||||
gvolume_left[i], gvolume_right[i],
|
|
||||||
glooping[i], gis_stream[i],
|
|
||||||
gsampleEnd[i] - gloopPos[i], gsampleEnd[i] - gsamplePos[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
PRESET 3
|
|
||||||
" Nr voll volr dl dr curv delt mixc r | v1 v2 v3 v4 v5 v6 v7 | d1 d2 d3 d4 d5 d6 d7\n";
|
|
||||||
"---------------|00 00000 00000 00000 00000 00000 00000 00000 0 | 00000 00000 00000 00000 00000 00000 00000 | 00000 00000 00000 00000 00000 00000 00000
|
|
||||||
*/
|
|
||||||
else if(a == 3)
|
|
||||||
{
|
|
||||||
if(m_frame->bShowBase)
|
|
||||||
{
|
|
||||||
if(Wii) // Wii
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %05i %05i %05i %05i %05i %05i %05i %i | %05i %05i %05i %05i %05i %05i %05i | %05i %05i %05i %05i %05i %05i %05i",
|
|
||||||
223, i,
|
|
||||||
gvolume_left[i], gvolume_right[i], gmix_unknown[i], gmix_unknown2[i], gcur_volume[i], gcur_volume_delta[i],
|
|
||||||
gmixer_control_wii[i], (gmixer_control_wii[i] & MIXCONTROL_RAMPING),
|
|
||||||
gmixer_vol1[i], gmixer_vol2[i], gmixer_vol3[i], gmixer_vol4[i], gmixer_vol5[i],
|
|
||||||
gmixer_vol6[i], gmixer_vol7[i],
|
|
||||||
gmixer_d1[i], gmixer_d2[i], gmixer_d3[i], gmixer_d4[i], gmixer_d5[i],
|
|
||||||
gmixer_d6[i], gmixer_d7[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else // GC
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %05i %05i %05i %05i %05i %05i %08i %i | %05i %05i %05i %05i %05i %05i %05i | %05i %05i %05i %05i %05i %05i %05i",
|
|
||||||
223, i,
|
|
||||||
gvolume_left[i], gvolume_right[i], gmix_unknown[i], gmix_unknown2[i], gcur_volume[i], gcur_volume_delta[i],
|
|
||||||
gmixer_control[i], (gmixer_control[i] & MIXCONTROL_RAMPING),
|
|
||||||
gmixer_vol1[i], gmixer_vol2[i], gmixer_vol3[i], gmixer_vol4[i], gmixer_vol5[i],
|
|
||||||
gmixer_vol6[i], gmixer_vol7[i],
|
|
||||||
gmixer_d1[i], gmixer_d2[i], gmixer_d3[i], gmixer_d4[i], gmixer_d5[i],
|
|
||||||
gmixer_d6[i], gmixer_d7[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(Wii)
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %04x %04x %04x %04x %04x %04x %08x %i | %04x %04x %04x %04x %04x %04x %04x | %04x %04x %04x %04x %04x %04x %04x",
|
|
||||||
223, i,
|
|
||||||
gvolume_left[i], gvolume_right[i], gmix_unknown[i], gmix_unknown2[i], gcur_volume[i], gcur_volume_delta[i],
|
|
||||||
gmixer_control_wii[i], (gmixer_control_wii[i] & MIXCONTROL_RAMPING),
|
|
||||||
gmixer_vol1[i], gmixer_vol2[i], gmixer_vol3[i], gmixer_vol4[i], gmixer_vol5[i],
|
|
||||||
gmixer_vol6[i], gmixer_vol7[i],
|
|
||||||
gmixer_d1[i], gmixer_d2[i], gmixer_d3[i], gmixer_d4[i], gmixer_d5[i],
|
|
||||||
gmixer_d6[i], gmixer_d7[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(buf,"%c%02i %04x %04x %04x %04x %04x %04x %04x %i | %04x %04x %04x %04x %04x %04x %04x | %04x %04x %04x %04x %04x %04x %04x",
|
|
||||||
223, i,
|
|
||||||
gvolume_left[i], gvolume_right[i], gmix_unknown[i], gmix_unknown2[i], gcur_volume[i], gcur_volume_delta[i],
|
|
||||||
gmixer_control[i], (gmixer_control[i] & MIXCONTROL_RAMPING),
|
|
||||||
gmixer_vol1[i], gmixer_vol2[i], gmixer_vol3[i], gmixer_vol4[i], gmixer_vol5[i],
|
|
||||||
gmixer_vol6[i], gmixer_vol7[i],
|
|
||||||
gmixer_d1[i], gmixer_d2[i], gmixer_d3[i], gmixer_d4[i], gmixer_d5[i],
|
|
||||||
gmixer_d6[i], gmixer_d7[i]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sbuf = buf;
|
|
||||||
return sbuf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Collect parameters from Wii or GC
|
|
||||||
// --------------
|
|
||||||
/*
|
|
||||||
std::string ShowAllPB(int a, int i)
|
|
||||||
{
|
|
||||||
if(a == 0)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(a == 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(a == 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(a == 1)
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Collect parameters from Wii or GC
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
//inline void MixAddVoice(ParamBlockType &pb
|
|
||||||
//void CollectPB(bool Wii, int i, AXParamBlockWii * PBw, ParamBlockType &pb)
|
|
||||||
template<class ParamBlockType> void CollectPB(bool Wii, int i, ParamBlockType &PBs)
|
|
||||||
//void CollectPB(bool Wii, int i, AXParamBlockWii * PBw, AXParamBlock * PBs)
|
|
||||||
{
|
|
||||||
// AXPB base
|
|
||||||
gsrc_type[i] = PBs[i].src_type;
|
|
||||||
gcoef[i] = PBs[i].coef_select;
|
|
||||||
if(Wii) gmixer_control_wii[i] = PBs[i].mixer_control;
|
|
||||||
else gmixer_control[i] = PBs[i].mixer_control;
|
|
||||||
|
|
||||||
//running[i] = PBs[i].running;
|
|
||||||
gis_stream[i] = PBs[i].is_stream;
|
|
||||||
|
|
||||||
// mixer (some differences)
|
|
||||||
gvolume_left[i] = PBs[i].mixer.volume_left;
|
|
||||||
gvolume_right[i] = PBs[i].mixer.volume_right;
|
|
||||||
|
|
||||||
gmix_unknown[i] = PBs[i].mixer.unknown;
|
|
||||||
gmix_unknown2[i] = PBs[i].mixer.unknown2;
|
|
||||||
|
|
||||||
gcur_volume[i] = PBs[i].vol_env.cur_volume;
|
|
||||||
gcur_volume_delta[i] = PBs[i].vol_env.cur_volume_delta;
|
|
||||||
|
|
||||||
gmixer_vol1[i] = PBs[i].mixer.unknown3[0];
|
|
||||||
gmixer_vol2[i] = PBs[i].mixer.unknown3[2];
|
|
||||||
gmixer_vol3[i] = PBs[i].mixer.unknown3[4];
|
|
||||||
gmixer_vol4[i] = PBs[i].mixer.unknown3[6];
|
|
||||||
gmixer_vol5[i] = PBs[i].mixer.unknown3[0];
|
|
||||||
gmixer_vol6[i] = PBs[i].mixer.unknown3[2];
|
|
||||||
gmixer_vol7[i] = PBs[i].mixer.unknown3[4];
|
|
||||||
|
|
||||||
gmixer_d1[i] = PBs[i].mixer.unknown4[1];
|
|
||||||
gmixer_d2[i] = PBs[i].mixer.unknown4[3];
|
|
||||||
gmixer_d3[i] = PBs[i].mixer.unknown4[5];
|
|
||||||
gmixer_d4[i] = PBs[i].mixer.unknown4[7];
|
|
||||||
gmixer_d5[i] = PBs[i].mixer.unknown4[1];
|
|
||||||
gmixer_d6[i] = PBs[i].mixer.unknown4[3];
|
|
||||||
gmixer_d7[i] = PBs[i].mixer.unknown4[5];
|
|
||||||
|
|
||||||
// PBAudioAddr audio_addr
|
|
||||||
glooping[i] = PBs[i].audio_addr.looping;
|
|
||||||
gaudioFormat[i] = PBs[i].audio_addr.sample_format;
|
|
||||||
gloopPos[i] = (PBs[i].audio_addr.loop_addr_hi << 16) | PBs[i].audio_addr.loop_addr_lo;
|
|
||||||
gsampleEnd[i] = (PBs[i].audio_addr.end_addr_hi << 16) | PBs[i].audio_addr.end_addr_lo;
|
|
||||||
gsamplePos[i] = (PBs[i].audio_addr.cur_addr_hi << 16) | PBs[i].audio_addr.cur_addr_lo;
|
|
||||||
|
|
||||||
if(gloopPos[i] > 0x20000000) gloopPos[i] -= 0x20000000;
|
|
||||||
if(gsampleEnd[i] > 0x20000000) gsampleEnd[i] -= 0x20000000;
|
|
||||||
if(gsamplePos[i] > 0x20000000) { gsamplePos[i] -= 0x20000000;
|
|
||||||
mem[i] = 2;} else { mem[i] = 1; }
|
|
||||||
|
|
||||||
// PBADPCMLoopInfo adpcm_loop_info (same in GC and Wii)
|
|
||||||
gadloop1[i] = PBs[i].adpcm.pred_scale;
|
|
||||||
gadloop2[i] = PBs[i].adpcm.yn1;
|
|
||||||
gadloop3[i] = PBs[i].adpcm.yn2;
|
|
||||||
|
|
||||||
gloop1[i] = PBs[i].adpcm_loop_info.pred_scale;
|
|
||||||
gloop2[i] = PBs[i].adpcm_loop_info.yn1;
|
|
||||||
gloop3[i] = PBs[i].adpcm_loop_info.yn2;
|
|
||||||
|
|
||||||
// updates (differences)
|
|
||||||
gupdates1[i] = PBs[i].updates.num_updates[0];
|
|
||||||
gupdates2[i] = PBs[i].updates.num_updates[1];
|
|
||||||
gupdates3[i] = PBs[i].updates.num_updates[2];
|
|
||||||
gupdates4[i] = PBs[i].updates.num_updates[3];
|
|
||||||
gupdates5[i] = PBs[i].updates.num_updates[4];
|
|
||||||
|
|
||||||
gupdates_addr[i] = (PBs[i].updates.data_hi << 16) | PBs[i].updates.data_lo;
|
|
||||||
if(gupdates_addr[i] > 0x80000000 && gupdates_addr[i] < 0x93ffffff)
|
|
||||||
{
|
|
||||||
gupdates_data[i] = Memory_Read_U32(gupdates_addr[i]);
|
|
||||||
gupdates_data1[i] = Memory_Read_U32(gupdates_addr[i] + 4);
|
|
||||||
gupdates_data2[i] = Memory_Read_U32(gupdates_addr[i] + 8);
|
|
||||||
gupdates_data3[i] = Memory_Read_U32(gupdates_addr[i] + 12);
|
|
||||||
gupdates_data3[i] = Memory_Read_U32(gupdates_addr[i] + 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
// PBSampleRateConverter src
|
|
||||||
|
|
||||||
gratio[i] = (u32)(((PBs[i].src.ratio_hi << 16) + PBs[i].src.ratio_lo) * ratioFactor);
|
|
||||||
gratiohi[i] = PBs[i].src.ratio_hi;
|
|
||||||
gratiolo[i] = PBs[i].src.ratio_lo;
|
|
||||||
gfrac[i] = PBs[i].src.cur_addr_frac;
|
|
||||||
}
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Prepare the condition that makes us show a certain block
|
|
||||||
// --------------
|
|
||||||
template<class ParamBlockType>
|
|
||||||
bool PrepareConditions(bool Wii, int i, ParamBlockType &PBs)
|
|
||||||
{
|
|
||||||
bool Conditions;
|
|
||||||
|
|
||||||
if (m_frame->gOnlyLooping) // show only looping blocks
|
|
||||||
{
|
|
||||||
Conditions = PBs[i].audio_addr.looping ? true : false;
|
|
||||||
}
|
|
||||||
else if (m_frame->gShowAll) // show all blocks
|
|
||||||
{
|
|
||||||
Conditions = true;
|
|
||||||
}
|
|
||||||
else if (m_frame->giShowAll > -1) // show all blocks
|
|
||||||
{
|
|
||||||
if (m_frame->giShowAll == 0)
|
|
||||||
Conditions = (i < 31);
|
|
||||||
else if(m_frame->giShowAll == 1)
|
|
||||||
Conditions = (i > 30 && i < 61);
|
|
||||||
else if(m_frame->giShowAll == 2)
|
|
||||||
Conditions = (i > 60 && i < 91);
|
|
||||||
else if(m_frame->giShowAll == 3)
|
|
||||||
Conditions = (i > 90 && i < 121);
|
|
||||||
}
|
|
||||||
else // show only the ones that have recently been running
|
|
||||||
{
|
|
||||||
Conditions = (numberRunning.at(i) > 0 || PBs[i].audio_addr.looping);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Conditions;
|
|
||||||
}
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<class ParamBlockType>
|
|
||||||
void Logging_(short* _pBuffer, int _iSize, int a, bool Wii, ParamBlockType &PBs,
|
|
||||||
int numberOfPBs, u32 m_addressPBs)
|
|
||||||
//void Logging__(short* _pBuffer, int _iSize, int a, bool Wii)
|
|
||||||
{
|
|
||||||
bool Conditions; // Select blocks to show
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Update parameter values
|
|
||||||
// --------------
|
|
||||||
// We could chose to update these only if a block is currently running. Later I'll add options
|
|
||||||
// to see both the current and the latest active value.
|
|
||||||
int irun = 0;
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
{
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
// Write a line for the text log if nothing is playing
|
|
||||||
// --------------
|
|
||||||
if (PBs[i].running)
|
|
||||||
{
|
|
||||||
irun++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i == numberOfPBs - 1 && irun == 0)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < nFiles; j++)
|
|
||||||
{
|
|
||||||
std::string sfbuff;
|
|
||||||
sfbuff = "-----\n";
|
|
||||||
aprintf(j, (char *)sfbuff.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------
|
|
||||||
// Now go through only a subset of the blocks depending on Conditions
|
|
||||||
// ------------------
|
|
||||||
/* Prepare conditions. We may for example get Conditions = true for blocks
|
|
||||||
that currently have numberRunning.at(i) > 0 */
|
|
||||||
Conditions = PrepareConditions(Wii, i, PBs);
|
|
||||||
if (Conditions)
|
|
||||||
{
|
|
||||||
// Collect parameters
|
|
||||||
CollectPB(Wii, i, PBs);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Write to file
|
|
||||||
// --------------
|
|
||||||
for (int ii = 0; ii < nFiles; ii++)
|
|
||||||
{
|
|
||||||
std::string sfbuff;
|
|
||||||
if(a == 0) sfbuff = "***"; // note if it's before or after an update (*** = before)
|
|
||||||
else sfbuff = " ";
|
|
||||||
|
|
||||||
// write running
|
|
||||||
char cbuf[10];
|
|
||||||
sprintf(cbuf, "%i", PBs[i].running);
|
|
||||||
sfbuff = sfbuff + cbuf;
|
|
||||||
|
|
||||||
sfbuff = sfbuff + writeMessage(ii, i, Wii);
|
|
||||||
|
|
||||||
// write _iSize
|
|
||||||
strcpy(cbuf, ""); sprintf(cbuf, "%i", _iSize);
|
|
||||||
sfbuff = sfbuff + " | _iSize: " + cbuf + "\n";
|
|
||||||
|
|
||||||
aprintf(ii, (char *)sfbuff.c_str());
|
|
||||||
}
|
|
||||||
// --------------
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Control how often the screen is updated, and then update the screen
|
|
||||||
// --------------
|
|
||||||
if(a == 0) count1++; // a == 0 when Logging is called before the blocks are updated
|
|
||||||
if (m_frame->gUpdFreq > 0 && count1 > (200/m_frame->gUpdFreq))
|
|
||||||
{
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Save the displayed running history for each block. Vector1 is a vector1[NUMBER_OF_PBS]
|
|
||||||
[100] vector. */
|
|
||||||
// --------------
|
|
||||||
/*
|
|
||||||
Move all items back like this:
|
|
||||||
1 to 0
|
|
||||||
2 1
|
|
||||||
3 ...
|
|
||||||
5 to 4
|
|
||||||
*/
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
{
|
|
||||||
for (int j = 1; j < vectorLength; j++)
|
|
||||||
{
|
|
||||||
vector1.at(i).at(j-1) = vector1.at(i).at(j);
|
|
||||||
}
|
|
||||||
// save the latest value
|
|
||||||
vector1.at(i).at(vectorLength-1) = PBs[i].running ? true : false;
|
|
||||||
}
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Have a separate set for which ones to show. Currently show blocks that have been
|
|
||||||
running at least once the last 100 updates.
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
Move all items back like this:
|
|
||||||
1 to 0
|
|
||||||
2 1
|
|
||||||
3 ...
|
|
||||||
*/
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
{
|
|
||||||
for (int j = 1; j < vectorLength2; j++)
|
|
||||||
{
|
|
||||||
vector2.at(i).at(j-1) = vector2.at(i).at(j);
|
|
||||||
}
|
|
||||||
// save the latest value
|
|
||||||
vector2.at(i).at(vectorLength2-1) = PBs[i].running ? true : false;
|
|
||||||
}
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Count how many we have running now in a certain block
|
|
||||||
// --------------
|
|
||||||
int jj = 0;
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
{
|
|
||||||
jj = 0;
|
|
||||||
for (int j = 0; j < vectorLength2-1; j++) // the hundred last updates
|
|
||||||
{
|
|
||||||
if (vector2.at(i).at(j)) // if it was on then
|
|
||||||
{
|
|
||||||
jj++;
|
|
||||||
}
|
|
||||||
numberRunning.at(i) = jj;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write header
|
|
||||||
// --------------
|
|
||||||
char buffer [1000] = "";
|
|
||||||
std::string sbuff;
|
|
||||||
sbuff = writeTitle(m_frame->gPreset, Wii);
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Now go through all blocks
|
|
||||||
// --------------
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------
|
|
||||||
// Now go through only a subset of the blocks depending on Conditions
|
|
||||||
// ------------------
|
|
||||||
// Prepare conditions
|
|
||||||
Conditions = PrepareConditions(Wii, i, PBs);
|
|
||||||
if (Conditions)
|
|
||||||
{
|
|
||||||
// --------------------------------------
|
|
||||||
// Save playback history text string for the console and GUI debugger
|
|
||||||
// ------------------
|
|
||||||
if(m_frame)
|
|
||||||
{
|
|
||||||
std::string guipr; // gui progress
|
|
||||||
|
|
||||||
for (int j = 0; j < vectorLengthGUI; j++)
|
|
||||||
{
|
|
||||||
if(vector1.at(i).at(j) == false)
|
|
||||||
{
|
|
||||||
guipr = guipr + "0";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
guipr = guipr + "1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 run = atoi( guipr.c_str());
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[1][i] = run;
|
|
||||||
guipr.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
// and for the console debugger
|
|
||||||
for (int j = 0; j < vectorLength; j++)
|
|
||||||
{
|
|
||||||
if(vector1.at(i).at(j) == false)
|
|
||||||
{
|
|
||||||
sbuff = sbuff + " ";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(buffer, "%c", 177);
|
|
||||||
sbuff = sbuff + buffer; strcpy(buffer, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
|
|
||||||
// Hopefully this is false if we don't have a debugging window and so it doesn't cause a crash
|
|
||||||
if(m_frame)
|
|
||||||
{
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[2][i] = gsamplePos[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[3][i] = gsampleEnd[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[4][i] = gloopPos[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[5][i] = gvolume_left[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[6][i] = gvolume_right[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[7][i] = glooping[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[8][i] = gloop1[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[9][i] = gloop2[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[10][i] = gloop3[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[11][i] = gis_stream[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[12][i] = gaudioFormat[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[13][i] = gsrc_type[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[14][i] = gcoef[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[15][i] = gfrac[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[16][i] = gratio[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[17][i] = gratiohi[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[18][i] = gratiolo[i];
|
|
||||||
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[19][i] = gupdates1[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[20][i] = gupdates2[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[21][i] = gupdates3[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[22][i] = gupdates4[i];
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[23][i] = gupdates5[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
// add new line
|
|
||||||
sbuff = sbuff + writeMessage(m_frame->gPreset, i, Wii); strcpy(buffer, "");
|
|
||||||
sbuff = sbuff + "\n";
|
|
||||||
|
|
||||||
} // end of if(Conditions)
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
} // end of for (int i = 0; i < numberOfPBs; i++)
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write global values
|
|
||||||
// ---------------
|
|
||||||
int nOfBlocks;
|
|
||||||
int span = m_frame->gLastBlock - m_addressPBs;
|
|
||||||
if(Wii)
|
|
||||||
nOfBlocks = (m_frame->gLastBlock-m_addressPBs) / 256;
|
|
||||||
else
|
|
||||||
nOfBlocks = (m_frame->gLastBlock-m_addressPBs) / 192;
|
|
||||||
sprintf(buffer, "\nThe parameter blocks span from %08x to %08x (%s bytes) impl. %i blocks | numberOfPBs %i | _iSize %i\n",
|
|
||||||
m_addressPBs, m_frame->gLastBlock, ThS(span).c_str(), nOfBlocks, numberOfPBs, _iSize);
|
|
||||||
sbuff = sbuff + buffer; strcpy(buffer, "");
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write settings
|
|
||||||
// ---------------
|
|
||||||
sprintf(buffer, "\nSettings: SSBM fix %i | SSBM rem1 %i | SSBM rem2 %i\nSequenced %i | Volume %i | Reset %i | Only looping %i | Save file %i\n",
|
|
||||||
gSSBM, gSSBMremedy1, gSSBMremedy2, gSequenced,
|
|
||||||
gVolume, gReset, m_frame->gOnlyLooping, m_frame->gSaveFile);
|
|
||||||
sbuff = sbuff + buffer; strcpy(buffer, "");
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Show update frequency
|
|
||||||
// ---------------
|
|
||||||
sbuff = sbuff + "\n";
|
|
||||||
if(!iupdonce)
|
|
||||||
{
|
|
||||||
viupd.at(0) = 1;
|
|
||||||
viupd.at(1) = 1;
|
|
||||||
viupd.at(2) = 1;
|
|
||||||
iupdonce = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (u32 i = 0; i < viupd.size(); i++) // 0, 1,..., 9
|
|
||||||
{
|
|
||||||
if (i < viupd.size()-1)
|
|
||||||
{
|
|
||||||
viupd.at(viupd.size()-i-1) = viupd.at(viupd.size()-i-2); // move all forward
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
viupd.at(0) = viupd.at(viupd.size()-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Correction
|
|
||||||
if (viupd.at(viupd.size()-3) == 1 && viupd.at(viupd.size()-2) == 1 && viupd.at(viupd.size()-1) == 1)
|
|
||||||
{
|
|
||||||
viupd.at(0) = 0;
|
|
||||||
}
|
|
||||||
if(viupd.at(0) == 0 && viupd.at(1) == 1 && viupd.at(2) == 1 && viupd.at(3) == 0)
|
|
||||||
{
|
|
||||||
viupd.at(0) = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (u32 i = 0; i < viupd.size(); i++)
|
|
||||||
{
|
|
||||||
if(viupd.at(i) == 0)
|
|
||||||
sbuff = sbuff + " ";
|
|
||||||
else
|
|
||||||
sbuff = sbuff + ".";
|
|
||||||
}
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Print
|
|
||||||
// ----------------
|
|
||||||
ClearScreen();
|
|
||||||
wprintf("%s", sbuff.c_str());
|
|
||||||
sbuff.clear(); strcpy(buffer, "");
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// New values are written so update - DISABLED - It flickered a lot, even worse than a
|
|
||||||
// console window. So for now only the console windows is updated.
|
|
||||||
/*
|
|
||||||
if(m_frame)
|
|
||||||
{
|
|
||||||
m_frame->NotifyUpdate();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
count2=0;
|
|
||||||
count1=0;
|
|
||||||
|
|
||||||
} // end of if (j>20)
|
|
||||||
|
|
||||||
} // end of function
|
|
||||||
|
|
||||||
|
|
||||||
// I placed this in CUCode_AX so it can share member values with that class
|
|
||||||
void CUCode_AX::Logging(short* _pBuffer, int _iSize, int a, bool Wii)
|
|
||||||
{
|
|
||||||
/* Doing all this may have a noticable CPU effect, so we can disable it completely
|
|
||||||
this way. But remember that "Save to file" will not write anything then either. */
|
|
||||||
if (m_frame->gUpdFreq > 0)
|
|
||||||
{
|
|
||||||
int version; // AX version
|
|
||||||
int numberOfPBs;
|
|
||||||
|
|
||||||
// Declare structures
|
|
||||||
AXParamBlock PBs[NUMBER_OF_PBS];
|
|
||||||
AXParamBlockWii PBw[NUMBER_OF_PBS];
|
|
||||||
AXParamBlockWii_ PBw_[NUMBER_OF_PBS];
|
|
||||||
if(_CRC == 0xfa450138) version = 0; else version = 1;
|
|
||||||
|
|
||||||
// Read out structs and number of PBs that have data
|
|
||||||
if(Wii)
|
|
||||||
{
|
|
||||||
if(version == 0)
|
|
||||||
{
|
|
||||||
numberOfPBs = ReadOutPBsWii(m_addressPBs, PBw, NUMBER_OF_PBS);
|
|
||||||
Logging_(_pBuffer, _iSize, a, Wii, PBw, numberOfPBs, m_addressPBs);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
numberOfPBs = ReadOutPBsWii(m_addressPBs, PBw_, NUMBER_OF_PBS);
|
|
||||||
Logging_(_pBuffer, _iSize, a, Wii, PBw_, numberOfPBs, m_addressPBs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
numberOfPBs = ReadOutPBs(m_addressPBs, PBs, NUMBER_OF_PBS);
|
|
||||||
Logging_(_pBuffer, _iSize, a, Wii, PBs, numberOfPBs, m_addressPBs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,20 +15,29 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
// This queue solution is temporary. I'll implement something more efficient later.
|
|
||||||
|
|
||||||
#include <queue>
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
#include "../Config.h"
|
// Includes
|
||||||
|
// -------------
|
||||||
|
// This queue solution is temporary. I'll implement something more efficient later.
|
||||||
|
#include <queue> // System
|
||||||
|
|
||||||
|
#include "Thread.h" // Common
|
||||||
|
#include "ConsoleWindow.h"
|
||||||
|
|
||||||
|
#include "../Config.h" // Local
|
||||||
#include "../Globals.h"
|
#include "../Globals.h"
|
||||||
#include "../DSPHandler.h"
|
#include "../DSPHandler.h"
|
||||||
#include "../Logging/Console.h"
|
#include "../Debugger/File.h"
|
||||||
#include "Thread.h"
|
|
||||||
#include "Mixer.h"
|
#include "Mixer.h"
|
||||||
#include "FixedSizeQueue.h"
|
#include "FixedSizeQueue.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "../PCHW/DSoundStream.h"
|
#include "../PCHW/DSoundStream.h"
|
||||||
#endif
|
#endif
|
||||||
|
///////////////////////
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
Common::CriticalSection push_sync;
|
Common::CriticalSection push_sync;
|
||||||
|
|
|
@ -17,7 +17,7 @@ files = [
|
||||||
'Globals.cpp',
|
'Globals.cpp',
|
||||||
'PCHW/AOSoundStream.cpp',
|
'PCHW/AOSoundStream.cpp',
|
||||||
'PCHW/Mixer.cpp',
|
'PCHW/Mixer.cpp',
|
||||||
'Logging/Console.cpp',
|
'Debugger/File.cpp',
|
||||||
'UCodes/UCode_AX.cpp',
|
'UCodes/UCode_AX.cpp',
|
||||||
'UCodes/UCode_AXWii.cpp',
|
'UCodes/UCode_AXWii.cpp',
|
||||||
'UCodes/UCode_CARD.cpp',
|
'UCodes/UCode_CARD.cpp',
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#include "FileUtil.h" // for IsDirectory
|
#include "FileUtil.h" // For IsDirectory()
|
||||||
#include "StringUtil.h" // for StringFromFormat
|
#include "StringUtil.h" // For StringFromFormat()
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
#include "../Debugger/Debugger.h"
|
#include "../Debugger/Debugger.h"
|
||||||
#include "../Logging/Console.h" // for aprintf
|
//#include "../Logging/File.h" // For PrintFile()
|
||||||
extern CDebugger* m_frame;
|
extern CDebugger* m_frame;
|
||||||
#endif
|
#endif
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -119,7 +119,7 @@ if(m_frame->ScanMails)
|
||||||
{
|
{
|
||||||
if(saveNext && saveNext < 100) // limit because saveNext is not initialized
|
if(saveNext && saveNext < 100) // limit because saveNext is not initialized
|
||||||
{
|
{
|
||||||
//wprintf("End");
|
//Console::Print("End");
|
||||||
|
|
||||||
// Save the timestamps and comment
|
// Save the timestamps and comment
|
||||||
std::ostringstream ci;
|
std::ostringstream ci;
|
||||||
|
@ -217,7 +217,7 @@ if(m_frame->ScanMails)
|
||||||
// In case the mail didn't match any saved mail, save it
|
// In case the mail didn't match any saved mail, save it
|
||||||
if(addnew == m_frame->sMail.size())
|
if(addnew == m_frame->sMail.size())
|
||||||
{
|
{
|
||||||
//wprintf("%i | %i\n", addnew, m_frame->sMail.size());
|
//Console::Print("%i | %i\n", addnew, m_frame->sMail.size());
|
||||||
u32 resizeTo = m_frame->sMail.size() + 1;
|
u32 resizeTo = m_frame->sMail.size() + 1;
|
||||||
|
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
|
@ -248,7 +248,7 @@ if(m_frame->ScanMails)
|
||||||
// Save as file
|
// Save as file
|
||||||
if(m_frame->StoreMails)
|
if(m_frame->StoreMails)
|
||||||
{
|
{
|
||||||
//wprintf("m_frame->sMail.size(): %i | resizeTo:%i\n", m_frame->sMail.size(), resizeTo);
|
//Console::Print("m_frame->sMail.size(): %i | resizeTo:%i\n", m_frame->sMail.size(), resizeTo);
|
||||||
SaveLogFile(lMail, resizeTo, 0, Wii);
|
SaveLogFile(lMail, resizeTo, 0, Wii);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ void CUCode_AX::MixAdd(short* _pBuffer, int _iSize)
|
||||||
if (on > 0 && off > 0) pDest[7] = 1;
|
if (on > 0 && off > 0) pDest[7] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//aprintf(1, "%08x %04x %04x\n", updaddr, updpar, upddata);
|
//PrintFile(1, "%08x %04x %04x\n", updaddr, updpar, upddata);
|
||||||
// ------------
|
// ------------
|
||||||
|
|
||||||
for (int i = 0; i < numberOfPBs; i++)
|
for (int i = 0; i < numberOfPBs; i++)
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
#include "../Debugger/Debugger.h"
|
#include "../Debugger/Debugger.h"
|
||||||
#include "../Logging/Console.h" // for aprintf
|
//#include "../Logging/File.h" // For PrintFile
|
||||||
extern CDebugger * m_frame;
|
extern CDebugger * m_frame;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ void CUCode_AXWii::MixAdd_(short* _pBuffer, int _iSize, ParamBlockType &PBs)
|
||||||
if (on > 0 && off > 0) pDest[7] = 1;
|
if (on > 0 && off > 0) pDest[7] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//aprintf(1, "%08x %04x %04x\n", updaddr, updpar, upddata);
|
//PrintFile(1, "%08x %04x %04x\n", updaddr, updpar, upddata);
|
||||||
// ------------
|
// ------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,32 +15,42 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "Globals.h"
|
#include "Globals.h" // Local
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
#include "Logging/Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Debugger/File.h" // For file logging
|
||||||
#include "Debugger/Debugger.h" // for the CDebugger class
|
#include "Debugger/Debugger.h" // For the CDebugger class
|
||||||
CDebugger* m_frame;
|
CDebugger* m_frame;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "ConsoleWindow.h" // Common: For the Windows console
|
||||||
#include "ChunkFile.h"
|
#include "ChunkFile.h"
|
||||||
#include "WaveFile.h"
|
#include "WaveFile.h"
|
||||||
|
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "PCHW/DSoundStream.h"
|
#include "PCHW/DSoundStream.h"
|
||||||
#include "ConfigDlg.h"
|
#include "ConfigDlg.h"
|
||||||
#else
|
#else
|
||||||
#include "PCHW/AOSoundStream.h"
|
#include "PCHW/AOSoundStream.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "PCHW/Mixer.h"
|
#include "PCHW/Mixer.h"
|
||||||
|
|
||||||
#include "DSPHandler.h"
|
#include "DSPHandler.h"
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Declarations and definitions
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
DSPInitialize g_dspInitialize;
|
DSPInitialize g_dspInitialize;
|
||||||
u8* g_pMemory;
|
u8* g_pMemory;
|
||||||
extern std::vector<std::string> sMailLog, sMailTime;
|
extern std::vector<std::string> sMailLog, sMailTime;
|
||||||
|
@ -50,6 +60,11 @@ std::string gpName;
|
||||||
static bool log_ai = false;
|
static bool log_ai = false;
|
||||||
static WaveFileWriter g_wave_writer;
|
static WaveFileWriter g_wave_writer;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------------
|
||||||
|
// Mailbox utility
|
||||||
|
// ----------
|
||||||
struct DSPState
|
struct DSPState
|
||||||
{
|
{
|
||||||
u32 CPUMailbox;
|
u32 CPUMailbox;
|
||||||
|
@ -69,14 +84,15 @@ struct DSPState
|
||||||
DSPMailbox_Read[1] = true;
|
DSPMailbox_Read[1] = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
DSPState g_dspState;
|
DSPState g_dspState;
|
||||||
// ====================
|
// -------------------
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// wxWidgets - Some kind of stuff wx needs
|
// wxWidgets: Create the wxApp
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
class wxDLLApp : public wxApp
|
class wxDLLApp : public wxApp
|
||||||
{
|
{
|
||||||
bool OnInit()
|
bool OnInit()
|
||||||
|
@ -87,9 +103,13 @@ class wxDLLApp : public wxApp
|
||||||
|
|
||||||
IMPLEMENT_APP_NO_MAIN(wxDLLApp)
|
IMPLEMENT_APP_NO_MAIN(wxDLLApp)
|
||||||
WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst);
|
WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst);
|
||||||
///////////////////
|
|
||||||
#endif
|
#endif
|
||||||
|
///////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// DllMain
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
HINSTANCE g_hInstance = NULL;
|
HINSTANCE g_hInstance = NULL;
|
||||||
|
|
||||||
|
@ -126,6 +146,7 @@ BOOL APIENTRY DllMain(HINSTANCE hinstDLL, // DLL module handle
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
///////////////////
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -134,9 +155,9 @@ BOOL APIENTRY DllMain(HINSTANCE hinstDLL, // DLL module handle
|
||||||
void OpenConsole()
|
void OpenConsole()
|
||||||
{
|
{
|
||||||
#if defined (_WIN32)
|
#if defined (_WIN32)
|
||||||
startConsoleWin(155, 100, "Sound Debugging"); // give room for 100 rows
|
Console::Open(155, 100, "Sound Debugging"); // give room for 100 rows
|
||||||
wprintf("OpenConsole > Console opened\n");
|
Console::Print("OpenConsole > Console opened\n");
|
||||||
MoveWindow(GetConsoleHwnd(), 0,400, 1280,550, true); // move window, TODO: make this
|
MoveWindow(Console::GetHwnd(), 0,400, 1280,550, true); // move window, TODO: make this
|
||||||
// adjustable from the debugging window
|
// adjustable from the debugging window
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -150,6 +171,10 @@ void CloseConsole()
|
||||||
// ===================
|
// ===================
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Exported fuctions
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Create debugging window - We could use use wxWindow win; new CDebugger(win) like nJoy but I don't
|
// Create debugging window - We could use use wxWindow win; new CDebugger(win) like nJoy but I don't
|
||||||
// know why it would be better. - There's a lockup problem with ShowModal(), but Show() doesn't work
|
// know why it would be better. - There's a lockup problem with ShowModal(), but Show() doesn't work
|
||||||
|
@ -216,11 +241,11 @@ void Initialize(void *init)
|
||||||
gpName = g_dspInitialize.pName(); // save the game name globally
|
gpName = g_dspInitialize.pName(); // save the game name globally
|
||||||
for (u32 i = 0; i < gpName.length(); ++i) // and fix it
|
for (u32 i = 0; i < gpName.length(); ++i) // and fix it
|
||||||
{
|
{
|
||||||
wprintf(L"%c", gpName[i]);
|
Console::Print(L"%c", gpName[i]);
|
||||||
std::cout << gpName[i];
|
std::cout << gpName[i];
|
||||||
if (gpName[i] == ':') gpName[i] = ' ';
|
if (gpName[i] == ':') gpName[i] = ' ';
|
||||||
}
|
}
|
||||||
wprintf(L"\n");
|
Console::Print(L"\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CDSPHandler::CreateInstance();
|
CDSPHandler::CreateInstance();
|
||||||
|
@ -269,7 +294,13 @@ void Shutdown()
|
||||||
void DoState(unsigned char **ptr, int mode) {
|
void DoState(unsigned char **ptr, int mode) {
|
||||||
PointerWrap p(ptr, mode);
|
PointerWrap p(ptr, mode);
|
||||||
}
|
}
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Mailbox fuctions
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
unsigned short DSP_ReadMailboxHigh(bool _CPUMailbox)
|
unsigned short DSP_ReadMailboxHigh(bool _CPUMailbox)
|
||||||
{
|
{
|
||||||
if (_CPUMailbox)
|
if (_CPUMailbox)
|
||||||
|
@ -334,7 +365,12 @@ void DSP_WriteMailboxLow(bool _CPUMailbox, unsigned short _Value)
|
||||||
PanicAlert("CPU can't write %08x to DSP mailbox", _Value);
|
PanicAlert("CPU can't write %08x to DSP mailbox", _Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Other DSP fuctions
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
unsigned short DSP_WriteControlRegister(unsigned short _Value)
|
unsigned short DSP_WriteControlRegister(unsigned short _Value)
|
||||||
{
|
{
|
||||||
return CDSPHandler::GetInstance().WriteControlRegister(_Value);
|
return CDSPHandler::GetInstance().WriteControlRegister(_Value);
|
||||||
|
@ -369,3 +405,4 @@ void DSP_SendAIBuffer(unsigned int address, int sample_rate)
|
||||||
DSound::DSound_UpdateSound();
|
DSound::DSound_UpdateSound();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
///////////////////////////////
|
||||||
|
|
|
@ -710,14 +710,6 @@
|
||||||
RelativePath=".\Src\Logging\AXTask.cpp"
|
RelativePath=".\Src\Logging\AXTask.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Logging\Console.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Logging\Console.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Logging.cpp"
|
RelativePath=".\Src\Logging\Logging.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
@ -1,197 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Includes
|
|
||||||
// --------------
|
|
||||||
#include <string>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Defines and settings
|
|
||||||
// --------------
|
|
||||||
bool g_consoleEnable = true;
|
|
||||||
#define DEBUGG
|
|
||||||
//#define DEBUGG_FILEONLY
|
|
||||||
//#define DEBUGG_NOFILE
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Handles
|
|
||||||
// --------------
|
|
||||||
#ifdef DEBUGG
|
|
||||||
FILE* __fStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
#ifndef DEBUGG_FILEONLY
|
|
||||||
HANDLE __hStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Width and height is the size of console window, if you specify fname,
|
|
||||||
// the output will also be writton to this file. The file pointer is automatically closed
|
|
||||||
// when you close the app
|
|
||||||
// --------------
|
|
||||||
void startConsoleWin(int width, int height, char* fname)
|
|
||||||
{
|
|
||||||
#ifdef DEBUGG
|
|
||||||
|
|
||||||
#ifndef DEBUGG_FILEONLY
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
SetConsoleTitle(fname);
|
|
||||||
__hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
COORD co = {width,height};
|
|
||||||
SetConsoleScreenBufferSize(__hStdOut, co);
|
|
||||||
|
|
||||||
SMALL_RECT coo = {0,0,(width - 1),70}; // top, left, right, bottom
|
|
||||||
SetConsoleWindowInfo(__hStdOut, TRUE, &coo);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifndef DEBUGG_NOFILE
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Write to a file
|
|
||||||
if(fname)
|
|
||||||
{
|
|
||||||
// Edit the log file name
|
|
||||||
std::string FileEnding = ".log";
|
|
||||||
std::string FileName = fname;
|
|
||||||
std::string FullFilename = (FileName + FileEnding);
|
|
||||||
__fStdOut = fopen(FullFilename.c_str(), "w");
|
|
||||||
}
|
|
||||||
// -----------------
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ClearScreen();
|
|
||||||
int wprintf(char *fmt, ...)
|
|
||||||
{
|
|
||||||
#ifdef DEBUGG
|
|
||||||
char s[6000]; // WARNING: mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 3000, fmt, argptr);
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
#ifndef DEBUGG_FILEONLY
|
|
||||||
if(__hStdOut)
|
|
||||||
{
|
|
||||||
WriteConsole(__hStdOut, s, strlen(s), &cCharsWritten, NULL);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef DEBUGG_NOFILE
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
if(__fStdOut)
|
|
||||||
fprintf(__fStdOut, s);
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Clear screen
|
|
||||||
// --------------
|
|
||||||
void ClearScreen()
|
|
||||||
{
|
|
||||||
if(g_consoleEnable)
|
|
||||||
{
|
|
||||||
COORD coordScreen = { 0, 0 };
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
|
||||||
DWORD dwConSize;
|
|
||||||
|
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
//HANDLE hConsole = __hStdOut;
|
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
|
||||||
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
SetConsoleCursorPosition(hConsole, coordScreen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Get console HWND to be able to use MoveWindow()
|
|
||||||
// --------------
|
|
||||||
HWND GetConsoleHwnd(void)
|
|
||||||
{
|
|
||||||
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
|
|
||||||
HWND hwndFound; // This is what is returned to the caller.
|
|
||||||
char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
|
|
||||||
// WindowTitle.
|
|
||||||
char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
|
|
||||||
// WindowTitle.
|
|
||||||
|
|
||||||
// Fetch current window title.
|
|
||||||
|
|
||||||
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
|
|
||||||
|
|
||||||
// Format a "unique" NewWindowTitle.
|
|
||||||
|
|
||||||
wsprintf(pszNewWindowTitle,"%d/%d",
|
|
||||||
GetTickCount(),
|
|
||||||
GetCurrentProcessId());
|
|
||||||
|
|
||||||
// Change current window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Ensure window title has been updated.
|
|
||||||
|
|
||||||
Sleep(40);
|
|
||||||
|
|
||||||
// Look for NewWindowTitle.
|
|
||||||
|
|
||||||
hwndFound = FindWindow(NULL, pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Restore original window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszOldWindowTitle);
|
|
||||||
|
|
||||||
return(hwndFound);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,26 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
|
|
||||||
void startConsoleWin(int width, int height, char* fname);
|
|
||||||
int wprintf(char *fmt, ...);
|
|
||||||
void ClearScreen();
|
|
||||||
HWND GetConsoleHwnd(void);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -30,16 +30,20 @@
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
|
||||||
#include "UCode_AXStructs.h" // they are only in a virtual dir called UCodes AX
|
#include "UCode_AXStructs.h" // they are only in a virtual dir called UCodes AX
|
||||||
#include "Console.h" // For wprintf, ClearScreen
|
#include "ConsoleWindow.h" // For Console::Print, Console::ClearScreen
|
||||||
|
// =====================
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Declarations
|
// =======================================================================================
|
||||||
|
// Declarations and definitions
|
||||||
|
// --------------
|
||||||
|
|
||||||
|
// ----------------------------------
|
||||||
|
// Settings
|
||||||
// --------------
|
// --------------
|
||||||
#define NUMBER_OF_PBS 64 // Todo: move this to a logging class
|
#define NUMBER_OF_PBS 64 // Todo: move this to a logging class
|
||||||
|
|
||||||
|
// -----------------------------------
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Externals
|
// Externals
|
||||||
// --------------
|
// --------------
|
||||||
extern u32 m_addressPBs;
|
extern u32 m_addressPBs;
|
||||||
|
@ -49,9 +53,8 @@ short globalpBuffer;
|
||||||
u32 gLastBlock;
|
u32 gLastBlock;
|
||||||
// --------------
|
// --------------
|
||||||
|
|
||||||
|
// -----------------------------------
|
||||||
// ---------------------------------------------------------------------------------------
|
// Vectors and other things
|
||||||
// Vectors and other stuff
|
|
||||||
// --------------
|
// --------------
|
||||||
std::vector<u32> gloopPos(64);
|
std::vector<u32> gloopPos(64);
|
||||||
std::vector<u32> gsampleEnd(64);
|
std::vector<u32> gsampleEnd(64);
|
||||||
|
@ -91,7 +94,7 @@ std::vector<u32> gsamplePos(64);
|
||||||
std::vector<u16> gupdates5(64);
|
std::vector<u16> gupdates5(64);
|
||||||
std::vector<u32> gupdates_addr(64);
|
std::vector<u32> gupdates_addr(64);
|
||||||
|
|
||||||
// other stuff
|
// Other things
|
||||||
std::vector<u16> Jump(64); // this is 1 or 0
|
std::vector<u16> Jump(64); // this is 1 or 0
|
||||||
std::vector<int> musicLength(64);
|
std::vector<int> musicLength(64);
|
||||||
std::vector< std::vector<int> > vector1(64, std::vector<int>(100,0));
|
std::vector< std::vector<int> > vector1(64, std::vector<int>(100,0));
|
||||||
|
@ -110,7 +113,7 @@ std::vector<u16> vector62(vectorLength);
|
||||||
std::vector<u16> vector63(vectorLength);
|
std::vector<u16> vector63(vectorLength);
|
||||||
|
|
||||||
int ReadOutPBs(AXParamBlock * _pPBs, int _num);
|
int ReadOutPBs(AXParamBlock * _pPBs, int _num);
|
||||||
// ===========
|
// =====================
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
|
@ -359,8 +362,8 @@ void Logging()
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Print
|
// Print
|
||||||
// ---------------
|
// ---------------
|
||||||
ClearScreen();
|
Console::ClearScreen();
|
||||||
wprintf("%s", sbuff.c_str());
|
Console::Print("%s", sbuff.c_str());
|
||||||
sbuff.clear(); strcpy(buffer, "");
|
sbuff.clear(); strcpy(buffer, "");
|
||||||
// ---------------
|
// ---------------
|
||||||
k=0;
|
k=0;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "CommonTypes.h" // Pluginspecs
|
#include "CommonTypes.h" // Pluginspecs
|
||||||
|
|
||||||
#include "UCode_AXStructs.h" // For the AXParamBlock structure
|
#include "UCode_AXStructs.h" // For the AXParamBlock structure
|
||||||
#include "Console.h" // For wprintf, ClearScreen
|
#include "ConsoleWindow.h" // For Console::Print, Console::ClearScreen
|
||||||
|
|
||||||
|
|
||||||
u32 m_addressPBs = 0;
|
u32 m_addressPBs = 0;
|
||||||
|
@ -54,7 +54,7 @@ int ReadOutPBs(AXParamBlock * _pPBs, int _num)
|
||||||
|
|
||||||
// reading and 'halfword' swap
|
// reading and 'halfword' swap
|
||||||
n++;
|
n++;
|
||||||
if (n > 20 && logall) {ClearScreen();}
|
if (n > 20 && logall) {Console::ClearScreen();}
|
||||||
for (int i = 0; i < _num; i++)
|
for (int i = 0; i < _num; i++)
|
||||||
{
|
{
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
@ -68,7 +68,7 @@ int ReadOutPBs(AXParamBlock * _pPBs, int _num)
|
||||||
// Create a shortcut that let us update struct members
|
// Create a shortcut that let us update struct members
|
||||||
short * pDest = (short *) & _pPBs[i];
|
short * pDest = (short *) & _pPBs[i];
|
||||||
|
|
||||||
if (n > 20 && logall) {wprintf("%c%i:", 223, i);} // logging
|
if (n > 20 && logall) {Console::Print("%c%i:", 223, i);} // logging
|
||||||
|
|
||||||
// --------------
|
// --------------
|
||||||
// Here we update the PB. We do it by going through all 192 / 2 = 96 u16 values
|
// Here we update the PB. We do it by going through all 192 / 2 = 96 u16 values
|
||||||
|
@ -80,7 +80,7 @@ int ReadOutPBs(AXParamBlock * _pPBs, int _num)
|
||||||
{
|
{
|
||||||
if (pSrc[p] != 0 && n > 20 && logall)
|
if (pSrc[p] != 0 && n > 20 && logall)
|
||||||
{
|
{
|
||||||
wprintf("%i %04x | ", p, Common::swap16(pSrc[p]));
|
Console::Print("%i %04x | ", p, Common::swap16(pSrc[p]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ int ReadOutPBs(AXParamBlock * _pPBs, int _num)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(n > 20 && logall) {wprintf("\n");} // logging
|
if(n > 20 && logall) {Console::Print("\n");} // logging
|
||||||
// --------------
|
// --------------
|
||||||
// Here we update the block address to the starting point of the next PB
|
// Here we update the block address to the starting point of the next PB
|
||||||
blockAddr = (_pPBs[i].next_pb_hi << 16) | _pPBs[i].next_pb_lo;
|
blockAddr = (_pPBs[i].next_pb_hi << 16) | _pPBs[i].next_pb_lo;
|
||||||
|
|
|
@ -15,12 +15,17 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#include "Common.h"
|
|
||||||
#include "Globals.h"
|
// =======================================================================================
|
||||||
|
// Includes
|
||||||
|
// --------------
|
||||||
|
#include "Common.h" // Common
|
||||||
#include "WaveFile.h"
|
#include "WaveFile.h"
|
||||||
#include "CommonTypes.h"
|
#include "CommonTypes.h"
|
||||||
#include "Mixer.h"
|
#include "Mixer.h"
|
||||||
|
#include "ConsoleWindow.h" // For Console::Open, Console::Print
|
||||||
|
|
||||||
|
#include "Globals.h" // Local
|
||||||
#include "gdsp_interpreter.h"
|
#include "gdsp_interpreter.h"
|
||||||
#include "gdsp_interface.h"
|
#include "gdsp_interface.h"
|
||||||
#include "disassemble.h"
|
#include "disassemble.h"
|
||||||
|
@ -28,7 +33,6 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "DisAsmDlg.h"
|
#include "DisAsmDlg.h"
|
||||||
#include "DSoundStream.h"
|
#include "DSoundStream.h"
|
||||||
#include "Logging/Console.h" // For wprintf, ClearScreen
|
|
||||||
#include "Logging/Logging.h" // For Logging
|
#include "Logging/Logging.h" // For Logging
|
||||||
|
|
||||||
HINSTANCE g_hInstance = NULL;
|
HINSTANCE g_hInstance = NULL;
|
||||||
|
@ -47,10 +51,11 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "ChunkFile.h"
|
#include "ChunkFile.h"
|
||||||
|
// ==============
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Globals
|
// Global declarations and definitions
|
||||||
// --------------
|
// --------------
|
||||||
DSPInitialize g_dspInitialize;
|
DSPInitialize g_dspInitialize;
|
||||||
|
|
||||||
|
@ -68,7 +73,6 @@ bool bCanWork = false;
|
||||||
// Set this if you want to log audio. search for log_ai in this file to see the filename.
|
// Set this if you want to log audio. search for log_ai in this file to see the filename.
|
||||||
static bool log_ai = false;
|
static bool log_ai = false;
|
||||||
WaveFileWriter g_wave_writer;
|
WaveFileWriter g_wave_writer;
|
||||||
|
|
||||||
// ==============
|
// ==============
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,12 +138,12 @@ void DllDebugger(HWND _hParent, bool Show)
|
||||||
MoveWindow(g_Dialog.m_hWnd, 450,0, 780,530, true);
|
MoveWindow(g_Dialog.m_hWnd, 450,0, 780,530, true);
|
||||||
|
|
||||||
// Open the console window
|
// Open the console window
|
||||||
startConsoleWin(155, 100, "Sound Debugging"); // give room for 100 rows
|
Console::Open(155, 100, "Sound Debugging"); // give room for 100 rows
|
||||||
wprintf("DllDebugger > Console opened\n");
|
Console::Print("DllDebugger > Console opened\n");
|
||||||
// TODO: Make this adjustable from the Debugging window
|
// Todo: Make this adjustable from the Debugging window
|
||||||
MoveWindow(GetConsoleHwnd(), 0,400, 1280,500, true);
|
MoveWindow(Console::GetHwnd(), 0,400, 1280,500, true);
|
||||||
#else
|
#else
|
||||||
MessageBox(0, "Can't open debugging window in Release build of this plugin.", "DSP LLE", 0);
|
MessageBox(0, "Can't open debugging window in the Release build of this plugin.", "DSP LLE", 0);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="Plugin_VideoOGL"
|
Name="Plugin_VideoOGL"
|
||||||
ProjectGUID="{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}"
|
ProjectGUID="{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}"
|
||||||
RootNamespace="Plugin_VideoOGL"
|
RootNamespace="Plugin_VideoOGL"
|
||||||
|
@ -865,19 +865,11 @@
|
||||||
Name="Logging"
|
Name="Logging"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Console.cpp"
|
RelativePath=".\Src\Debugger\Logging.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Logging\Console.h"
|
RelativePath=".\Src\Debugger\Logging.h"
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Logging\Logging.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Src\Logging\Logging.h"
|
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
|
|
|
@ -15,24 +15,34 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#include "../Globals.h"
|
|
||||||
|
|
||||||
#include "IniFile.h" // Common files
|
// =======================================================================================
|
||||||
|
// Includes
|
||||||
|
// ---------------
|
||||||
|
#include "../Globals.h" // The precompiled header
|
||||||
|
|
||||||
|
#include "IniFile.h" // Common
|
||||||
|
#include "ConsoleWindow.h" // Move console window
|
||||||
|
|
||||||
#include "../Config.h" // Config settings
|
#include "../Config.h" // Config settings
|
||||||
|
|
||||||
#include "PBView.h" // Debugger files
|
#include "PBView.h" // Debugger files
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "../Logging/Console.h" // open and close console
|
#include "Logging.h" // Open and close console
|
||||||
|
// ========================
|
||||||
// externals
|
|
||||||
extern int gSaveFile; // make this an int to allow multiple save file options
|
|
||||||
extern int gPreset;
|
|
||||||
int A, B;
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Declare events
|
// Declarations and definitions
|
||||||
|
// ---------------
|
||||||
|
extern int gPreset;
|
||||||
|
int A, B;
|
||||||
|
// ========================
|
||||||
|
|
||||||
|
|
||||||
|
// =======================================================================================
|
||||||
|
// Event table and class
|
||||||
|
// ---------------
|
||||||
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
||||||
EVT_SHOW(CDebugger::OnShow)
|
EVT_SHOW(CDebugger::OnShow)
|
||||||
EVT_CLOSE(CDebugger::OnClose)
|
EVT_CLOSE(CDebugger::OnClose)
|
||||||
|
@ -48,7 +58,6 @@ BEGIN_EVENT_TABLE(CDebugger,wxDialog)
|
||||||
EVT_BUTTON(ID_BP,CDebugger::Bp)
|
EVT_BUTTON(ID_BP,CDebugger::Bp)
|
||||||
EVT_BUTTON(ID_BM,CDebugger::Bm)
|
EVT_BUTTON(ID_BM,CDebugger::Bm)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
// =======================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
CDebugger::CDebugger(wxWindow *parent, wxWindowID id, const wxString &title,
|
CDebugger::CDebugger(wxWindow *parent, wxWindowID id, const wxString &title,
|
||||||
|
@ -72,7 +81,61 @@ CDebugger::~CDebugger()
|
||||||
this->Save(file);
|
this->Save(file);
|
||||||
file.Save(DEBUGGER_CONFIG_FILE);
|
file.Save(DEBUGGER_CONFIG_FILE);
|
||||||
}
|
}
|
||||||
|
// =========================
|
||||||
|
|
||||||
|
|
||||||
|
// ==========================================================================
|
||||||
|
// System functions
|
||||||
|
// --------------
|
||||||
|
void CDebugger::OnShow(wxShowEvent& /*event*/)
|
||||||
|
{
|
||||||
|
// bring the console back to
|
||||||
|
if(m_Check[2]->IsChecked())
|
||||||
|
{
|
||||||
|
OpenConsole();
|
||||||
|
#ifdef _WIN32
|
||||||
|
MoveWindow(Console::GetHwnd(), 0,400, 1280,500, true); // Move window TODO: make this
|
||||||
|
// adjustable from the debugging window
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDebugger::OnClose(wxCloseEvent& /*event*/)
|
||||||
|
{
|
||||||
|
// save the window position when we hide the window to
|
||||||
|
IniFile file;
|
||||||
|
file.Load(DEBUGGER_CONFIG_FILE);
|
||||||
|
this->Save(file);
|
||||||
|
file.Save(DEBUGGER_CONFIG_FILE);
|
||||||
|
|
||||||
|
EndModal(0); // it seems like this works for Show() to, not just ShowModal();
|
||||||
|
CloseConsole(); // The console goes with the wx window
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CDebugger::DoHide()
|
||||||
|
{
|
||||||
|
Hide();
|
||||||
|
CloseConsole(); // The console goes with the wx window
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDebugger::DoShow()
|
||||||
|
{
|
||||||
|
Show();
|
||||||
|
DoShowHideConsole(); // The console goes with the wx window
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CDebugger::OnUpdate(wxCommandEvent& /*event*/)
|
||||||
|
{
|
||||||
|
this->NotifyUpdate();
|
||||||
|
}
|
||||||
|
// ===============
|
||||||
|
|
||||||
|
|
||||||
|
// ==========================================================================
|
||||||
|
// Save and load settings
|
||||||
|
// --------------
|
||||||
void CDebugger::Save(IniFile& _IniFile) const
|
void CDebugger::Save(IniFile& _IniFile) const
|
||||||
{
|
{
|
||||||
// TODO1: make this work when we close the entire program to, currently on total close we get
|
// TODO1: make this work when we close the entire program to, currently on total close we get
|
||||||
|
@ -87,7 +150,8 @@ void CDebugger::Save(IniFile& _IniFile) const
|
||||||
_IniFile.Set("VideoWindow", "w", GetSize().GetWidth());
|
_IniFile.Set("VideoWindow", "w", GetSize().GetWidth());
|
||||||
_IniFile.Set("VideoWindow", "h", GetSize().GetHeight());
|
_IniFile.Set("VideoWindow", "h", GetSize().GetHeight());
|
||||||
}
|
}
|
||||||
_IniFile.Set("VideoWindow", "Console", m_Check[2]->IsChecked()); // save settings
|
_IniFile.Set("VideoWindow", "Console", m_Check[2]->IsChecked()); // Save settings
|
||||||
|
_IniFile.Set("VideoWindow", "WriteToFile", m_Check[0]->IsChecked());
|
||||||
_IniFile.Set("VideoWindow", "UpdateFrequency", m_RadioBox[1]->GetSelection());
|
_IniFile.Set("VideoWindow", "UpdateFrequency", m_RadioBox[1]->GetSelection());
|
||||||
_IniFile.Set("VideoWindow", "LogLevel", g_Config.iLog);
|
_IniFile.Set("VideoWindow", "LogLevel", g_Config.iLog);
|
||||||
}
|
}
|
||||||
|
@ -102,12 +166,15 @@ void CDebugger::Load(IniFile& _IniFile)
|
||||||
_IniFile.Get("VideoWindow", "h", &h, GetSize().GetHeight());
|
_IniFile.Get("VideoWindow", "h", &h, GetSize().GetHeight());
|
||||||
SetSize(x, y, w, h);
|
SetSize(x, y, w, h);
|
||||||
|
|
||||||
// saved settings
|
// Saved settings
|
||||||
bool Console;
|
bool Console;
|
||||||
_IniFile.Get("VideoWindow", "Console", &Console, m_Check[2]->IsChecked());
|
_IniFile.Get("VideoWindow", "Console", &Console, m_Check[2]->IsChecked());
|
||||||
m_Check[2]->SetValue(Console);
|
m_Check[2]->SetValue(Console);
|
||||||
DoShowHideConsole();
|
DoShowHideConsole();
|
||||||
|
|
||||||
|
_IniFile.Get("VideoWindow", "WriteToFile", &LocalLogFile, m_Check[0]->IsChecked());
|
||||||
|
m_Check[0]->SetValue(LocalLogFile);
|
||||||
|
|
||||||
_IniFile.Get("VideoWindow", "UpdateFrequency", &gUpdFreq, m_RadioBox[1]->GetSelection());
|
_IniFile.Get("VideoWindow", "UpdateFrequency", &gUpdFreq, m_RadioBox[1]->GetSelection());
|
||||||
m_RadioBox[1]->SetSelection(gUpdFreq);
|
m_RadioBox[1]->SetSelection(gUpdFreq);
|
||||||
DoChangeFrequency();
|
DoChangeFrequency();
|
||||||
|
@ -115,6 +182,8 @@ void CDebugger::Load(IniFile& _IniFile)
|
||||||
_IniFile.Get("VideoWindow", "LogLevel", &g_Config.iLog, 0);
|
_IniFile.Get("VideoWindow", "LogLevel", &g_Config.iLog, 0);
|
||||||
m_settings->Check(g_Config.iLog - 1, true);
|
m_settings->Check(g_Config.iLog - 1, true);
|
||||||
}
|
}
|
||||||
|
// ===============
|
||||||
|
|
||||||
|
|
||||||
void CDebugger::CreateGUIControls()
|
void CDebugger::CreateGUIControls()
|
||||||
{
|
{
|
||||||
|
@ -183,6 +252,9 @@ void CDebugger::CreateGUIControls()
|
||||||
// checkboxes
|
// checkboxes
|
||||||
m_Check[0] = new wxCheckBox(m_PageMain, ID_SAVETOFILE, wxT("Save to file"),
|
m_Check[0] = new wxCheckBox(m_PageMain, ID_SAVETOFILE, wxT("Save to file"),
|
||||||
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
//m_Check[0]->SetToolTip(wxT("This will write the console output to" FULL_LOGS_DIR "oglgfx.txt"));
|
||||||
|
m_Check[0]->SetToolTip(wxT("This will write the console output to" FULL_LOGS_DIR "oglgfx.txt"));
|
||||||
|
|
||||||
m_Check[2] = new wxCheckBox(m_PageMain, ID_SHOWCONSOLE, wxT("Show console"),
|
m_Check[2] = new wxCheckBox(m_PageMain, ID_SHOWCONSOLE, wxT("Show console"),
|
||||||
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
|
||||||
|
@ -297,55 +369,6 @@ void CDebugger::CreateGUIControls()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ==========================================================================
|
|
||||||
// System functions
|
|
||||||
// --------------
|
|
||||||
void CDebugger::OnShow(wxShowEvent& /*event*/)
|
|
||||||
{
|
|
||||||
// bring the console back to
|
|
||||||
if(m_Check[2]->IsChecked())
|
|
||||||
{
|
|
||||||
OpenConsole();
|
|
||||||
#ifdef _WIN32
|
|
||||||
MoveWindow(GetConsoleHwnd(), 0,400, 1280,500, true); // Move window TODO: make this
|
|
||||||
// adjustable from the debugging window
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDebugger::OnClose(wxCloseEvent& /*event*/)
|
|
||||||
{
|
|
||||||
// save the window position when we hide the window to
|
|
||||||
IniFile file;
|
|
||||||
file.Load(DEBUGGER_CONFIG_FILE);
|
|
||||||
this->Save(file);
|
|
||||||
file.Save(DEBUGGER_CONFIG_FILE);
|
|
||||||
|
|
||||||
EndModal(0); // it seems like this works for Show() to, not just ShowModal();
|
|
||||||
CloseConsole(); // The console goes with the wx window
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CDebugger::DoHide()
|
|
||||||
{
|
|
||||||
Hide();
|
|
||||||
CloseConsole(); // The console goes with the wx window
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDebugger::DoShow()
|
|
||||||
{
|
|
||||||
Show();
|
|
||||||
DoShowHideConsole(); // The console goes with the wx window
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CDebugger::OnUpdate(wxCommandEvent& /*event*/)
|
|
||||||
{
|
|
||||||
this->NotifyUpdate();
|
|
||||||
}
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
// =======================================================================================
|
||||||
// Change preset
|
// Change preset
|
||||||
// --------------
|
// --------------
|
||||||
|
@ -422,7 +445,7 @@ void CDebugger::GeneralSettings(wxCommandEvent& event)
|
||||||
switch (event.GetId())
|
switch (event.GetId())
|
||||||
{
|
{
|
||||||
case ID_SAVETOFILE: // Save to file
|
case ID_SAVETOFILE: // Save to file
|
||||||
gSaveFile = m_Check[0]->IsChecked();
|
LocalLogFile = m_Check[0]->IsChecked();
|
||||||
break;
|
break;
|
||||||
case ID_SHOWCONSOLE:
|
case ID_SHOWCONSOLE:
|
||||||
DoShowHideConsole();
|
DoShowHideConsole();
|
||||||
|
@ -441,8 +464,8 @@ void CDebugger::DoShowHideConsole()
|
||||||
{
|
{
|
||||||
OpenConsole();
|
OpenConsole();
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
MoveWindow(GetConsoleHwnd(), 0,400, 1280,500, true); // move window, TODO: make this
|
MoveWindow(Console::GetHwnd(), 0,400, 1280,500, true); // Move window. TODO: make this
|
||||||
// adjustable from the debugging window
|
// adjustable from the debugging window
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -33,56 +33,41 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
|
#include "ConsoleWindow.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Declarations and definitions
|
// Open and close the Windows console window
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
||||||
// The Windows console handle. The one for Linux is in Linux/Linux.cpp
|
|
||||||
static HANDLE hConsole = NULL;
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
void OpenConsole()
|
void OpenConsole()
|
||||||
{
|
{
|
||||||
COORD csize;
|
Console::Open(100, 300, "OpenGL Plugin Output"); // give room for 300 rows
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
|
Console::Print("OpenGL console opened\n");
|
||||||
SMALL_RECT srect;
|
MoveWindow(Console::GetHwnd(), 0,400, 1280,550, true); // Move window. Todo: make this
|
||||||
|
// adjustable from the debugging window
|
||||||
if (hConsole)
|
|
||||||
return;
|
|
||||||
AllocConsole();
|
|
||||||
SetConsoleTitle("Opengl Plugin Output");
|
|
||||||
|
|
||||||
// set width and height
|
|
||||||
csize.X = 155; // this fits on 1280 pixels TODO: make it adjustable from the wx debugging window
|
|
||||||
csize.Y = 300; // 300 rows
|
|
||||||
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), csize);
|
|
||||||
|
|
||||||
// make the internal buffer match the width we set
|
|
||||||
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbiInfo);
|
|
||||||
srect = csbiInfo.srWindow;
|
|
||||||
srect.Right = srect.Left + csize.X - 1; // match
|
|
||||||
srect.Bottom = srect.Top + 44;
|
|
||||||
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &srect);
|
|
||||||
|
|
||||||
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloseConsole()
|
void CloseConsole()
|
||||||
{
|
{
|
||||||
if (hConsole == NULL)
|
Console::Close();
|
||||||
return;
|
|
||||||
FreeConsole();
|
|
||||||
hConsole = NULL;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
//////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Write logs
|
||||||
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
|
||||||
|
// The log file handle
|
||||||
static FILE* pfLog = NULL;
|
static FILE* pfLog = NULL;
|
||||||
|
|
||||||
|
// This is on by default, but can be controlled from the debugging window
|
||||||
|
bool LocalLogFile = true;
|
||||||
|
|
||||||
void __Log(const char *fmt, ...)
|
void __Log(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
char* Msg = (char*)alloca(strlen(fmt)+512);
|
char* Msg = (char*)alloca(strlen(fmt)+512);
|
||||||
|
@ -94,17 +79,20 @@ void __Log(const char *fmt, ...)
|
||||||
|
|
||||||
g_VideoInitialize.pLog(Msg, FALSE);
|
g_VideoInitialize.pLog(Msg, FALSE);
|
||||||
|
|
||||||
if (pfLog == NULL)
|
// If we have no file to write to, create one
|
||||||
|
if (pfLog == NULL && LocalLogFile)
|
||||||
pfLog = fopen(FULL_LOGS_DIR "oglgfx.txt", "w");
|
pfLog = fopen(FULL_LOGS_DIR "oglgfx.txt", "w");
|
||||||
|
|
||||||
if (pfLog != NULL)
|
// Write to file
|
||||||
|
if (pfLog != NULL && LocalLogFile)
|
||||||
fwrite(Msg, strlen(Msg), 1, pfLog);
|
fwrite(Msg, strlen(Msg), 1, pfLog);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DWORD tmp;
|
// Write to the console screen, if one exists
|
||||||
WriteConsole(hConsole, Msg, (DWORD)strlen(Msg), &tmp, 0);
|
Console::Print(Msg);
|
||||||
#else
|
#else
|
||||||
//printf("%s", Msg);
|
//printf("%s", Msg);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Log(int type, const char *fmt, ...)
|
void __Log(int type, const char *fmt, ...)
|
||||||
|
@ -119,7 +107,8 @@ void __Log(int type, const char *fmt, ...)
|
||||||
g_VideoInitialize.pLog(Msg, FALSE);
|
g_VideoInitialize.pLog(Msg, FALSE);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DWORD tmp;
|
// Write to the console screen, if one exists
|
||||||
WriteConsole(hConsole, Msg, (DWORD)strlen(Msg), &tmp, 0);
|
Console::Print(Msg);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
//////////////////////////////////
|
||||||
|
|
|
@ -15,18 +15,31 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
// This file should DIE.
|
|
||||||
|
|
||||||
#ifndef _GLOBALS_H
|
#ifndef _GLOBALS_H
|
||||||
#define _GLOBALS_H
|
#define _GLOBALS_H
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
|
||||||
#include "VideoCommon.h"
|
#include "VideoCommon.h"
|
||||||
#include "pluginspecs_video.h"
|
#include "pluginspecs_video.h"
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Declarations and definitions
|
||||||
|
// -------------
|
||||||
|
|
||||||
|
// Turns file logging on and off
|
||||||
|
extern bool LocalLogFile;
|
||||||
|
|
||||||
|
// A global plugin specification
|
||||||
extern PLUGIN_GLOBALS* globals;
|
extern PLUGIN_GLOBALS* globals;
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif // _GLOBALS_H
|
||||||
|
|
|
@ -1,213 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Includes
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
#include "../Globals.h"
|
|
||||||
#include <string>
|
|
||||||
#include <stdio.h>
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Declarations and definitions
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// On and off
|
|
||||||
bool g_consoleEnable = true;
|
|
||||||
int gSaveFile = 0;
|
|
||||||
#define DEBUGG
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// Settings
|
|
||||||
int nFiles = 1;
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------
|
|
||||||
// Create handles
|
|
||||||
|
|
||||||
#ifdef DEBUGG
|
|
||||||
FILE* __fStdOut[1]; // you have to update this manually, we can't place a nFiles in there
|
|
||||||
#endif
|
|
||||||
#ifdef _WIN32
|
|
||||||
HANDLE __hStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
///////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Start console window - width and height is the size of console window, if you specify
|
|
||||||
fname, the output will also be written to this file. TODO: Close the file pointer when the app
|
|
||||||
is closed */
|
|
||||||
// -------------
|
|
||||||
void startConsoleWin(int width, int height, char* fname)
|
|
||||||
{
|
|
||||||
|
|
||||||
#if defined(DEBUGG) && defined(_WIN32)
|
|
||||||
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
SetConsoleTitle(fname);
|
|
||||||
__hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
// swt the width and height of the window
|
|
||||||
COORD co = {width,height};
|
|
||||||
SetConsoleScreenBufferSize(__hStdOut, co);
|
|
||||||
|
|
||||||
// make the internal buffer match the width we set
|
|
||||||
SMALL_RECT coo = {0,0,(width - 1),70}; // top, left, right, bottom
|
|
||||||
SetConsoleWindowInfo(__hStdOut, TRUE, &coo);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Write to a file
|
|
||||||
if(fname)
|
|
||||||
{
|
|
||||||
for(int i = 0; i < nFiles; i++)
|
|
||||||
{
|
|
||||||
// Edit the log file name
|
|
||||||
std::string FileEnding = ".log";
|
|
||||||
std::string FileName = fname;
|
|
||||||
char buffer[33]; _itoa(i, buffer, 10); // convert number to string
|
|
||||||
std::string FullFilename = (FileName + buffer + FileEnding);
|
|
||||||
__fStdOut[i] = fopen(FullFilename.c_str(), "w");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ---------------
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// File printf function
|
|
||||||
int aprintf(int a, char *fmt, ...)
|
|
||||||
{
|
|
||||||
#if defined(DEBUGG) && defined(_WIN32)
|
|
||||||
if(gSaveFile)
|
|
||||||
{
|
|
||||||
char s[5000]; // WARNING: mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 5000, fmt, argptr); // remember to update this value to
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
if(__fStdOut[a]) // TODO: make this work, we have to set all default values to NULL
|
|
||||||
//to make it work
|
|
||||||
fprintf(__fStdOut[a], s);
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ClearScreen()
|
|
||||||
{
|
|
||||||
#if defined(DEBUGG) && defined(_WIN32)
|
|
||||||
if(g_consoleEnable)
|
|
||||||
{
|
|
||||||
COORD coordScreen = { 0, 0 };
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
|
||||||
DWORD dwConSize;
|
|
||||||
|
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
|
||||||
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
SetConsoleCursorPosition(hConsole, coordScreen);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef _WIN32
|
|
||||||
// VERY UGLY! needs to be fixed soon, just fixing the biuld...
|
|
||||||
void CloseConsole()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OpenConsole()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Get the window handle of the console
|
|
||||||
// ¯¯¯¯¯¯¯¯¯¯
|
|
||||||
#if defined(DEBUGG) && defined(_WIN32)
|
|
||||||
HWND GetConsoleHwnd(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
|
|
||||||
HWND hwndFound; // This is what is returned to the caller.
|
|
||||||
char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
|
|
||||||
// WindowTitle.
|
|
||||||
char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
|
|
||||||
// WindowTitle.
|
|
||||||
|
|
||||||
// Fetch current window title.
|
|
||||||
|
|
||||||
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
|
|
||||||
|
|
||||||
// Format a "unique" NewWindowTitle.
|
|
||||||
|
|
||||||
wsprintf(pszNewWindowTitle,"%d/%d",
|
|
||||||
GetTickCount(),
|
|
||||||
GetCurrentProcessId());
|
|
||||||
|
|
||||||
// Change current window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Ensure window title has been updated.
|
|
||||||
|
|
||||||
Sleep(40);
|
|
||||||
|
|
||||||
// Look for NewWindowTitle.
|
|
||||||
|
|
||||||
hwndFound = FindWindow(NULL, pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Restore original window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszOldWindowTitle);
|
|
||||||
|
|
||||||
return(hwndFound);
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif // win32
|
|
||||||
////////////////////////////////////
|
|
|
@ -1,27 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
void startConsoleWin(int width, int height, char* fname);
|
|
||||||
int aprintf(int a, char *fmt, ...);
|
|
||||||
void ClearScreen();
|
|
||||||
void OpenConsole();
|
|
||||||
void CloseConsole();
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
HWND GetConsoleHwnd(void);
|
|
||||||
#endif
|
|
|
@ -1,284 +0,0 @@
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Licensetype: GNU General Public License (GPL)
|
|
||||||
//
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
//
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
//
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include "../Globals.h" // this is the precompiled header and must be the first ...
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Includes
|
|
||||||
// -------------
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
#include <string> // so that we can test std::string == abc
|
|
||||||
#include <math.h> // for the pow() function
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../GLUtil.h"
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
#include "../Debugger/Debugger.h" // for the CDebugger class
|
|
||||||
#include "../Debugger/PBView.h"
|
|
||||||
#include "Console.h" // open and close console, clear console window
|
|
||||||
#endif
|
|
||||||
#include "../Logging/Logging.h" // for global logging values
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Externals
|
|
||||||
// -------------
|
|
||||||
extern int nFiles;
|
|
||||||
float ratioFactor; // a global to get the ratio factor from MixAdd
|
|
||||||
int gPreset = 0;
|
|
||||||
u32 gLastBlock;
|
|
||||||
extern bool gSSBM;
|
|
||||||
extern bool gSSBMremedy1;
|
|
||||||
extern bool gSSBMremedy2;
|
|
||||||
extern bool gSequenced;
|
|
||||||
extern bool gReset;
|
|
||||||
bool gOnlyLooping = false;
|
|
||||||
extern int gSaveFile;
|
|
||||||
|
|
||||||
//extern int gleft, gright, gtop, gbottom; // from BPStructs.cpp
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Counters
|
|
||||||
// -------------
|
|
||||||
int j = 0;
|
|
||||||
int k = 0;
|
|
||||||
bool iupdonce = false;
|
|
||||||
std::vector<u16> viupd(15); // the length of the update frequency bar
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Classes
|
|
||||||
// -------------
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
extern CDebugger* m_frame;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write title
|
|
||||||
// --------------
|
|
||||||
std::string writeTitle(int a)
|
|
||||||
{
|
|
||||||
std::string b;
|
|
||||||
if(a == 0)
|
|
||||||
{
|
|
||||||
b = "lef rig top bot | wid hei\n";
|
|
||||||
}
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
// =======================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write main message (presets)
|
|
||||||
// --------------
|
|
||||||
std::string writeMessage(int a, int i)
|
|
||||||
{
|
|
||||||
char buf [1000] = "";
|
|
||||||
std::string sbuf;
|
|
||||||
// =======================================================================================
|
|
||||||
// PRESETS
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
/*
|
|
||||||
PRESET 0
|
|
||||||
"lef rig top bot | xof yof\n";
|
|
||||||
"000 000 000 000 | 000 00
|
|
||||||
*/
|
|
||||||
if(a == 0)
|
|
||||||
{
|
|
||||||
sprintf(buf,"%03i %03i %03i %03i | %03i %03i",
|
|
||||||
0, OpenGL_GetWidth(), OpenGL_GetHeight(), 0,
|
|
||||||
OpenGL_GetXoff(), OpenGL_GetYoff());
|
|
||||||
}
|
|
||||||
|
|
||||||
sbuf = buf;
|
|
||||||
return sbuf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Logging
|
|
||||||
void Logging(int a)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Update parameter values
|
|
||||||
// --------------
|
|
||||||
// AXPB base
|
|
||||||
|
|
||||||
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Write to file
|
|
||||||
// --------------
|
|
||||||
for (int ii = 0; ii < nFiles; ii++)
|
|
||||||
{
|
|
||||||
std::string sfbuff;
|
|
||||||
sfbuff = sfbuff + writeMessage(ii, 0);
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
aprintf(ii, (char *)sfbuff.c_str());
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Control how often the screen is updated, and then update the screen
|
|
||||||
// --------------
|
|
||||||
if(a == 0) j++;
|
|
||||||
//if(l == pow((double)2,32)) l=0; // reset l
|
|
||||||
//l++;
|
|
||||||
if (m_frame->gUpdFreq > 0 && j > (30 / m_frame->gUpdFreq))
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write header
|
|
||||||
// --------------
|
|
||||||
char buffer [1000] = "";
|
|
||||||
std::string sbuff;
|
|
||||||
sbuff = writeTitle(gPreset);
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
|
|
||||||
// hopefully this is false if we don't have a debugging window and so it doesn't cause a crash
|
|
||||||
/* // nothing do do here yet
|
|
||||||
if(m_frame)
|
|
||||||
{
|
|
||||||
m_frame->m_GPRListView->m_CachedRegs[1][0] = 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// add new line
|
|
||||||
sbuff = sbuff + writeMessage(gPreset, 0); strcpy(buffer, "");
|
|
||||||
sbuff = sbuff + "\n";
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write global values
|
|
||||||
// ---------------
|
|
||||||
/*
|
|
||||||
sprintf(buffer, "\nThe parameter blocks span from %08x to %08x | distance %i %i\n", m_addressPBs, gLastBlock, (gLastBlock-m_addressPBs), (gLastBlock-m_addressPBs) / 192);
|
|
||||||
sbuff = sbuff + buffer; strcpy(buffer, "");
|
|
||||||
*/
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Write settings
|
|
||||||
// ---------------
|
|
||||||
/*
|
|
||||||
sprintf(buffer, "\nSettings: SSBM fix %i | SSBM rem1 %i | SSBM rem2 %i | Sequenced %i | Reset %i | Only looping %i | Save file %i\n",
|
|
||||||
gSSBM, gSSBMremedy1, gSSBMremedy2, gSequenced, gReset, gOnlyLooping, gSaveFile);
|
|
||||||
sbuff = sbuff + buffer; strcpy(buffer, "");
|
|
||||||
*/
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Show update frequency
|
|
||||||
// ---------------
|
|
||||||
sbuff = sbuff + "\n";
|
|
||||||
if(!iupdonce)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
for (int i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
viupd.at(i) == 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
viupd.at(0) = 1;
|
|
||||||
viupd.at(1) = 1;
|
|
||||||
viupd.at(2) = 1;
|
|
||||||
iupdonce = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (u32 i = 0; i < viupd.size(); i++) // 0, 1,..., 9
|
|
||||||
{
|
|
||||||
if (i < viupd.size()-1)
|
|
||||||
{
|
|
||||||
viupd.at(viupd.size()-i-1) = viupd.at(viupd.size()-i-2); // move all forward
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
viupd.at(0) = viupd.at(viupd.size()-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Correction
|
|
||||||
if (viupd.at(viupd.size()-3) == 1 && viupd.at(viupd.size()-2) == 1 && viupd.at(viupd.size()-1) == 1)
|
|
||||||
{
|
|
||||||
viupd.at(0) = 0;
|
|
||||||
}
|
|
||||||
if(viupd.at(0) == 0 && viupd.at(1) == 1 && viupd.at(2) == 1 && viupd.at(3) == 0)
|
|
||||||
{
|
|
||||||
viupd.at(0) = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (u32 i = 0; i < viupd.size(); i++)
|
|
||||||
{
|
|
||||||
if(viupd.at(i) == 0)
|
|
||||||
sbuff = sbuff + " ";
|
|
||||||
else
|
|
||||||
sbuff = sbuff + ".";
|
|
||||||
}
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
// Print
|
|
||||||
// ----------------
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
ClearScreen();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
__Log("%s", sbuff.c_str());
|
|
||||||
sbuff.clear(); strcpy(buffer, "");
|
|
||||||
// ================
|
|
||||||
|
|
||||||
|
|
||||||
// New values are written so update - DISABLED - It flickered a lot, even worse than a
|
|
||||||
// console window. So for now only the console windows is updated.
|
|
||||||
/*
|
|
||||||
if(m_frame)
|
|
||||||
{
|
|
||||||
m_frame->NotifyUpdate();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
k=0;
|
|
||||||
j=0;
|
|
||||||
|
|
||||||
} // end of if (j>20)
|
|
||||||
|
|
||||||
} // end of function
|
|
|
@ -1,21 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
// functions
|
|
||||||
void Logging(int a);
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ BOOL APIENTRY DllMain(HINSTANCE hinstDLL, // DLL module handle
|
||||||
switch (dwReason)
|
switch (dwReason)
|
||||||
{
|
{
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
{ //use wxInitialize() if you don't want GUI instead of the following 12 lines
|
{ // Use wxInitialize() if you don't want GUI instead of the following 12 lines
|
||||||
wxSetInstance((HINSTANCE)hinstDLL);
|
wxSetInstance((HINSTANCE)hinstDLL);
|
||||||
int argc = 0;
|
int argc = 0;
|
||||||
char **argv = NULL;
|
char **argv = NULL;
|
||||||
|
@ -76,8 +76,7 @@ BOOL APIENTRY DllMain(HINSTANCE hinstDLL, // DLL module handle
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DLL_PROCESS_DETACH:
|
case DLL_PROCESS_DETACH:
|
||||||
CloseConsole();
|
wxEntryCleanup(); // Use wxUninitialize() if you don't want GUI
|
||||||
wxEntryCleanup(); //use wxUninitialize() if you don't want GUI
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -15,6 +15,10 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Includes
|
||||||
|
// -------------
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -45,17 +49,22 @@
|
||||||
#include "VertexLoader.h"
|
#include "VertexLoader.h"
|
||||||
#include "XFB.h"
|
#include "XFB.h"
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
#include "Logging/Logging.h" // for Logging()
|
#include "Debugger/Logging.h" // for Logging()
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
#include "Debugger/Debugger.h" // for the CDebugger class
|
#include "Debugger/Debugger.h" // for the CDebugger class
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "OS/Win32.h"
|
#include "OS/Win32.h"
|
||||||
#else
|
#else
|
||||||
#endif
|
#endif
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Declarations and definitions
|
||||||
|
// -------------
|
||||||
struct MESSAGE
|
struct MESSAGE
|
||||||
{
|
{
|
||||||
MESSAGE() {}
|
MESSAGE() {}
|
||||||
|
@ -69,7 +78,7 @@ CGprofile g_cgvProf;
|
||||||
CGprofile g_cgfProf;
|
CGprofile g_cgfProf;
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
extern CDebugger* m_frame; // the debugging class
|
extern CDebugger* m_frame; // the debugging class
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static RasterFont* s_pfont = NULL;
|
static RasterFont* s_pfont = NULL;
|
||||||
|
@ -96,6 +105,8 @@ bool g_bBlendLogicOp = false;
|
||||||
int frameCount;
|
int frameCount;
|
||||||
|
|
||||||
void HandleCgError(CGcontext ctx, CGerror err, void *appdata);
|
void HandleCgError(CGcontext ctx, CGerror err, void *appdata);
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
bool Renderer::Init()
|
bool Renderer::Init()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,8 +53,7 @@ if gfxenv['HAVE_WX']:
|
||||||
'GUI/ConfigDlg.cpp',
|
'GUI/ConfigDlg.cpp',
|
||||||
'Debugger/Debugger.cpp',
|
'Debugger/Debugger.cpp',
|
||||||
'Debugger/PBView.cpp',
|
'Debugger/PBView.cpp',
|
||||||
'Logging/Console.cpp',
|
'Debugger/Logging.cpp',
|
||||||
'Logging/Logging.cpp',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if gfxenv['HAVE_COCOA']:
|
if gfxenv['HAVE_COCOA']:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="Plugin_Wiimote"
|
Name="Plugin_Wiimote"
|
||||||
ProjectGUID="{8D612734-FAA5-4B8A-804F-4DEA2367D495}"
|
ProjectGUID="{8D612734-FAA5-4B8A-804F-4DEA2367D495}"
|
||||||
RootNamespace="Plugin_Wiimote"
|
RootNamespace="Plugin_Wiimote"
|
||||||
|
@ -527,11 +527,11 @@
|
||||||
Name="Debugging"
|
Name="Debugging"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Console.cpp"
|
RelativePath=".\Src\Logging.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Src\Console.h"
|
RelativePath=".\Src\Logging.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
|
@ -1,268 +0,0 @@
|
||||||
// Copyright (C) 2003-2008 Dolphin Project.
|
|
||||||
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, version 2.0.
|
|
||||||
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License 2.0 for more details.
|
|
||||||
|
|
||||||
// A copy of the GPL 2.0 should have been included with the program.
|
|
||||||
// If not, see http://www.gnu.org/licenses/
|
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
|
||||||
// http://code.google.com/p/dolphin-emu/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Includes
|
|
||||||
//
|
|
||||||
#include <string>
|
|
||||||
#include <stdio.h>
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "StringUtil.h"
|
|
||||||
|
|
||||||
#define HAVE_WX 1
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX // wxWidgets
|
|
||||||
#include <wx/datetime.h> // for the timestamps
|
|
||||||
#endif
|
|
||||||
///////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Settings
|
|
||||||
//
|
|
||||||
|
|
||||||
// On and off
|
|
||||||
bool g_consoleEnable = true;
|
|
||||||
bool gSaveFile = true;
|
|
||||||
#define DEBUG_WIIMOTE // On or off
|
|
||||||
const int nFiles = 1;
|
|
||||||
|
|
||||||
// Create handles
|
|
||||||
#ifdef DEBUG_WIIMOTE
|
|
||||||
FILE* __fStdOut[nFiles];
|
|
||||||
#endif
|
|
||||||
#ifdef _WIN32
|
|
||||||
HANDLE __hStdOut = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Get Timestamp */
|
|
||||||
// -------------
|
|
||||||
std::string Tm(bool Ms)
|
|
||||||
{
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
|
||||||
std::string Tmp;
|
|
||||||
if(Ms)
|
|
||||||
{
|
|
||||||
wxDateTime datetime = wxDateTime::UNow(); // Get timestamp
|
|
||||||
Tmp = StringFromFormat("%02i:%02i:%03i",
|
|
||||||
datetime.GetMinute(), datetime.GetSecond(), datetime.GetMillisecond());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wxDateTime datetime = wxDateTime::Now(); // Get timestamp
|
|
||||||
Tmp = StringFromFormat("%02i:%02i",
|
|
||||||
datetime.GetMinute(), datetime.GetSecond());
|
|
||||||
}
|
|
||||||
return Tmp;
|
|
||||||
#else
|
|
||||||
std::string Tmp = "";
|
|
||||||
return Tmp;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
// ===========================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// =======================================================================================
|
|
||||||
/* Start console window - width and height is the size of console window, if you specify
|
|
||||||
fname, the output will also be written to this file. TODO: Close the file pointer when the app
|
|
||||||
is closed */
|
|
||||||
// -------------
|
|
||||||
void startConsoleWin(int width, int height, char* fname)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_WIIMOTE) && defined(_WIN32)
|
|
||||||
|
|
||||||
AllocConsole();
|
|
||||||
|
|
||||||
SetConsoleTitle(fname);
|
|
||||||
__hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
COORD co = {width,height};
|
|
||||||
SetConsoleScreenBufferSize(__hStdOut, co);
|
|
||||||
|
|
||||||
SMALL_RECT coo = {0,0,(width - 1),70}; // top, left, right, bottom
|
|
||||||
SetConsoleWindowInfo(__hStdOut, TRUE, &coo);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Create a file for this
|
|
||||||
if(fname)
|
|
||||||
{
|
|
||||||
for(int i = 0; i < nFiles; i++)
|
|
||||||
{
|
|
||||||
// Edit the log file name
|
|
||||||
std::string FileEnding = ".log";
|
|
||||||
std::string FileName = fname;
|
|
||||||
char buffer[33]; _itoa(i, buffer, 10); // convert number to string
|
|
||||||
std::string FullFilename = (FileName + buffer + FileEnding);
|
|
||||||
__fStdOut[i] = fopen(FullFilename.c_str(), "w");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ---------------
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// File printf function
|
|
||||||
int aprintf(int a, char *fmt, ...)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_WIIMOTE) && defined(_WIN32)
|
|
||||||
if(gSaveFile)
|
|
||||||
{
|
|
||||||
char s[500]; // WARNING: mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 500, fmt, argptr); // remember to update this value to
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
if(__fStdOut[a]) // TODO: make this work, we have to set all default values to NULL
|
|
||||||
//to make it work
|
|
||||||
fprintf(__fStdOut[a], s);
|
|
||||||
fflush(__fStdOut[0]); // Write file now, don't wait
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Printf to screen function
|
|
||||||
int wprintf(const char *fmt, ...)
|
|
||||||
{
|
|
||||||
#if defined(DEBUG_WIIMOTE) && defined(_WIN32)
|
|
||||||
char s[500]; // WARNING: mind this value
|
|
||||||
va_list argptr;
|
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
|
||||||
cnt = vsnprintf(s, 500, fmt, argptr);
|
|
||||||
va_end(argptr);
|
|
||||||
|
|
||||||
DWORD cCharsWritten; // We will get a value back here
|
|
||||||
|
|
||||||
// ------------------------------------------
|
|
||||||
// Write to console
|
|
||||||
// ----------------
|
|
||||||
if(__hStdOut)
|
|
||||||
{
|
|
||||||
WriteConsole(__hStdOut, s, strlen(s), &cCharsWritten, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------
|
|
||||||
// Write to file
|
|
||||||
// ----------------
|
|
||||||
aprintf(0, s);
|
|
||||||
|
|
||||||
return(cnt);
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Clear console screen
|
|
||||||
void ClearScreen()
|
|
||||||
{
|
|
||||||
#if defined(_WIN32)
|
|
||||||
if(g_consoleEnable)
|
|
||||||
{
|
|
||||||
COORD coordScreen = { 0, 0 };
|
|
||||||
DWORD cCharsWritten;
|
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
|
||||||
DWORD dwConSize;
|
|
||||||
|
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
|
||||||
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
GetConsoleScreenBufferInfo(hConsole, &csbi);
|
|
||||||
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
|
|
||||||
coordScreen, &cCharsWritten);
|
|
||||||
SetConsoleCursorPosition(hConsole, coordScreen);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------
|
|
||||||
// Get window handle of console window to be able to resize it
|
|
||||||
#if defined(_WIN32)
|
|
||||||
HWND GetConsoleHwnd(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
|
|
||||||
HWND hwndFound; // This is what is returned to the caller.
|
|
||||||
char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
|
|
||||||
// WindowTitle.
|
|
||||||
char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
|
|
||||||
// WindowTitle.
|
|
||||||
|
|
||||||
// Fetch current window title.
|
|
||||||
|
|
||||||
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
|
|
||||||
|
|
||||||
// Format a "unique" NewWindowTitle.
|
|
||||||
|
|
||||||
wsprintf(pszNewWindowTitle,"%d/%d",
|
|
||||||
GetTickCount(),
|
|
||||||
GetCurrentProcessId());
|
|
||||||
|
|
||||||
// Change current window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Ensure window title has been updated.
|
|
||||||
|
|
||||||
Sleep(40);
|
|
||||||
|
|
||||||
// Look for NewWindowTitle.
|
|
||||||
|
|
||||||
hwndFound = FindWindow(NULL, pszNewWindowTitle);
|
|
||||||
|
|
||||||
// Restore original window title.
|
|
||||||
|
|
||||||
SetConsoleTitle(pszOldWindowTitle);
|
|
||||||
|
|
||||||
return(hwndFound);
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif // win32
|
|
|
@ -63,7 +63,7 @@
|
||||||
#include "EmuSubroutines.h"
|
#include "EmuSubroutines.h"
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "Encryption.h" // for extension encryption
|
#include "Encryption.h" // for extension encryption
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
#include "Config.h" // for g_Config
|
#include "Config.h" // for g_Config
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
|
||||||
|
@ -91,8 +91,8 @@ void WmDataReporting(u16 _channelID, wm_data_reporting* dr)
|
||||||
LOG(WII_IPC_WIIMOTE, " Continuous: %x", dr->continuous);
|
LOG(WII_IPC_WIIMOTE, " Continuous: %x", dr->continuous);
|
||||||
LOG(WII_IPC_WIIMOTE, " All The Time: %x (not only on data change)", dr->all_the_time);
|
LOG(WII_IPC_WIIMOTE, " All The Time: %x (not only on data change)", dr->all_the_time);
|
||||||
LOG(WII_IPC_WIIMOTE, " Mode: 0x%02x", dr->mode);
|
LOG(WII_IPC_WIIMOTE, " Mode: 0x%02x", dr->mode);
|
||||||
//wprintf("Data reporting mode: 0x%02x\n", dr->mode);
|
//Console::Print("Data reporting mode: 0x%02x\n", dr->mode);
|
||||||
//wprintf("Data reporting channel: 0x%04x\n", _channelID);
|
//Console::Print("Data reporting channel: 0x%04x\n", _channelID);
|
||||||
|
|
||||||
g_ReportingMode = dr->mode;
|
g_ReportingMode = dr->mode;
|
||||||
g_ReportingChannel = _channelID;
|
g_ReportingChannel = _channelID;
|
||||||
|
@ -159,7 +159,7 @@ void SendReportCoreAccel(u16 _channelID)
|
||||||
/*if(GetAsyncKeyState('V'))
|
/*if(GetAsyncKeyState('V'))
|
||||||
{
|
{
|
||||||
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
||||||
wprintf("DataFrame: %s\n", Temp.c_str());
|
Console::Print("DataFrame: %s\n", Temp.c_str());
|
||||||
}*/
|
}*/
|
||||||
#endif
|
#endif
|
||||||
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
||||||
|
@ -191,7 +191,7 @@ void SendReportCoreAccelIr12(u16 _channelID) {
|
||||||
/*if(GetAsyncKeyState('V'))
|
/*if(GetAsyncKeyState('V'))
|
||||||
{
|
{
|
||||||
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
||||||
wprintf("DataFrame: %s\n", Temp.c_str());
|
Console::Print("DataFrame: %s\n", Temp.c_str());
|
||||||
}*/
|
}*/
|
||||||
#endif
|
#endif
|
||||||
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
||||||
|
@ -239,7 +239,7 @@ void SendReportCoreAccelExt16(u16 _channelID)
|
||||||
/*if(GetAsyncKeyState('V'))
|
/*if(GetAsyncKeyState('V'))
|
||||||
{
|
{
|
||||||
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
std::string Temp = WiiMoteEmu::ArrayToString(DataFrame, Offset, 0, 30);
|
||||||
wprintf("DataFrame: %s\n", Temp.c_str());
|
Console::Print("DataFrame: %s\n", Temp.c_str());
|
||||||
}*/
|
}*/
|
||||||
#endif
|
#endif
|
||||||
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
||||||
|
@ -284,7 +284,7 @@ void SendReportCoreAccelIr10Ext(u16 _channelID)
|
||||||
/*if(GetAsyncKeyState('V'))
|
/*if(GetAsyncKeyState('V'))
|
||||||
{
|
{
|
||||||
std::string Temp = ArrayToString(DataFrame, Offset, 0, 30);
|
std::string Temp = ArrayToString(DataFrame, Offset, 0, 30);
|
||||||
wprintf("DataFrame: %s\n", Temp.c_str());
|
Console::Print("DataFrame: %s\n", Temp.c_str());
|
||||||
}*/
|
}*/
|
||||||
#endif
|
#endif
|
||||||
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "wiimote_hid.h"
|
#include "wiimote_hid.h"
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "Encryption.h"
|
#include "Encryption.h"
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
||||||
extern SWiimoteInitialize g_WiimoteInitialize;
|
extern SWiimoteInitialize g_WiimoteInitialize;
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "wiimote_hid.h"
|
#include "wiimote_hid.h"
|
||||||
#include "Encryption.h"
|
#include "Encryption.h"
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
|
|
||||||
extern SWiimoteInitialize g_WiimoteInitialize;
|
extern SWiimoteInitialize g_WiimoteInitialize;
|
||||||
//extern void __Log(int log, const char *format, ...);
|
//extern void __Log(int log, const char *format, ...);
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "EmuMain.h"
|
#include "EmuMain.h"
|
||||||
#include "Encryption.h" // for extension encryption
|
#include "Encryption.h" // for extension encryption
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
#include "Config.h" // for g_Config
|
#include "Config.h" // for g_Config
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ void CheckAckDelay()
|
||||||
}
|
}
|
||||||
AckDelay.at(i).Delay--;
|
AckDelay.at(i).Delay--;
|
||||||
|
|
||||||
//wprintf("%i 0x%04x 0x%02x", i, AckDelay.at(i).ChannelID, AckDelay.at(i).ReportID);
|
//Console::Print("%i 0x%04x 0x%02x", i, AckDelay.at(i).ChannelID, AckDelay.at(i).ReportID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,7 +238,7 @@ void InterruptChannel(u16 _channelID, const void* _pData, u32 _Size)
|
||||||
}
|
}
|
||||||
std::string Temp = ArrayToString(data, size + 2, 0, 30);
|
std::string Temp = ArrayToString(data, size + 2, 0, 30);
|
||||||
//LOGV(WII_IPC_WIIMOTE, 3, " Data: %s", Temp.c_str());
|
//LOGV(WII_IPC_WIIMOTE, 3, " Data: %s", Temp.c_str());
|
||||||
wprintf("\n%s: InterruptChannel: %s\n", Tm(true).c_str(), Temp.c_str());*/
|
Console::Print("\n%s: InterruptChannel: %s\n", Tm(true).c_str(), Temp.c_str());*/
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
|
|
||||||
hid_packet* hidp = (hid_packet*) data;
|
hid_packet* hidp = (hid_packet*) data;
|
||||||
|
@ -300,7 +300,7 @@ void ControlChannel(u16 _channelID, const void* _pData, u32 _Size)
|
||||||
{
|
{
|
||||||
LOG(WII_IPC_WIIMOTE, "Wiimote_ControlChannel");
|
LOG(WII_IPC_WIIMOTE, "Wiimote_ControlChannel");
|
||||||
std::string Temp = ArrayToString(data, 0, _Size);
|
std::string Temp = ArrayToString(data, 0, _Size);
|
||||||
wprintf("\n%s: ControlChannel: %s\n", Tm().c_str(), Temp.c_str());
|
Console::Print("\n%s: ControlChannel: %s\n", Tm().c_str(), Temp.c_str());
|
||||||
LOG(WII_IPC_WIIMOTE, " Data: %s", Temp.c_str());
|
LOG(WII_IPC_WIIMOTE, " Data: %s", Temp.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
#include "EmuMain.h"
|
#include "EmuMain.h"
|
||||||
#include "EmuSubroutines.h"
|
#include "EmuSubroutines.h"
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
#include "Config.h" // for g_Config
|
#include "Config.h" // for g_Config
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ void HidOutputReport(u16 _channelID, wm_report* sr) {
|
||||||
case WM_REQUEST_STATUS: // 0x15
|
case WM_REQUEST_STATUS: // 0x15
|
||||||
WmRequestStatus(_channelID, (wm_request_status*)sr->data);
|
WmRequestStatus(_channelID, (wm_request_status*)sr->data);
|
||||||
//Temp = ArrayToString(sr->data, sizeof(wm_request_status), 0);
|
//Temp = ArrayToString(sr->data, sizeof(wm_request_status), 0);
|
||||||
//wprintf("\n%s: InterruptChannel: %s\n", Tm().c_str(), Temp.c_str());
|
//Console::Print("\n%s: InterruptChannel: %s\n", Tm().c_str(), Temp.c_str());
|
||||||
break;
|
break;
|
||||||
case WM_READ_DATA: // 0x17
|
case WM_READ_DATA: // 0x17
|
||||||
WmReadData(_channelID, (wm_read_data*)sr->data);
|
WmReadData(_channelID, (wm_read_data*)sr->data);
|
||||||
|
@ -110,7 +110,7 @@ void HidOutputReport(u16 _channelID, wm_report* sr) {
|
||||||
case WM_IR_PIXEL_CLOCK: // 0x13
|
case WM_IR_PIXEL_CLOCK: // 0x13
|
||||||
case WM_IR_LOGIC: // 0x1a
|
case WM_IR_LOGIC: // 0x1a
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " IR Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
LOGV(WII_IPC_WIIMOTE, 0, " IR Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
||||||
wprintf("IR Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
Console::Print("IR Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
||||||
if(sr->data[0] == 0x02) g_IR = 0;
|
if(sr->data[0] == 0x02) g_IR = 0;
|
||||||
else if(sr->data[0] == 0x06) g_IR = 1;
|
else if(sr->data[0] == 0x06) g_IR = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -120,13 +120,13 @@ void HidOutputReport(u16 _channelID, wm_report* sr) {
|
||||||
break;
|
break;
|
||||||
case WM_SPEAKER_ENABLE: // 0x14
|
case WM_SPEAKER_ENABLE: // 0x14
|
||||||
LOGV(WII_IPC_WIIMOTE, 1, " WM Speaker Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
LOGV(WII_IPC_WIIMOTE, 1, " WM Speaker Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
||||||
wprintf("Speaker Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
Console::Print("Speaker Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
||||||
if(sr->data[0] == 0x02) g_Speaker = 0;
|
if(sr->data[0] == 0x02) g_Speaker = 0;
|
||||||
else if(sr->data[0] == 0x06) g_Speaker = 1;
|
else if(sr->data[0] == 0x06) g_Speaker = 1;
|
||||||
break;
|
break;
|
||||||
case WM_SPEAKER_MUTE:
|
case WM_SPEAKER_MUTE:
|
||||||
LOGV(WII_IPC_WIIMOTE, 1, " WM Mute Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
LOGV(WII_IPC_WIIMOTE, 1, " WM Mute Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
|
||||||
wprintf("Speaker Mute/Unmute 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
Console::Print("Speaker Mute/Unmute 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
|
||||||
if(sr->data[0] == 0x02) g_SpeakerVoice = 0; // g_SpeakerVoice
|
if(sr->data[0] == 0x02) g_SpeakerVoice = 0; // g_SpeakerVoice
|
||||||
else if(sr->data[0] == 0x06) g_SpeakerVoice = 1;
|
else if(sr->data[0] == 0x06) g_SpeakerVoice = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -198,13 +198,13 @@ void WmSendAck(u16 _channelID, u8 _reportID, u32 address)
|
||||||
LOGV(WII_IPC_WIIMOTE, 2, " Report ID: %02x", _reportID);
|
LOGV(WII_IPC_WIIMOTE, 2, " Report ID: %02x", _reportID);
|
||||||
//std::string Temp = ArrayToString(DataFrame, Offset, 0);
|
//std::string Temp = ArrayToString(DataFrame, Offset, 0);
|
||||||
//LOGV(WII_IPC_WIIMOTE, 2, " Data: %s", Temp.c_str());
|
//LOGV(WII_IPC_WIIMOTE, 2, " Data: %s", Temp.c_str());
|
||||||
//wprintf("%s: WMSendAck: %s\n", Tm(true).c_str(), Temp.c_str());
|
//Console::Print("%s: WMSendAck: %s\n", Tm(true).c_str(), Temp.c_str());
|
||||||
|
|
||||||
/* Debug. Write the report for extension registry writes.
|
/* Debug. Write the report for extension registry writes.
|
||||||
if((_reportID == 0x16 || _reportID == 0x17) && ((address >> 16) & 0xfe) == 0xa4)
|
if((_reportID == 0x16 || _reportID == 0x17) && ((address >> 16) & 0xfe) == 0xa4)
|
||||||
{
|
{
|
||||||
wprintf("\nWMSendAck Report ID: %02x Encryption: %02x\n", _reportID, g_RegExt[0xf0]);
|
Console::Print("\nWMSendAck Report ID: %02x Encryption: %02x\n", _reportID, g_RegExt[0xf0]);
|
||||||
wprintf("Data: %s\n", Temp.c_str());
|
Console::Print("Data: %s\n", Temp.c_str());
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
g_WiimoteInitialize.pWiimoteInput(_channelID, DataFrame, Offset);
|
||||||
|
@ -252,7 +252,7 @@ void WmReadData(u16 _channelID, wm_read_data* rd)
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa2: g_RegSpeaker");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa2: g_RegSpeaker");
|
||||||
//Tmp = ArrayToString(g_RegSpeaker, size, (address & 0xffff));
|
//Tmp = ArrayToString(g_RegSpeaker, size, (address & 0xffff));
|
||||||
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
||||||
//wprintf("Read RegSpkr: Size %i Address %08x Offset %08x\nData %s\n",
|
//Console::Print("Read RegSpkr: Size %i Address %08x Offset %08x\nData %s\n",
|
||||||
// size, address, (address & 0xffff), Tmp.c_str());
|
// size, address, (address & 0xffff), Tmp.c_str());
|
||||||
break;
|
break;
|
||||||
case 0xA4:
|
case 0xA4:
|
||||||
|
@ -261,7 +261,7 @@ void WmReadData(u16 _channelID, wm_read_data* rd)
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa4: Read ExtReg ****************************");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa4: Read ExtReg ****************************");
|
||||||
//Tmp = ArrayToString(g_RegExt, size, (address & 0xffff));
|
//Tmp = ArrayToString(g_RegExt, size, (address & 0xffff));
|
||||||
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
||||||
//wprintf("Read RegExt: Size %i Address %08x Offset %08x\nData %s\n",
|
//Console::Print("Read RegExt: Size %i Address %08x Offset %08x\nData %s\n",
|
||||||
// size, address, (address & 0xffff), Tmp.c_str());
|
// size, address, (address & 0xffff), Tmp.c_str());
|
||||||
break;
|
break;
|
||||||
case 0xB0:
|
case 0xB0:
|
||||||
|
@ -270,7 +270,7 @@ void WmReadData(u16 _channelID, wm_read_data* rd)
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case: 0xb0 g_RegIr");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case: 0xb0 g_RegIr");
|
||||||
//Tmp = ArrayToString(g_RegIr, size, (address & 0xffff));
|
//Tmp = ArrayToString(g_RegIr, size, (address & 0xffff));
|
||||||
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
//LOGV(WII_IPC_WIIMOTE, 0, " Data: %s", Temp.c_str());
|
||||||
//wprintf("Read RegIR: Size %i Address %08x Offset %08x\nData %s\n",
|
//Console::Print("Read RegIR: Size %i Address %08x Offset %08x\nData %s\n",
|
||||||
// size, address, (address & 0xffff), Tmp.c_str());
|
// size, address, (address & 0xffff), Tmp.c_str());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -285,12 +285,12 @@ void WmReadData(u16 _channelID, wm_read_data* rd)
|
||||||
if(((address >> 16) & 0xfe) == 0xa4)
|
if(((address >> 16) & 0xfe) == 0xa4)
|
||||||
{
|
{
|
||||||
/* Debugging
|
/* Debugging
|
||||||
wprintf("\n\nWmReadData Address: %08x Offset: %08x Size: %i byte\n",
|
Console::Print("\n\nWmReadData Address: %08x Offset: %08x Size: %i byte\n",
|
||||||
address, address & 0xffff, (u8)size);
|
address, address & 0xffff, (u8)size);
|
||||||
// Debugging
|
// Debugging
|
||||||
u32 offset = address & 0xffff;
|
u32 offset = address & 0xffff;
|
||||||
std::string Temp = ArrayToString(g_RegExt, size, offset);
|
std::string Temp = ArrayToString(g_RegExt, size, offset);
|
||||||
wprintf("Unencrypted data:\n%s\n", Temp.c_str());*/
|
Console::Print("Unencrypted data:\n%s\n", Temp.c_str());*/
|
||||||
|
|
||||||
// Check if encrypted reads is on
|
// Check if encrypted reads is on
|
||||||
if(g_RegExt[0xf0] == 0xaa)
|
if(g_RegExt[0xf0] == 0xaa)
|
||||||
|
@ -304,7 +304,7 @@ void WmReadData(u16 _channelID, wm_read_data* rd)
|
||||||
|
|
||||||
/* Debugging: Show the encrypted data
|
/* Debugging: Show the encrypted data
|
||||||
std::string Temp = ArrayToString(g_RegExtTmp, size, offset);
|
std::string Temp = ArrayToString(g_RegExtTmp, size, offset);
|
||||||
wprintf("Encrypted data:\n%s\n", Temp.c_str());*/
|
Console::Print("Encrypted data:\n%s\n", Temp.c_str());*/
|
||||||
|
|
||||||
// Update the block that SendReadDataReply will eventually send to the Wii
|
// Update the block that SendReadDataReply will eventually send to the Wii
|
||||||
block = g_RegExtTmp;
|
block = g_RegExtTmp;
|
||||||
|
@ -372,9 +372,9 @@ void WmWriteData(u16 _channelID, wm_write_data* wd)
|
||||||
block = g_RegSpeaker;
|
block = g_RegSpeaker;
|
||||||
blockSize = WIIMOTE_REG_SPEAKER_SIZE;
|
blockSize = WIIMOTE_REG_SPEAKER_SIZE;
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa2: RegSpeaker");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa2: RegSpeaker");
|
||||||
//wprintf("Write RegSpeaker: Size: %i, Address: %08x, Offset: %08x\n",
|
//Console::Print("Write RegSpeaker: Size: %i, Address: %08x, Offset: %08x\n",
|
||||||
// wd->size, address, (address & 0xffff));
|
// wd->size, address, (address & 0xffff));
|
||||||
//wprintf("Data: %s\n", Temp.c_str());
|
//Console::Print("Data: %s\n", Temp.c_str());
|
||||||
break;
|
break;
|
||||||
case 0xA4:
|
case 0xA4:
|
||||||
block = g_RegExt; // Extension Controller register
|
block = g_RegExt; // Extension Controller register
|
||||||
|
@ -382,17 +382,17 @@ void WmWriteData(u16 _channelID, wm_write_data* wd)
|
||||||
//LOGV(WII_IPC_WIIMOTE, 0, " *******************************************************");
|
//LOGV(WII_IPC_WIIMOTE, 0, " *******************************************************");
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa4: ExtReg");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xa4: ExtReg");
|
||||||
//LOGV(WII_IPC_WIIMOTE, 0, " *******************************************************");
|
//LOGV(WII_IPC_WIIMOTE, 0, " *******************************************************");
|
||||||
/*wprintf("Write RegExt Size: %i Address: %08x Offset: %08x \n",
|
/*Console::Print("Write RegExt Size: %i Address: %08x Offset: %08x \n",
|
||||||
wd->size, address, (address & 0xffff));
|
wd->size, address, (address & 0xffff));
|
||||||
wprintf("Data: %s\n", Temp.c_str());*/
|
Console::Print("Data: %s\n", Temp.c_str());*/
|
||||||
break;
|
break;
|
||||||
case 0xB0:
|
case 0xB0:
|
||||||
block = g_RegIr;
|
block = g_RegIr;
|
||||||
blockSize = WIIMOTE_REG_IR_SIZE;
|
blockSize = WIIMOTE_REG_IR_SIZE;
|
||||||
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xb0: RegIr");
|
LOGV(WII_IPC_WIIMOTE, 0, " Case 0xb0: RegIr");
|
||||||
/*wprintf("Write RegIR Size: %i Address: %08x Offset: %08x \n",
|
/*Console::Print("Write RegIR Size: %i Address: %08x Offset: %08x \n",
|
||||||
wd->size, address, (address & 0xffff));
|
wd->size, address, (address & 0xffff));
|
||||||
wprintf("Data: %s\n", Temp.c_str());*/
|
Console::Print("Data: %s\n", Temp.c_str());*/
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PanicAlert("WmWriteData: bad register block!");
|
PanicAlert("WmWriteData: bad register block!");
|
||||||
|
@ -419,8 +419,8 @@ void WmWriteData(u16 _channelID, wm_write_data* wd)
|
||||||
if(blockSize == WIIMOTE_REG_EXT_SIZE)
|
if(blockSize == WIIMOTE_REG_EXT_SIZE)
|
||||||
{
|
{
|
||||||
/* Debugging. Write the data.
|
/* Debugging. Write the data.
|
||||||
wprintf("Data: %s\n", Temp.c_str());
|
Console::Print("Data: %s\n", Temp.c_str());
|
||||||
wprintf("Current address: %08x\n", address); */
|
Console::Print("Current address: %08x\n", address); */
|
||||||
|
|
||||||
/* Run the key generation on all writes in the key area, it doesn't matter
|
/* Run the key generation on all writes in the key area, it doesn't matter
|
||||||
that we send it parts of a key, only the last full key will have an
|
that we send it parts of a key, only the last full key will have an
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#include "wiimote_hid.h" // Local
|
#include "wiimote_hid.h" // Local
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "Encryption.h"
|
#include "Encryption.h"
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "pluginspecs_wiimote.h"
|
#include "pluginspecs_wiimote.h"
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // for startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
#include "Encryption.h"
|
#include "Encryption.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -262,8 +262,8 @@ void wiimote_gen_key(wiimote_key *key, u8 *keydata)
|
||||||
for(int i=0;i<6;i++)
|
for(int i=0;i<6;i++)
|
||||||
skey[5-i] = keydata[i+10];
|
skey[5-i] = keydata[i+10];
|
||||||
|
|
||||||
wprintf("rand: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", rand[0], rand[1], rand[2], rand[3], rand[4], rand[5], rand[6], rand[7], rand[8], rand[9]);
|
Console::Print("rand: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", rand[0], rand[1], rand[2], rand[3], rand[4], rand[5], rand[6], rand[7], rand[8], rand[9]);
|
||||||
wprintf("key: %02x %02x %02x %02x %02x %02x\n", skey[0], skey[1], skey[2], skey[3], skey[4], skey[5]);
|
Console::Print("key: %02x %02x %02x %02x %02x %02x\n", skey[0], skey[1], skey[2], skey[3], skey[4], skey[5]);
|
||||||
|
|
||||||
for(idx=0;idx<7;idx++)
|
for(idx=0;idx<7;idx++)
|
||||||
{
|
{
|
||||||
|
@ -272,12 +272,12 @@ void wiimote_gen_key(wiimote_key *key, u8 *keydata)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// default case is idx = 7 which is valid (homebrew uses it for the 0x17 case)
|
// default case is idx = 7 which is valid (homebrew uses it for the 0x17 case)
|
||||||
wprintf("idx: %d\n", idx);
|
Console::Print("idx: %d\n", idx);
|
||||||
|
|
||||||
gentabs(rand, skey, idx, key->ft, key->sb);
|
gentabs(rand, skey, idx, key->ft, key->sb);
|
||||||
|
|
||||||
wprintf("ft: %02x %02x %02x %02x %02x %02x %02x %02x\n", key->ft[0], key->ft[1], key->ft[2], key->ft[3], key->ft[4], key->ft[5], key->ft[6], key->ft[7]);
|
Console::Print("ft: %02x %02x %02x %02x %02x %02x %02x %02x\n", key->ft[0], key->ft[1], key->ft[2], key->ft[3], key->ft[4], key->ft[5], key->ft[6], key->ft[7]);
|
||||||
wprintf("sb: %02x %02x %02x %02x %02x %02x %02x %02x\n", key->sb[0], key->sb[1], key->sb[2], key->sb[3], key->sb[4], key->sb[5], key->sb[6], key->sb[7]);
|
Console::Print("sb: %02x %02x %02x %02x %02x %02x %02x %02x\n", key->sb[0], key->sb[1], key->sb[2], key->sb[3], key->sb[4], key->sb[5], key->sb[6], key->sb[7]);
|
||||||
|
|
||||||
// for homebrew, ft and sb are all 0x97 which is equivalent to 0x17
|
// for homebrew, ft and sb are all 0x97 which is equivalent to 0x17
|
||||||
}
|
}
|
||||||
|
@ -290,8 +290,8 @@ void wiimote_encrypt(wiimote_key *key, u8 *data, int addr, u8 len)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < len; i++, addr++)
|
for(int i = 0; i < len; i++, addr++)
|
||||||
{
|
{
|
||||||
//wprintf("data[%i] from %02x ", i, data[i]);
|
//Console::Print("data[%i] from %02x ", i, data[i]);
|
||||||
data[i] = (data[i] - key->ft[addr%8]) ^ key->sb[addr%8];
|
data[i] = (data[i] - key->ft[addr%8]) ^ key->sb[addr%8];
|
||||||
//wprintf("to %02x\n", data[i]);
|
//Console::Print("to %02x\n", data[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#include "EmuMain.h"
|
#include "EmuMain.h"
|
||||||
#include "EmuSubroutines.h"
|
#include "EmuSubroutines.h"
|
||||||
#include "EmuDefinitions.h"
|
#include "EmuDefinitions.h"
|
||||||
#include "Console.h" // For startConsoleWin, wprintf, GetConsoleHwnd
|
#include "Logging.h" // For startConsoleWin, Console::Print, GetConsoleHwnd
|
||||||
#include "Config.h" // For g_Config
|
#include "Config.h" // For g_Config
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
|
@ -271,13 +271,13 @@ void FillReportAcc(wm_accel& _acc)
|
||||||
|
|
||||||
|
|
||||||
//if(consoleDisplay == 0)
|
//if(consoleDisplay == 0)
|
||||||
wprintf("x: %03i | y: %03i | z: %03i | A:%i B:%i C:%i a:%i b:%i c:%i d:%i X:%i Y:%i Z:%i\n",
|
Console::Print("x: %03i | y: %03i | z: %03i | A:%i B:%i C:%i a:%i b:%i c:%i d:%i X:%i Y:%i Z:%i\n",
|
||||||
_acc.x, _acc.y, _acc.z,
|
_acc.x, _acc.y, _acc.z,
|
||||||
A, B, C,
|
A, B, C,
|
||||||
a, b, c, d,
|
a, b, c, d,
|
||||||
X, Y, Z
|
X, Y, Z
|
||||||
);
|
);
|
||||||
wprintf("x: %03i | y: %03i | z: %03i | X:%i Y:%i Z:%i | AX:%i AY:%i AZ:%i \n",
|
Console::Print("x: %03i | y: %03i | z: %03i | X:%i Y:%i Z:%i | AX:%i AY:%i AZ:%i \n",
|
||||||
_acc.x, _acc.y, _acc.z,
|
_acc.x, _acc.y, _acc.z,
|
||||||
X, Y, Z,
|
X, Y, Z,
|
||||||
AX, AY, AZ
|
AX, AY, AZ
|
||||||
|
@ -358,11 +358,11 @@ void FillReportIR(wm_ir_extended& _ir0, wm_ir_extended& _ir1)
|
||||||
|
|
||||||
//ClearScreen();
|
//ClearScreen();
|
||||||
//if(consoleDisplay == 1)
|
//if(consoleDisplay == 1)
|
||||||
wprintf("x0:%03i x1:%03i y0:%03i y1:%03i irx0:%03i y0:%03i x1:%03i y1:%03i | T:%i L:%i R:%i B:%i S:%i\n",
|
Console::Print("x0:%03i x1:%03i y0:%03i y1:%03i irx0:%03i y0:%03i x1:%03i y1:%03i | T:%i L:%i R:%i B:%i S:%i\n",
|
||||||
x0, x1, y0, y1, _ir0.x, _ir0.y, _ir1.x, _ir1.y, Top, Left, Right, Bottom, SensorBarRadius
|
x0, x1, y0, y1, _ir0.x, _ir0.y, _ir1.x, _ir1.y, Top, Left, Right, Bottom, SensorBarRadius
|
||||||
);
|
);
|
||||||
wprintf("\n");
|
Console::Print("\n");
|
||||||
wprintf("ir0.x:%02x xHi:%02x ir1.x:%02x xHi:%02x | ir0.y:%02x yHi:%02x ir1.y:%02x yHi:%02x | 1.s:%02x 2:%02x\n",
|
Console::Print("ir0.x:%02x xHi:%02x ir1.x:%02x xHi:%02x | ir0.y:%02x yHi:%02x ir1.y:%02x yHi:%02x | 1.s:%02x 2:%02x\n",
|
||||||
_ir0.x, _ir0.xHi, _ir1.x, _ir1.xHi,
|
_ir0.x, _ir0.xHi, _ir1.x, _ir1.xHi,
|
||||||
_ir0.y, _ir0.yHi, _ir1.y, _ir1.yHi,
|
_ir0.y, _ir0.yHi, _ir1.y, _ir1.yHi,
|
||||||
_ir0.size, _ir1.size
|
_ir0.size, _ir1.size
|
||||||
|
@ -445,11 +445,11 @@ void FillReportIRBasic(wm_ir_basic& _ir0, wm_ir_basic& _ir1)
|
||||||
//ClearScreen();
|
//ClearScreen();
|
||||||
//if(consoleDisplay == 1)
|
//if(consoleDisplay == 1)
|
||||||
|
|
||||||
wprintf("x1:%03i x2:%03i y1:%03i y2:%03i irx1:%02x y1:%02x x2:%02x y2:%02x | T:%i L:%i R:%i B:%i S:%i\n",
|
Console::Print("x1:%03i x2:%03i y1:%03i y2:%03i irx1:%02x y1:%02x x2:%02x y2:%02x | T:%i L:%i R:%i B:%i S:%i\n",
|
||||||
x1, x2, y1, y2, _ir0.x1, _ir0.y1, _ir1.x2, _ir1.y2, Top, Left, Right, Bottom, SensorBarRadius
|
x1, x2, y1, y2, _ir0.x1, _ir0.y1, _ir1.x2, _ir1.y2, Top, Left, Right, Bottom, SensorBarRadius
|
||||||
);
|
);
|
||||||
wprintf("\n");
|
Console::Print("\n");
|
||||||
wprintf("ir0.x1:%02x x1h:%02x x2:%02x x2h:%02x | ir0.y1:%02x y1h:%02x y2:%02x y2h:%02x | ir1.x1:%02x x1h:%02x x2:%02x x2h:%02x | ir1.y1:%02x y1h:%02x y2:%02x y2h:%02x\n",
|
Console::Print("ir0.x1:%02x x1h:%02x x2:%02x x2h:%02x | ir0.y1:%02x y1h:%02x y2:%02x y2h:%02x | ir1.x1:%02x x1h:%02x x2:%02x x2h:%02x | ir1.y1:%02x y1h:%02x y2:%02x y2h:%02x\n",
|
||||||
_ir0.x1, _ir0.x1Hi, _ir0.x2, _ir0.x2Hi,
|
_ir0.x1, _ir0.x1Hi, _ir0.x2, _ir0.x2Hi,
|
||||||
_ir0.y1, _ir0.y1Hi, _ir0.y2, _ir0.y2Hi,
|
_ir0.y1, _ir0.y1Hi, _ir0.y2, _ir0.y2Hi,
|
||||||
_ir1.x1, _ir1.x1Hi, _ir1.x2, _ir1.x2Hi,
|
_ir1.x1, _ir1.x1Hi, _ir1.x2, _ir1.x2Hi,
|
||||||
|
|
|
@ -18,7 +18,7 @@ files = [
|
||||||
if wmenv['HAVE_WX']:
|
if wmenv['HAVE_WX']:
|
||||||
files += [
|
files += [
|
||||||
"ConfigDlg.cpp",
|
"ConfigDlg.cpp",
|
||||||
"Console.cpp",
|
"Logging.cpp",
|
||||||
"FillReport.cpp",
|
"FillReport.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,10 @@
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Includes
|
// Includes
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
#include "Common.h"
|
#include "Common.h" // Common
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
|
#include "ConsoleWindow.h" // For Start, Print, GetHwnd
|
||||||
|
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
#include <wx/aboutdlg.h>
|
#include <wx/aboutdlg.h>
|
||||||
|
@ -35,8 +36,6 @@
|
||||||
#if HAVE_WIIUSE
|
#if HAVE_WIIUSE
|
||||||
#include "wiimote_real.h"
|
#include "wiimote_real.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "Console.h" // for startConsoleWin, wprintf, GetConsoleHwnd
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -144,25 +143,25 @@ extern "C" void Initialize(void *init)
|
||||||
// ----------------------------------------
|
// ----------------------------------------
|
||||||
// Debugging window
|
// Debugging window
|
||||||
// ----------
|
// ----------
|
||||||
/*startConsoleWin(100, 750, "Wiimote"); // give room for 20 rows
|
/*Console::Open(100, 750, "Wiimote"); // give room for 20 rows
|
||||||
wprintf("Wiimote console opened\n");
|
Console::Print("Wiimote console opened\n");
|
||||||
|
|
||||||
// Move window, TODO: make this
|
// Move window
|
||||||
//MoveWindow(GetConsoleHwnd(), 0,400, 100*8,10*14, true); // small window
|
//MoveWindow(Console::GetHwnd(), 0,400, 100*8,10*14, true); // small window
|
||||||
MoveWindow(GetConsoleHwnd(), 400,0, 100*8,70*14, true); // big window*/
|
MoveWindow(Console::GetHwnd(), 400,0, 100*8,70*14, true); // big window*/
|
||||||
// ---------------
|
// ---------------
|
||||||
|
|
||||||
g_WiimoteInitialize = _WiimoteInitialize;
|
g_WiimoteInitialize = _WiimoteInitialize;
|
||||||
|
|
||||||
/* We will run WiiMoteReal::Initialize() even if we are not using a
|
/* We will run WiiMoteReal::Initialize() even if we are not using a real wiimote,
|
||||||
real wiimote, we will initiate wiiuse.dll, but we will return before
|
to check if there is a real wiimote connected. We will initiate wiiuse.dll, but
|
||||||
creating a new thread for it if we find no real Wiimotes. Then
|
we will return before creating a new thread for it if we find no real Wiimotes.
|
||||||
g_UseRealWiiMote will also be false This function call will be done
|
Then g_UseRealWiiMote will also be false. This function call will be done
|
||||||
instantly if there is no real Wiimote connected. I'm not sure how
|
instantly if there is no real Wiimote connected. I'm not sure how long time
|
||||||
long time it takes if a Wiimote is connected. */
|
it takes if a Wiimote is connected. */
|
||||||
#if HAVE_WIIUSE
|
#if HAVE_WIIUSE
|
||||||
g_UseRealWiiMote = WiiMoteReal::Initialize() > 0;
|
g_UseRealWiiMote = WiiMoteReal::Initialize() > 0;
|
||||||
#endif
|
#endif
|
||||||
g_Config.Load(); // load config settings
|
g_Config.Load(); // load config settings
|
||||||
|
|
||||||
WiiMoteEmu::Initialize();
|
WiiMoteEmu::Initialize();
|
||||||
|
|
Loading…
Reference in New Issue