diff options
Diffstat (limited to 'src/emu/device.cpp')
| -rw-r--r-- | src/emu/device.cpp | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/src/emu/device.cpp b/src/emu/device.cpp index 51088b02d4a..edcfa116562 100644 --- a/src/emu/device.cpp +++ b/src/emu/device.cpp @@ -606,11 +606,6 @@ void device_t::start() debug_setup(); } - // register our save states - save_item(NAME(m_clock)); - save_item(NAME(m_unscaled_clock)); - save_item(NAME(m_clock_scale)); - // have the views register their state if (!m_viewlist.empty()) osd_printf_verbose("%s: Registering %d views\n", m_tag, int(m_viewlist.size())); @@ -696,6 +691,27 @@ void device_t::post_load() //------------------------------------------------- +// register_save - tell the device and its +// interfaces to register their save states +//------------------------------------------------- + +void device_t::register_save(save_registrar &save) +{ + // register our save states + save.reg(NAME(m_clock)) + .reg(NAME(m_unscaled_clock)) + .reg(NAME(m_clock_scale)); + + // notify the interface + for (device_interface &intf : interfaces()) + intf.interface_register_save(save); + + // notify the device + device_register_save(save); +} + + +//------------------------------------------------- // notify_clock_changed - notify all interfaces // that the clock has changed //------------------------------------------------- @@ -842,6 +858,17 @@ void device_t::device_post_load() //------------------------------------------------- +// device_register_save - called after startup +// to register any state to be saved +//------------------------------------------------- + +void device_t::device_register_save(save_registrar &save) +{ + // do nothing by default +} + + +//------------------------------------------------- // device_clock_changed - called when the // device clock is altered in any way; designed // to be overridden by the actual device @@ -1167,6 +1194,17 @@ void device_interface::interface_post_load() //------------------------------------------------- +// interface_register_save - called after startup +// to register any state to be saved +//------------------------------------------------- + +void device_interface::interface_register_save(save_registrar &save) +{ + // do nothing by default +} + + +//------------------------------------------------- // interface_clock_changed - called when the // device clock is altered in any way; designed // to be overridden by the actual device |
