Printers: Use the new timer API for the timeout timers, fixes printers on faster emulated CPU's.

This commit is contained in:
OBattler
2025-09-01 01:03:06 +02:00
parent 6f71e92385
commit 7c13047fe6
3 changed files with 24 additions and 24 deletions

View File

@@ -401,7 +401,7 @@ timeout_timer(void *priv)
if (dev->page->dirty)
new_page(dev, 1, 1);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
}
static void
@@ -483,7 +483,7 @@ reset_printer_hard(escp_t *dev)
{
dev->ack = 0;
timer_disable(&dev->pulse_timer);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
reset_printer(dev);
}
@@ -1898,8 +1898,8 @@ strobe(uint8_t old, uint8_t val, void *priv)
/* Process incoming character. */
handle_char(dev, dev->data);
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -1909,7 +1909,7 @@ strobe(uint8_t old, uint8_t val, void *priv)
dev->ack = 1;
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
}
@@ -1939,8 +1939,8 @@ write_ctrl(uint8_t val, void *priv)
/* Process incoming character. */
handle_char(dev, dev->data);
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -1950,7 +1950,7 @@ write_ctrl(uint8_t val, void *priv)
dev->ack = 1;
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
dev->ctrl = val;

View File

@@ -136,7 +136,7 @@ reset_ps(ps_t *dev)
dev->buffer_pos = 0;
timer_disable(&dev->pulse_timer);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
}
static void
@@ -253,7 +253,7 @@ timeout_timer(void *priv)
write_buffer(dev, true);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
}
static void
@@ -333,8 +333,8 @@ ps_strobe(uint8_t old, uint8_t val, void *priv)
if (!(val & 0x01) && (old & 0x01)) {
process_data(dev);
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -344,7 +344,7 @@ ps_strobe(uint8_t old, uint8_t val, void *priv)
dev->ack = true;
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
}
@@ -371,8 +371,8 @@ ps_write_ctrl(uint8_t val, void *priv)
if (!(val & 0x01) && (dev->ctrl & 0x01)) {
process_data(dev);
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -382,7 +382,7 @@ ps_write_ctrl(uint8_t val, void *priv)
dev->ack = true;
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
dev->ctrl = val;

View File

@@ -214,7 +214,7 @@ timeout_timer(void *priv)
if (dev->page->dirty)
new_page(dev);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
}
static void
@@ -244,7 +244,7 @@ reset_printer(prnt_t *dev)
plat_tempfile(dev->filename, NULL, ".txt");
timer_disable(&dev->pulse_timer);
timer_disable(&dev->timeout_timer);
timer_stop(&dev->timeout_timer);
}
static int
@@ -381,8 +381,8 @@ strobe(uint8_t old, uint8_t val, void *priv)
/* Process incoming character. */
handle_char(dev);
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -393,7 +393,7 @@ strobe(uint8_t old, uint8_t val, void *priv)
dev->ack = 1;
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
}
@@ -427,8 +427,8 @@ write_ctrl(uint8_t val, void *priv)
/* ACK it, will be read on next READ STATUS. */
dev->ack = 1;
if (timer_is_enabled(&dev->timeout_timer)) {
timer_disable(&dev->timeout_timer);
if (timer_is_on(&dev->timeout_timer)) {
timer_stop(&dev->timeout_timer);
#ifdef USE_DYNAREC
if (cpu_use_dynarec)
update_tsc();
@@ -436,7 +436,7 @@ write_ctrl(uint8_t val, void *priv)
}
timer_set_delay_u64(&dev->pulse_timer, ISACONST);
timer_set_delay_u64(&dev->timeout_timer, 5000000 * TIMER_USEC);
timer_on_auto(&dev->timeout_timer, 5000000.0);
}
dev->ctrl = val;