summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/microtch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/microtch.h')
-rw-r--r--src/devices/machine/microtch.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/devices/machine/microtch.h b/src/devices/machine/microtch.h
index 2f955955e03..67656f93b49 100644
--- a/src/devices/machine/microtch.h
+++ b/src/devices/machine/microtch.h
@@ -15,18 +15,17 @@ public:
typedef device_delegate<int (int *, int *)> touch_cb;
microtouch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
auto stx() { return m_out_stx_func.bind(); }
+ template <typename... T> void set_touch_callback(T &&... args) { m_out_touch_cb.set(std::forward<T>(args)...); }
- DECLARE_WRITE_LINE_MEMBER(rx) { device_serial_interface::rx_w(state); }
+ void rx(int state) { device_serial_interface::rx_w(state); }
DECLARE_INPUT_CHANGED_MEMBER(touch);
- template <typename... T> void set_touch_callback(T &&... args) { m_out_touch_cb.set(std::forward<T>(args)...); }
-
protected:
// device_t implementation
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
// device_serial_interface implementation
virtual void tra_callback() override;
@@ -36,6 +35,8 @@ protected:
// ROM region (unused, as the device is HLE'd)
virtual const tiny_rom_entry *device_rom_region() const override;
+ TIMER_CALLBACK_MEMBER(update_output);
+
private:
int check_command( const char* commandtocheck, int command_len, uint8_t* command_data );
void send_format_table_packet(uint8_t flag, int x, int y);
@@ -56,25 +57,25 @@ private:
MODE_POINT
};
- uint8_t m_rx_buffer[16];
+ uint8_t m_rx_buffer[16];
int m_rx_buffer_ptr;
- uint8_t m_tx_buffer[16];
- uint8_t m_tx_buffer_num;
- uint8_t m_tx_buffer_ptr;
+ uint8_t m_tx_buffer[16];
+ uint8_t m_tx_buffer_num;
+ uint8_t m_tx_buffer_ptr;
int m_reset_done;
int m_format;
int m_mode;
int m_last_touch_state;
int m_last_x;
int m_last_y;
- touch_cb m_out_touch_cb;
+ touch_cb m_out_touch_cb;
devcb_write_line m_out_stx_func;
required_ioport m_touch;
required_ioport m_touchx;
required_ioport m_touchy;
emu_timer* m_timer;
- bool m_output_valid;
- uint8_t m_output;
+ bool m_output_valid;
+ uint8_t m_output;
};
DECLARE_DEVICE_TYPE(MICROTOUCH, microtouch_device)