1 // license:BSD-3-Clause
2 // copyright-holders:Curt Coder
3 /**********************************************************************
4 
5     ColecoVision Super Action Controller emulation
6 
7 **********************************************************************/
8 
9 #ifndef MAME_BUS_COLECO_SAC_H
10 #define MAME_BUS_COLECO_SAC_H
11 
12 #pragma once
13 
14 #include "ctrl.h"
15 
16 
17 
18 //**************************************************************************
19 //  TYPE DEFINITIONS
20 //**************************************************************************
21 
22 // ======================> coleco_super_action_controller_device
23 
24 class coleco_super_action_controller_device : public device_t,
25 											public device_colecovision_control_port_interface
26 {
27 public:
28 	// construction/destruction
29 	coleco_super_action_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
30 
31 	// optional information overrides
32 	virtual ioport_constructor device_input_ports() const override;
33 
34 	DECLARE_CUSTOM_INPUT_MEMBER( keypad_r );
35 	DECLARE_INPUT_CHANGED_MEMBER( slider_w );
36 
37 protected:
38 	// device-level overrides
39 	virtual void device_start() override;
40 
41 	// device_vcs_control_port_interface overrides
42 	virtual uint8_t joy_r() override;
43 
44 private:
45 	required_ioport m_io_common0;
46 	required_ioport m_io_common1;
47 	required_ioport m_io_keypad;
48 };
49 
50 
51 // device type definition
52 DECLARE_DEVICE_TYPE(COLECO_SUPER_ACTION_CONTROLLER, coleco_super_action_controller_device)
53 
54 
55 #endif // MAME_BUS_COLECO_SAC_H
56