1 // license: GPL-2.0+ 2 // copyright-holders: Dirk Best 3 /*************************************************************************** 4 5 SAM Mouse Interface for SAM Coupe 6 7 ***************************************************************************/ 8 9 #ifndef MAME_BUS_SAMCOUPE_MOUSE_MOUSE_H 10 #define MAME_BUS_SAMCOUPE_MOUSE_MOUSE_H 11 12 #pragma once 13 14 #include "mouseport.h" 15 16 17 //************************************************************************** 18 // TYPE DEFINITIONS 19 //************************************************************************** 20 21 // ======================> sam_mouse_device 22 23 class sam_mouse_device : public device_t, public device_samcoupe_mouse_interface 24 { 25 public: 26 // construction/destruction 27 sam_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 28 29 // from host 30 virtual uint8_t read() override; 31 32 protected: 33 virtual ioport_constructor device_input_ports() const override; 34 virtual void device_start() override; 35 virtual void device_reset() override; 36 virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; 37 38 private: 39 required_ioport m_io_buttons; 40 required_ioport m_io_x; 41 required_ioport m_io_y; 42 43 emu_timer *m_reset; 44 45 int m_mouse_index; 46 uint8_t m_mouse_data[9]; 47 int m_mouse_x, m_mouse_y; 48 }; 49 50 // device type definition 51 DECLARE_DEVICE_TYPE(SAM_MOUSE, sam_mouse_device) 52 53 #endif // MAME_BUS_SAMCOUPE_MOUSE_MOUSE_H 54