1 // license: GPL-2.0+ 2 // copyright-holders: Dirk Best 3 /*************************************************************************** 4 5 PSI HLE ASCII Keyboard 6 7 ***************************************************************************/ 8 9 #ifndef MAME_BUS_PSI_KBD_HLE_H 10 #define MAME_BUS_PSI_KBD_HLE_H 11 12 #pragma once 13 14 #include "psi_kbd.h" 15 #include "machine/keyboard.h" 16 17 18 //************************************************************************** 19 // TYPE DEFINITIONS 20 //************************************************************************** 21 22 // ======================> psi_hle_keyboard_device 23 24 class psi_hle_keyboard_device : public device_t, 25 public device_psi_keyboard_interface, 26 protected device_matrix_keyboard_interface<7> 27 { 28 public: 29 // construction/destruction 30 psi_hle_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 31 32 protected: 33 // device_t overrides 34 virtual ioport_constructor device_input_ports() const override; 35 virtual void device_start() override; 36 virtual void device_reset() override; 37 38 // device_matrix_keyboard_interface overrides 39 virtual void key_make(uint8_t row, uint8_t column) override; 40 virtual void key_break(uint8_t row, uint8_t column) override; 41 virtual void key_repeat(uint8_t row, uint8_t column) override; 42 43 private: 44 uint8_t translate(uint8_t row, uint8_t column); 45 void send_key(uint8_t code); 46 required_ioport m_modifiers; 47 }; 48 49 50 // device type definition 51 DECLARE_DEVICE_TYPE(PSI_HLE_KEYBOARD, psi_hle_keyboard_device) 52 53 54 #endif // MAME_BUS_PSI_KBD_HLE_H 55