summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/save.h
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2022-06-16 12:47:52 +0200
committer Olivier Galibert <galibert@pobox.com>2025-04-29 23:06:41 +0200
commit45d4cd52a8194f2ef9e0383cfb2e2a35634af6ff (patch)
tree4e8d8fcb7382a5e9e0bce5ec59939bcfbe67155a /src/emu/save.h
parent5c14bcdfcb4aefb71b5b62387c4ad05dbeb3814e (diff)
full xtal conversionxtal
Diffstat (limited to 'src/emu/save.h')
-rw-r--r--src/emu/save.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/emu/save.h b/src/emu/save.h
index 677f127853a..330533d07cd 100644
--- a/src/emu/save.h
+++ b/src/emu/save.h
@@ -285,6 +285,43 @@ public:
save_item(device, module, tag, index, value, &attotime::m_seconds, tempstr.c_str(), count);
}
+ // specializations for XTAL
+ template <typename ItemType>
+ std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_item(device_t *device, const char *module, const char *tag, int index, ItemType &value, const char *valname)
+ {
+ std::string tempstr;
+ tempstr.assign(valname).append(".base_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".current_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".disable_validation");
+ save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str());
+ }
+
+ template <typename ItemType>
+ std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_pointer(device_t *device, const char *module, const char *tag, int index, ItemType *value, const char *valname, u32 count)
+ {
+ std::string tempstr;
+ tempstr.assign(valname).append(".base_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".current_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".disable_validation");
+ save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str());
+ }
+
+ template <typename ItemType>
+ std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_pointer(device_t *device, const char *module, const char *tag, int index, const std::unique_ptr<ItemType []> &value, const char *valname, u32 count)
+ {
+ std::string tempstr;
+ tempstr.assign(valname).append(".base_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".current_clock");
+ save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str());
+ tempstr.assign(valname).append(".disable_validation");
+ save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str());
+ }
+
// global memory registration
template <typename ItemType>
void save_item(ItemType &value, const char *valname, int index = 0)