mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
- removed FUNC_NULL macro
- made emu_timer register_save properly handle timer_expired_delegate() - removed timer_expired_func and calls using it
This commit is contained in:
parent
0630edb2bf
commit
d34724b3ab
@ -1746,7 +1746,7 @@ static int OPL_LockTable(device_t *device)
|
||||
{
|
||||
cymfile = fopen("3812_.cym","wb");
|
||||
if (cymfile)
|
||||
device->machine().scheduler().timer_pulse ( attotime::from_hz(110), FUNC(cymfile_callback)); /*110 Hz pulse timer*/
|
||||
device->machine().scheduler().timer_pulse ( attotime::from_hz(110), timer_expired_delegate(FUNC(cymfile_callback),&device->machine())); /*110 Hz pulse timer*/
|
||||
else
|
||||
device->logerror("Could not create file 3812_.cym\n");
|
||||
}
|
||||
|
@ -208,7 +208,6 @@ inline void operator--(_Type &value, int) { value = (_Type)((int)value - 1); }
|
||||
|
||||
// this macro wraps a function 'x' and can be used to pass a function followed by its name
|
||||
#define FUNC(x) &x, #x
|
||||
#define FUNC_NULL nullptr, "(null)"
|
||||
|
||||
|
||||
// standard assertion macros
|
||||
|
@ -243,10 +243,15 @@ void emu_timer::register_save()
|
||||
// for non-device timers, it is an index based on the callback function name
|
||||
if (m_device == nullptr)
|
||||
{
|
||||
name = m_callback.name();
|
||||
name = m_callback.name() ? m_callback.name() : "unnamed";
|
||||
for (emu_timer *curtimer = machine().scheduler().first_timer(); curtimer != nullptr; curtimer = curtimer->next())
|
||||
if (!curtimer->m_temporary && curtimer->m_device == nullptr && strcmp(curtimer->m_callback.name(), m_callback.name()) == 0)
|
||||
if (!curtimer->m_temporary && curtimer->m_device == nullptr)
|
||||
{
|
||||
if (curtimer->m_callback.name() != nullptr && m_callback.name() != nullptr && strcmp(curtimer->m_callback.name(), m_callback.name()) == 0)
|
||||
index++;
|
||||
else if (curtimer->m_callback.name() == nullptr && m_callback.name() == nullptr)
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// for device timers, it is an index based on the device and timer ID
|
||||
|
@ -41,10 +41,6 @@
|
||||
// timer callbacks look like this
|
||||
typedef delegate<void (void *, INT32)> timer_expired_delegate;
|
||||
|
||||
// old-skool callbacks are like this
|
||||
typedef void (*timer_expired_func)(running_machine &machine, void *ptr, INT32 param);
|
||||
|
||||
|
||||
// ======================> emu_timer
|
||||
|
||||
class emu_timer
|
||||
@ -141,14 +137,6 @@ public:
|
||||
void timer_pulse(const attotime &period, timer_expired_delegate callback, int param = 0, void *ptr = nullptr);
|
||||
void synchronize(timer_expired_delegate callback = timer_expired_delegate(), int param = 0, void *ptr = nullptr) { timer_set(attotime::zero, callback, param, ptr); }
|
||||
|
||||
// timers with old-skool callbacks
|
||||
#ifdef USE_STATIC_DELEGATE
|
||||
emu_timer *timer_alloc(timer_expired_func callback, const char *name, void *ptr = nullptr) { return timer_alloc(timer_expired_delegate(callback, name, &machine()), ptr); }
|
||||
void timer_set(const attotime &duration, timer_expired_func callback, const char *name, int param = 0, void *ptr = nullptr) { timer_set(duration, timer_expired_delegate(callback, name, &machine()), param, ptr); }
|
||||
void timer_pulse(const attotime &period, timer_expired_func callback, const char *name, int param = 0, void *ptr = nullptr) { timer_pulse(period, timer_expired_delegate(callback, name, &machine()), param, ptr); }
|
||||
void synchronize(timer_expired_func callback, const char *name = nullptr, int param = 0, void *ptr = nullptr) { timer_set(attotime::zero, callback, name, param, ptr); }
|
||||
#endif
|
||||
|
||||
// timers, specified by device/id; generally devices should use the device_t methods instead
|
||||
emu_timer *timer_alloc(device_t &device, device_timer_id id = 0, void *ptr = nullptr);
|
||||
void timer_set(const attotime &duration, device_t &device, device_timer_id id = 0, int param = 0, void *ptr = nullptr);
|
||||
|
@ -646,7 +646,7 @@ MACHINE_START_MEMBER(combatsc_state,combatsc)
|
||||
m_page[0] = MEM + 0x4000;
|
||||
m_page[1] = MEM + 0x6000;
|
||||
|
||||
m_interleave_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_interleave_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
|
||||
membank("bank1")->configure_entries(0, 10, memregion("maincpu")->base() + 0x10000, 0x4000);
|
||||
|
||||
|
@ -72,8 +72,8 @@ static emu_timer *timer[2];
|
||||
|
||||
MACHINE_START_MEMBER(midzeus_state,midzeus)
|
||||
{
|
||||
timer[0] = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
timer[1] = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
timer[1] = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
|
||||
gun_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(midzeus_state::invasn_gun_callback),this));
|
||||
gun_timer[1] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(midzeus_state::invasn_gun_callback),this));
|
||||
|
@ -176,17 +176,17 @@ MACHINE_RESET_MEMBER(tm990189_state,tm990_189)
|
||||
|
||||
MACHINE_START_MEMBER(tm990189_state,tm990_189)
|
||||
{
|
||||
m_displayena_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_displayena_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(tm990189_state,tm990_189_v)
|
||||
{
|
||||
m_displayena_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_displayena_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
|
||||
m_joy1x_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_joy1y_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_joy2x_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_joy2y_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_joy1x_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
m_joy1y_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
m_joy2x_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
m_joy2y_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(tm990189_state,tm990_189_v)
|
||||
|
@ -582,8 +582,8 @@ void vegas_state::machine_start()
|
||||
m_voodoo = (voodoo_device*)machine().device("voodoo");
|
||||
|
||||
/* allocate timers for the NILE */
|
||||
m_timer[0] = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_timer[1] = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
m_timer[1] = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
m_timer[2] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vegas_state::nile_timer_callback),this));
|
||||
m_timer[3] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vegas_state::nile_timer_callback),this));
|
||||
|
||||
|
@ -132,7 +132,7 @@ TIMER_CALLBACK_MEMBER(mhavoc_state::delayed_gamma_w)
|
||||
m_gamma->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
|
||||
/* the sound CPU needs to reply in 250microseconds (according to Neil Bradley) */
|
||||
machine().scheduler().timer_set(attotime::from_usec(250), FUNC_NULL);
|
||||
machine().scheduler().timer_set(attotime::from_usec(250), timer_expired_delegate());
|
||||
}
|
||||
|
||||
|
||||
|
@ -2997,7 +2997,7 @@ void thomson_state::to8_kbd_reset()
|
||||
void thomson_state::to8_kbd_init()
|
||||
{
|
||||
m_to8_kbd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(thomson_state::to8_kbd_timer_cb),this));
|
||||
m_to8_kbd_signal = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_to8_kbd_signal = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
save_item(NAME(m_to8_kbd_ack));
|
||||
save_item(NAME(m_to8_kbd_data));
|
||||
save_item(NAME(m_to8_kbd_step));
|
||||
|
@ -1161,7 +1161,7 @@ VIDEO_START_MEMBER( thomson_state, thom )
|
||||
save_item(NAME(m_thom_floppy_rcount));
|
||||
output().set_value( "floppy", 0 );
|
||||
|
||||
m_thom_video_timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_thom_video_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
|
||||
m_thom_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(thomson_state::thom_scanline_start),this));
|
||||
|
||||
|
@ -47,7 +47,7 @@ void victory_state::video_start()
|
||||
m_scrollx = m_scrolly = 0;
|
||||
m_video_control = 0;
|
||||
memset(&m_micro, 0, sizeof(m_micro));
|
||||
m_micro.timer = machine().scheduler().timer_alloc(FUNC_NULL);
|
||||
m_micro.timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
|
||||
/* register for state saving */
|
||||
save_item(NAME(m_paletteram));
|
||||
|
Loading…
Reference in New Issue
Block a user