summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/laserdsc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/laserdsc.cpp')
-rw-r--r--src/devices/machine/laserdsc.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/devices/machine/laserdsc.cpp b/src/devices/machine/laserdsc.cpp
index 475014f4f83..45304a428f7 100644
--- a/src/devices/machine/laserdsc.cpp
+++ b/src/devices/machine/laserdsc.cpp
@@ -54,6 +54,9 @@ const uint32_t VIRTUAL_LEAD_OUT_TRACKS = LEAD_OUT_MIN_SIZE_IN_UM * 1000 / NOMINA
// CORE IMPLEMENTATION
//**************************************************************************
+ALLOW_SAVE_TYPE(laserdisc_device::player_state);
+ALLOW_SAVE_TYPE(laserdisc_device::slider_position);
+
//-------------------------------------------------
// laserdisc_device - constructor
//-------------------------------------------------
@@ -228,6 +231,73 @@ void laserdisc_device::device_start()
"laserdisc",
configuration_manager::load_delegate(&laserdisc_device::config_load, this),
configuration_manager::save_delegate(&laserdisc_device::config_save, this));
+
+ // register state
+ save_item(NAME(m_player_state.m_state));
+ save_item(NAME(m_player_state.m_substate));
+ save_item(NAME(m_player_state.m_param));
+ save_item(NAME(m_player_state.m_endtime));
+
+ save_item(NAME(m_saved_state.m_state));
+ save_item(NAME(m_saved_state.m_substate));
+ save_item(NAME(m_saved_state.m_param));
+ save_item(NAME(m_saved_state.m_endtime));
+
+ save_item(NAME(m_overposx));
+ save_item(NAME(m_overposy));
+ save_item(NAME(m_overscalex));
+ save_item(NAME(m_overscaley));
+
+ save_item(NAME(m_orig_config.m_overposx));
+ save_item(NAME(m_orig_config.m_overposy));
+ save_item(NAME(m_orig_config.m_overscalex));
+ save_item(NAME(m_orig_config.m_overscaley));
+
+ save_item(NAME(m_overwidth));
+ save_item(NAME(m_overheight));
+ save_item(NAME(m_overclip.min_x));
+ save_item(NAME(m_overclip.max_x));
+ save_item(NAME(m_overclip.min_y));
+ save_item(NAME(m_overclip.max_y));
+
+ save_item(NAME(m_vbidata));
+ save_item(NAME(m_is_cav_disc));
+ save_item(NAME(m_width));
+ save_item(NAME(m_height));
+ save_item(NAME(m_fps_times_1million));
+ save_item(NAME(m_samplerate));
+ save_item(NAME(m_chdtracks));
+
+ save_item(NAME(m_audiosquelch));
+ save_item(NAME(m_videosquelch));
+ save_item(NAME(m_fieldnum));
+ save_item(NAME(m_curtrack));
+ save_item(NAME(m_maxtrack));
+ save_item(NAME(m_attospertrack));
+ save_item(NAME(m_sliderupdate));
+
+ save_item(STRUCT_MEMBER(m_frame, m_numfields));
+ save_item(STRUCT_MEMBER(m_frame, m_lastfield));
+ save_item(NAME(m_videoindex));
+
+ save_item(NAME(m_audiobuffer[0]));
+ save_item(NAME(m_audiobuffer[1]));
+ save_item(NAME(m_audiobufsize));
+ save_item(NAME(m_audiobufin));
+ save_item(NAME(m_audiobufout));
+ save_item(NAME(m_audiocursamples));
+ save_item(NAME(m_audiomaxsamples));
+
+ save_item(STRUCT_MEMBER(m_metadata, white));
+ save_item(STRUCT_MEMBER(m_metadata, line16));
+ save_item(STRUCT_MEMBER(m_metadata, line17));
+ save_item(STRUCT_MEMBER(m_metadata, line18));
+ save_item(STRUCT_MEMBER(m_metadata, line1718));
+
+ save_item(NAME(m_videoenable));
+
+ save_item(NAME(m_overenable));
+ save_item(NAME(m_overindex));
}