cassette: add more items to savestate

This commit is contained in:
hap 2025-04-28 14:57:46 +02:00
parent e41fb3b287
commit fefe91b571
2 changed files with 16 additions and 8 deletions

View File

@ -88,7 +88,7 @@ void cassette_image_device::update()
{ {
double new_position = m_position + (cur_time - m_position_time) * m_speed * m_direction; double new_position = m_position + (cur_time - m_position_time) * m_speed * m_direction;
switch (int(m_state & CASSETTE_MASK_UISTATE)) // cast to int to suppress unhandled enum value warning switch (m_state & CASSETTE_MASK_UISTATE) // cast to int to suppress unhandled enum value warning
{ {
case CASSETTE_RECORD: case CASSETTE_RECORD:
m_cassette->put_sample(m_channel, m_position, new_position - m_position, m_value); m_cassette->put_sample(m_channel, m_position, new_position - m_position, m_value);
@ -112,6 +112,9 @@ void cassette_image_device::update()
} }
} }
break; break;
default:
break;
} }
m_position = new_position; m_position = new_position;
} }
@ -235,6 +238,9 @@ void cassette_image_device::seek(double time, int origin)
cassette device init/load/unload/specify cassette device init/load/unload/specify
*********************************************************************/ *********************************************************************/
// allow save_item on a non-fundamental type
ALLOW_SAVE_TYPE(cassette_state);
void cassette_image_device::device_start() void cassette_image_device::device_start()
{ {
/* set to default state */ /* set to default state */
@ -244,10 +250,12 @@ void cassette_image_device::device_start()
stream_alloc(0, m_stereo ? 2 : 1, machine().sample_rate()); stream_alloc(0, m_stereo ? 2 : 1, machine().sample_rate());
save_item(NAME(m_state));
save_item(NAME(m_position)); save_item(NAME(m_position));
save_item(NAME(m_position_time)); save_item(NAME(m_position_time));
save_item(NAME(m_value)); save_item(NAME(m_value));
save_item(NAME(m_channel)); save_item(NAME(m_channel));
save_item(NAME(m_speed));
save_item(NAME(m_direction)); save_item(NAME(m_direction));
} }

View File

@ -16,7 +16,7 @@
#include "formats/cassimg.h" #include "formats/cassimg.h"
enum cassette_state enum cassette_state : uint8_t
{ {
// this part of the state is controlled by the UI // this part of the state is controlled by the UI
CASSETTE_STOPPED = 0, CASSETTE_STOPPED = 0,