summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2015-01-12 02:19:14 +0100
committer couriersud <couriersud@arcor.de>2015-01-12 02:19:14 +0100
commita532231701babdff7b9f551fbd4923326c214874 (patch)
tree24f2f62f9133dac4922193c1f00997f5658d35fe /src/osd/modules/debugger
parentd9e4bfacb354ccd827dbe274cec3719a83374d18 (diff)
Converted back osd_interface into a pure interface.
The previous version just exhibited any member of osd_interface to the core. This one limits core access to osd to those functions originally specified. There is room for improvement going forward here in the design. Left FIXMEs where appropriate. (nw)
Diffstat (limited to 'src/osd/modules/debugger')
-rw-r--r--src/osd/modules/debugger/debugint.c15
-rw-r--r--src/osd/modules/debugger/debugint.h5
-rw-r--r--src/osd/modules/debugger/debugosx.h5
-rw-r--r--src/osd/modules/debugger/debugosx.m7
-rw-r--r--src/osd/modules/debugger/debugqt.c18
-rw-r--r--src/osd/modules/debugger/debugqt.h7
-rw-r--r--src/osd/modules/debugger/debugwin.c17
-rw-r--r--src/osd/modules/debugger/debugwin.h5
-rw-r--r--src/osd/modules/debugger/none.c7
-rw-r--r--src/osd/modules/debugger/none.h5
10 files changed, 57 insertions, 34 deletions
diff --git a/src/osd/modules/debugger/debugint.c b/src/osd/modules/debugger/debugint.c
index e97a548675e..39728cf94f7 100644
--- a/src/osd/modules/debugger/debugint.c
+++ b/src/osd/modules/debugger/debugint.c
@@ -851,18 +851,21 @@ void debugger_internal::debugger_exit()
}
if (debug_font != NULL)
{
- m_osd.machine().render().font_free(debug_font);
+ m_machine->render().font_free(debug_font);
debug_font = NULL;
}
if (menu)
global_free(menu);
}
-void debugger_internal::init_debugger()
+void debugger_internal::init_debugger(running_machine &machine)
{
unicode_char ch;
int chw;
- debug_font = m_osd.machine().render().font_alloc("ui.bdf"); //ui_get_font(machine);
+
+ m_machine = &machine;
+
+ debug_font = m_machine->render().font_alloc("ui.bdf"); //ui_get_font(machine);
debug_font_width = 0;
debug_font_height = 15;
@@ -871,7 +874,7 @@ void debugger_internal::init_debugger()
list = NULL;
focus_view = NULL;
- debug_font_aspect = m_osd.machine().render().ui_aspect();
+ debug_font_aspect = m_machine->render().ui_aspect();
for (ch=0;ch<=127;ch++)
{
@@ -1442,7 +1445,7 @@ void debugger_internal::wait_for_debugger(device_t &device, bool firststop)
void debugger_internal::debugger_update()
{
- if (!debug_cpu_is_stopped(m_osd.machine()) && m_osd.machine().phase() == MACHINE_PHASE_RUNNING)
+ if (!debug_cpu_is_stopped(*m_machine) && m_machine->phase() == MACHINE_PHASE_RUNNING)
{
update_views();
}
@@ -1452,6 +1455,6 @@ void debugger_internal::debugger_update()
// debugger_internal - constructor
//-------------------------------------------------
debugger_internal::debugger_internal(const osd_interface &osd)
- : osd_debugger_interface(osd)
+ : osd_debugger_interface(osd), m_machine(NULL)
{
}
diff --git a/src/osd/modules/debugger/debugint.h b/src/osd/modules/debugger/debugint.h
index a3f0a441df8..e3733b10dd4 100644
--- a/src/osd/modules/debugger/debugint.h
+++ b/src/osd/modules/debugger/debugint.h
@@ -15,6 +15,7 @@
#define __DEBUGGER_INTERNAL_H__
#include "osdepend.h"
+#include "modules/lib/osdobj_common.h"
class debugger_internal : public osd_debugger_interface
{
@@ -23,10 +24,12 @@ public:
debugger_internal(const osd_interface &osd);
virtual ~debugger_internal() { }
- virtual void init_debugger();
+ virtual void init_debugger(running_machine &machine);
virtual void wait_for_debugger(device_t &device, bool firststop);
virtual void debugger_update();
virtual void debugger_exit();
+private:
+ running_machine *m_machine;
};
extern const osd_debugger_type OSD_DEBUGGER_INTERNAL;
diff --git a/src/osd/modules/debugger/debugosx.h b/src/osd/modules/debugger/debugosx.h
index 8de62ed911f..46e7b18305f 100644
--- a/src/osd/modules/debugger/debugosx.h
+++ b/src/osd/modules/debugger/debugosx.h
@@ -18,6 +18,7 @@
// MAME headers
#include "emu.h"
#include "debug/debugvw.h"
+#include "modules/lib/osdobj_common.h"
#ifdef __OBJC__
@@ -373,10 +374,12 @@ public:
debugger_osx(const osd_interface &osd);
virtual ~debugger_osx() { }
- virtual void init_debugger();
+ virtual void init_debugger(running_machine &machine);
virtual void wait_for_debugger(device_t &device, bool firststop);
virtual void debugger_update();
virtual void debugger_exit();
+private:
+ running_machine *m_machine;
};
extern const osd_debugger_type OSD_DEBUGGER_OSX;
diff --git a/src/osd/modules/debugger/debugosx.m b/src/osd/modules/debugger/debugosx.m
index 196cc94bc18..1df4a9a27ac 100644
--- a/src/osd/modules/debugger/debugosx.m
+++ b/src/osd/modules/debugger/debugosx.m
@@ -73,7 +73,7 @@ const osd_debugger_type OSD_DEBUGGER_OSX = &osd_debugger_creator<debugger_osx>;
// debugger_osx - constructor
//-------------------------------------------------
debugger_osx::debugger_osx(const osd_interface &osd)
- : osd_debugger_interface(osd)
+ : osd_debugger_interface(osd), m_machine(NULL)
{
}
@@ -81,8 +81,9 @@ debugger_osx::debugger_osx(const osd_interface &osd)
// debugger_osx::init_debugger
//============================================================
-void debugger_osx::init_debugger()
+void debugger_osx::init_debugger(running_machine &machine)
{
+ m_machine = &machine;
}
//============================================================
@@ -93,7 +94,7 @@ void debugger_osx::wait_for_debugger(device_t &device, bool firststop)
{
// create a console window
if (main_console == nil)
- console_create_window(m_osd.machine());
+ console_create_window(*m_machine);
// make sure the debug windows are visible
waiting_for_debugger = YES;
diff --git a/src/osd/modules/debugger/debugqt.c b/src/osd/modules/debugger/debugqt.c
index 7ae32540b0a..9b196675450 100644
--- a/src/osd/modules/debugger/debugqt.c
+++ b/src/osd/modules/debugger/debugqt.c
@@ -19,6 +19,7 @@
#include "emu.h"
#include "config.h"
#include "debugger.h"
+#include "modules/lib/osdobj_common.h"
#include "qt/debugqtlogwindow.h"
#include "qt/debugqtmainwindow.h"
@@ -50,7 +51,7 @@ static MainWindow* mainQtWindow = NULL;
// debugger_qt - constructor
//-------------------------------------------------
debugger_qt::debugger_qt(const osd_interface &osd)
- : osd_debugger_interface(osd)
+ : osd_debugger_interface(osd), m_machine(NULL)
{
}
@@ -227,7 +228,7 @@ static void bring_main_window_to_front()
bool winwindow_qt_filter(void *message);
#endif
-void debugger_qt::init_debugger()
+void debugger_qt::init_debugger(running_machine &machine)
{
if (qApp == NULL)
{
@@ -249,11 +250,12 @@ void debugger_qt::init_debugger()
oneShot = true;
}
+ m_machine = &machine;
// Setup the configuration XML saving and loading
- config_register(m_osd.machine(),
+ config_register(machine,
"debugger",
- config_saveload_delegate(FUNC(xml_configuration_load), &m_osd.machine()),
- config_saveload_delegate(FUNC(xml_configuration_save), &m_osd.machine()));
+ config_saveload_delegate(FUNC(xml_configuration_load), &machine),
+ config_saveload_delegate(FUNC(xml_configuration_save), &machine));
}
@@ -276,9 +278,9 @@ void debugger_qt::wait_for_debugger(device_t &device, bool firststop)
// Dialog initialization
if (oneShot)
{
- mainQtWindow = new MainWindow(&m_osd.machine());
+ mainQtWindow = new MainWindow(m_machine);
load_and_clear_main_window_config(xmlConfigurations);
- setup_additional_startup_windows(m_osd.machine(), xmlConfigurations);
+ setup_additional_startup_windows(*m_machine, xmlConfigurations);
mainQtWindow->show();
oneShot = false;
}
@@ -325,7 +327,7 @@ void debugger_qt::wait_for_debugger(device_t &device, bool firststop)
}
// Exit if the machine has been instructed to do so (scheduled event == exit || hard_reset)
- if (m_osd.machine().scheduled_event_pending())
+ if (m_machine->scheduled_event_pending())
{
// Keep a list of windows we want to save.
// We need to do this here because by the time xml_configuration_save gets called
diff --git a/src/osd/modules/debugger/debugqt.h b/src/osd/modules/debugger/debugqt.h
index 6accc743a83..51bf3cf27b2 100644
--- a/src/osd/modules/debugger/debugqt.h
+++ b/src/osd/modules/debugger/debugqt.h
@@ -14,7 +14,7 @@
#ifndef __DEBUGGER_QT_H__
#define __DEBUGGER_QT_H__
-#include "osdepend.h"
+#include "emu.h"
class debugger_qt : public osd_debugger_interface
{
@@ -23,10 +23,13 @@ public:
debugger_qt(const osd_interface &osd);
virtual ~debugger_qt();
- virtual void init_debugger();
+ virtual void init_debugger(running_machine &machine);
virtual void wait_for_debugger(device_t &device, bool firststop);
virtual void debugger_update();
virtual void debugger_exit();
+
+private:
+ running_machine *m_machine;
};
extern const osd_debugger_type OSD_DEBUGGER_QT;
diff --git a/src/osd/modules/debugger/debugwin.c b/src/osd/modules/debugger/debugwin.c
index 7092f870bda..f6e536554d9 100644
--- a/src/osd/modules/debugger/debugwin.c
+++ b/src/osd/modules/debugger/debugwin.c
@@ -257,7 +257,7 @@ void debugger_windows::wait_for_debugger(device_t &device, bool firststop)
// create a console window
if (main_console == NULL)
- console_create_window(m_osd.machine());
+ console_create_window(*m_machine);
// update the views in the console to reflect the current CPU
if (main_console != NULL)
@@ -276,7 +276,7 @@ void debugger_windows::wait_for_debugger(device_t &device, bool firststop)
smart_show_all(TRUE);
// run input polling to ensure that our status is in sync
- wininput_poll(m_osd.machine());
+ wininput_poll(*m_machine);
// get and process messages
GetMessage(&message, NULL, 0, 0);
@@ -294,7 +294,7 @@ void debugger_windows::wait_for_debugger(device_t &device, bool firststop)
// process everything else
default:
- winwindow_dispatch_message(m_osd.machine(), &message);
+ winwindow_dispatch_message(*m_machine, &message);
break;
}
@@ -368,10 +368,11 @@ static int debugwin_seq_pressed(running_machine &machine)
// debugwin_init_windows
//============================================================
-void debugger_windows::init_debugger()
+void debugger_windows::init_debugger(running_machine &machine)
{
static int class_registered;
+ m_machine = &machine;
// register the window classes
if (!class_registered)
{
@@ -414,7 +415,7 @@ void debugger_windows::init_debugger()
if (temp_dc != NULL)
{
- windows_options &options = downcast<windows_options &>(m_osd.machine().options());
+ windows_options &options = downcast<windows_options &>(m_machine->options());
int size = options.debugger_font_size();
TCHAR *t_face;
@@ -474,15 +475,15 @@ void debugger_windows::debugger_exit()
void debugger_windows::debugger_update()
{
// if we're running live, do some checks
- if (!winwindow_has_focus() && !debug_cpu_is_stopped(m_osd.machine()) && m_osd.machine().phase() == MACHINE_PHASE_RUNNING)
+ if (!winwindow_has_focus() && !debug_cpu_is_stopped(*m_machine) && m_machine->phase() == MACHINE_PHASE_RUNNING)
{
// see if the interrupt key is pressed and break if it is
- if (debugwin_seq_pressed(m_osd.machine()))
+ if (debugwin_seq_pressed(*m_machine))
{
HWND focuswnd = GetFocus();
debugwin_info *info;
- debug_cpu_get_visible_cpu(m_osd.machine())->debug()->halt_on_next_instruction("User-initiated break\n");
+ debug_cpu_get_visible_cpu(*m_machine)->debug()->halt_on_next_instruction("User-initiated break\n");
// if we were focused on some window's edit box, reset it to default
for (info = window_list; info != NULL; info = info->next)
diff --git a/src/osd/modules/debugger/debugwin.h b/src/osd/modules/debugger/debugwin.h
index e35fe20b1b0..9891c227d9f 100644
--- a/src/osd/modules/debugger/debugwin.h
+++ b/src/osd/modules/debugger/debugwin.h
@@ -13,6 +13,7 @@
#define __DEBUGGER_WINDOWS_H__
#include "osdepend.h"
+#include "modules/lib/osdobj_common.h"
class debugger_windows : public osd_debugger_interface
{
@@ -21,10 +22,12 @@ public:
debugger_windows(const osd_interface &osd);
virtual ~debugger_windows() { }
- virtual void init_debugger();
+ virtual void init_debugger(running_machine &machine);
virtual void wait_for_debugger(device_t &device, bool firststop);
virtual void debugger_update();
virtual void debugger_exit();
+private:
+ running_machine *m_machine;
};
extern const osd_debugger_type OSD_DEBUGGER_WINDOWS;
diff --git a/src/osd/modules/debugger/none.c b/src/osd/modules/debugger/none.c
index fd6d55ca3dc..a3a29b290d5 100644
--- a/src/osd/modules/debugger/none.c
+++ b/src/osd/modules/debugger/none.c
@@ -13,17 +13,18 @@ const osd_debugger_type OSD_DEBUGGER_NONE = &osd_debugger_creator<debugger_none>
// debugger_none - constructor
//-------------------------------------------------
debugger_none::debugger_none(const osd_interface &osd)
- : osd_debugger_interface(osd)
+ : osd_debugger_interface(osd), m_machine(NULL)
{
}
-void debugger_none::init_debugger()
+void debugger_none::init_debugger(running_machine &machine)
{
+ m_machine = &machine;
}
void debugger_none::wait_for_debugger(device_t &device, bool firststop)
{
- debug_cpu_get_visible_cpu(m_osd.machine())->debug()->go();
+ debug_cpu_get_visible_cpu(*m_machine)->debug()->go();
}
void debugger_none::debugger_update()
diff --git a/src/osd/modules/debugger/none.h b/src/osd/modules/debugger/none.h
index a93001b572b..ee87e22548a 100644
--- a/src/osd/modules/debugger/none.h
+++ b/src/osd/modules/debugger/none.h
@@ -14,6 +14,7 @@
#define __DEBUGGER_NONE_H__
#include "osdepend.h"
+#include "modules/lib/osdobj_common.h"
class debugger_none : public osd_debugger_interface
{
@@ -22,10 +23,12 @@ public:
debugger_none(const osd_interface &osd);
virtual ~debugger_none() { }
- virtual void init_debugger();
+ virtual void init_debugger(running_machine &machine);
virtual void wait_for_debugger(device_t &device, bool firststop);
virtual void debugger_update();
virtual void debugger_exit();
+private:
+ running_machine *m_machine;
};
extern const osd_debugger_type OSD_DEBUGGER_NONE;