LLE debugger work in progress: 1%, just a begin

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2797 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hyperiris 2009-03-30 13:21:22 +00:00
parent 37d513c53b
commit e9232ecf95
4 changed files with 166 additions and 0 deletions

View File

@ -897,6 +897,18 @@
>
</File>
</Filter>
<Filter
Name="Debugger"
>
<File
RelativePath=".\Src\debugger\Debugger.cpp"
>
</File>
<File
RelativePath=".\Src\debugger\Debugger.h"
>
</File>
</Filter>
<File
RelativePath=".\Src\Config.cpp"
>

View File

@ -0,0 +1,73 @@
// 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 "Common.h" // Common
#include <iostream> // System
#include <fstream>
#include <sstream>
#include "Debugger.h"
// Event table and class
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
EVT_CLOSE(CDebugger::OnClose) // on close event
//EVT_RIGHT_DOWN(CDebugger::ScrollBlocks)
//EVT_LEFT_DOWN(CDebugger::ScrollBlocks)
//EVT_MOUSE_EVENTS(CDebugger::ScrollBlocks)
//EVT_MOTION(CDebugger::ScrollBlocks)
//EVT_SCROLL(CDebugger::ScrollBlocks)
//EVT_SCROLLWIN(CDebugger::ScrollBlocks)
END_EVENT_TABLE()
CDebugger::CDebugger(wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &position, const wxSize& size, long style)
: wxDialog(parent, id, title, position, size, style)
{
CreateGUIControls();
}
CDebugger::~CDebugger()
{
}
void CDebugger::OnClose(wxCloseEvent& /*event*/)
{
EndModal(0);
}
void CDebugger::DoHide()
{
Hide();
}
void CDebugger::DoShow()
{
Show();
//DoShowConsole(); // The console goes with the wx window
}
void CDebugger::CreateGUIControls()
{
SetTitle(wxT("Sound Debugging"));
// Basic settings
SetIcon(wxNullIcon);
SetSize(8, 8, 200, 100); // These will become the minimin sizes allowed by resizing
Center();
}

View File

@ -0,0 +1,63 @@
#pragma once
#ifndef __CDebugger_h__
#define __CDebugger_h__
// general things
#include <iostream>
#include <vector>
#ifndef WX_PRECOMP
#include <wx/wx.h>
#include <wx/dialog.h>
#else
#include <wx/wxprec.h>
#endif
#include <wx/button.h>
#include <wx/stattext.h>
#include <wx/statbox.h>
#include <wx/statbmp.h>
#include <wx/datetime.h> // for the timestamps
#include <wx/sizer.h>
#include <wx/notebook.h>
#include <wx/filepicker.h>
#include <wx/listctrl.h>
#include <wx/imaglist.h>
//#include "../Globals.h"
//class CPBView;
//class IniFile;
// Window settings
#undef CDebugger_STYLE
#define CDebugger_STYLE wxDEFAULT_FRAME_STYLE | wxCLIP_CHILDREN | wxNO_FULL_REPAINT_ON_RESIZE
class CDebugger : public wxDialog
{
private:
DECLARE_EVENT_TABLE();
public:
CDebugger(wxWindow *parent, wxWindowID id = 1, const wxString &title = _("Sound Debugger"),
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = CDebugger_STYLE);
virtual ~CDebugger();
void DoHide();
void DoShow();
private:
// WARNING: Make sure these are not also elsewhere
enum
{
// = 2000,
};
void OnClose(wxCloseEvent& event);
void CreateGUIControls();
};
#endif

View File

@ -34,6 +34,9 @@
#if defined(HAVE_WX) && HAVE_WX
#include "DSPConfigDlgLLE.h"
#include "debugger/Debugger.h"
#include "Debugger/Debugger.h" // For the CDebugger class
CDebugger* m_frame = NULL;
#endif
PLUGIN_GLOBALS* globals = NULL;
@ -163,6 +166,21 @@ void DoState(unsigned char **ptr, int mode)
void DllDebugger(HWND _hParent, bool Show)
{
#if defined(HAVE_WX) && HAVE_WX
if (m_frame && Show) // if we have created it, let us show it again
{
m_frame->DoShow();
}
else if (!m_frame && Show)
{
m_frame = new CDebugger(NULL);
m_frame->Show();
}
else if (m_frame && !Show)
{
m_frame->DoHide();
}
#endif
}