diff --git a/src/emu/debugger.c b/src/emu/debugger.c index 5283d009ba0..8a125e18748 100644 --- a/src/emu/debugger.c +++ b/src/emu/debugger.c @@ -11,6 +11,7 @@ #include "emu.h" #include "debugger.h" +#include "osdepend.h" #include "debug/debugcpu.h" #include "debug/debugcmd.h" #include "debug/debugcon.h" @@ -89,6 +90,9 @@ void debugger_init(running_machine *machine) /* listen in on the errorlog */ machine->add_logerror_callback(debug_errorlog_write_line); + + /* initialize osd debugger features */ + osd_init_debugger(machine); } } diff --git a/src/osd/osdepend.h b/src/osd/osdepend.h index 7f44a6b4cdb..467642bb8f6 100644 --- a/src/osd/osdepend.h +++ b/src/osd/osdepend.h @@ -126,6 +126,7 @@ class device_t; -----------------------------------------------------------------------------*/ void osd_init(running_machine *machine); +void osd_init_debugger(running_machine *machine); void osd_wait_for_debugger(device_t *device, int firststop); diff --git a/src/osd/osdmini/minimain.c b/src/osd/osdmini/minimain.c index c372d829711..d039b50138a 100644 --- a/src/osd/osdmini/minimain.c +++ b/src/osd/osdmini/minimain.c @@ -135,6 +135,15 @@ void osd_init(running_machine *machine) } +//============================================================ +// osd_init_debugger +//============================================================ + +void osd_init_debugger(running_machine *machine) +{ +} + + //============================================================ // osd_wait_for_debugger //============================================================ diff --git a/src/osd/sdl/debugosx.m b/src/osd/sdl/debugosx.m index ba3107b6cc1..cd98d483aee 100644 --- a/src/osd/sdl/debugosx.m +++ b/src/osd/sdl/debugosx.m @@ -62,6 +62,14 @@ static void debugwin_view_update(debug_view &view, void *osdprivate); static void console_create_window(running_machine *machine); +//============================================================ +// osd_init_debugger +//============================================================ + +void osd_init_debugger(running_machine *machine) +{ +} + //============================================================ // osd_wait_for_debugger //============================================================ diff --git a/src/osd/sdl/debugwin.c b/src/osd/sdl/debugwin.c index 8585371319b..d5b426191d1 100644 --- a/src/osd/sdl/debugwin.c +++ b/src/osd/sdl/debugwin.c @@ -22,6 +22,8 @@ #include "debug-sup.h" #include "debug-cb.h" +#include "config.h" + //============================================================ // PARAMETERS //============================================================ @@ -87,7 +89,6 @@ static win_i *win_list; static void debugmain_init(running_machine *machine); - //============================================================ // run_func_on_win_list //============================================================ @@ -444,6 +445,69 @@ static void debugmain_set_cpu(running_device *device) } +//============================================================ +// configuration_load +//============================================================ + +static void configuration_load(running_machine *machine, int config_type, xml_data_node *parentnode) +{ + /* we only care about game files */ + if (config_type != CONFIG_TYPE_GAME) + return; + + /* might not have any data */ + if (parentnode == NULL) + return; + + // debug // printf("CONFIG LOAD\n"); + //gtk_window_move(GTK_WINDOW(dmain->win), 100, 100); + //gtk_window_resize(GTK_WINDOW(dmain->win), 1000, 500); +} + +//============================================================ +// configuration_save +//============================================================ + +static void configuration_save(running_machine *machine, int config_type, xml_data_node *parentnode) +{ + /* we only care about game files */ + if (config_type != CONFIG_TYPE_GAME) + return; + + // Loop over all the nodes + for(win_i *p = win_list; p != NULL; p = p->next) + { + /* create a node */ + xml_data_node *debugger_node; + debugger_node = xml_add_child(parentnode, "window", NULL); + + xml_set_attribute_int(debugger_node, "type", p->type); + + if (debugger_node != NULL) + { + int x, y; + gtk_window_get_position(GTK_WINDOW(p->win), &x, &y); + xml_set_attribute_int(debugger_node, "position_x", x); + xml_set_attribute_int(debugger_node, "position_y", y); + + gtk_window_get_size(GTK_WINDOW(p->win), &x, &y); + xml_set_attribute_int(debugger_node, "size_x", x); + xml_set_attribute_int(debugger_node, "size_y", y); + } + } +} + + +//============================================================ +// osd_init_debugger +//============================================================ + +void osd_init_debugger(running_machine *machine) +{ + /* register callbacks */ + config_register(machine, "debugger_sdl", configuration_load, configuration_save); +} + //============================================================ // osd_wait_for_debugger @@ -468,7 +532,6 @@ void osd_wait_for_debugger(running_device *device, int firststop) } - //============================================================ // debugwin_update_during_game //============================================================ @@ -483,7 +546,6 @@ void debugwin_update_during_game(running_machine *machine) } - //============================================================ // debugmain_process_string //============================================================ @@ -1143,6 +1205,10 @@ on_memoryview_key_press_event (GtkWidget *widget, #include "emu.h" // win32 stubs for linking +void osd_init_debugger(running_machine *machine) +{ +} + void osd_wait_for_debugger(running_device *device, int firststop) { } diff --git a/src/osd/windows/debugwin.c b/src/osd/windows/debugwin.c index 5ad8e80b431..2c4643a7755 100644 --- a/src/osd/windows/debugwin.c +++ b/src/osd/windows/debugwin.c @@ -261,6 +261,15 @@ static void smart_show_all(BOOL show); +//============================================================ +// osd_init_debugger +//============================================================ + +void osd_init_debugger(running_machine *machine) +{ +} + + //============================================================ // osd_wait_for_debugger //============================================================