Previous 199869 Revisions Next

r29536 Friday 11th April, 2014 at 16:26:51 UTC by Osso
midiin_device: converted to devcb2 (nw)
[src/emu/bus/midi]midiinport.c
[src/emu/imagedev]midiin.c midiin.h

trunk/src/emu/bus/midi/midiinport.c
r29535r29536
1717{
1818}
1919
20static midiin_config midiin_port_image_config =
21{
22   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, midiin_port_device, read)
23};
24
2520static MACHINE_CONFIG_FRAGMENT(midiin_port_config)
26   MCFG_MIDIIN_ADD("midiinimg", midiin_port_image_config)
21   MCFG_DEVICE_ADD("midiinimg", MIDIIN, 0)
22   MCFG_MIDIIN_INPUT_CB(WRITELINE(midiin_port_device, read))
2723MACHINE_CONFIG_END
2824
2925machine_config_constructor midiin_port_device::device_mconfig_additions() const
trunk/src/emu/imagedev/midiin.h
r29535r29536
1010#define __MIDIIN_H__
1111
1212
13/***************************************************************************
14    CONSTANTS
15***************************************************************************/
13#define MCFG_MIDIIN_INPUT_CB(_devcb) \
14   devcb = &midiin_device::set_input_callback(*device, DEVCB2_##_devcb);
1615
17struct midiin_config
18{
19   /* callback to driver */
20   devcb_write_line        m_input_callback;
21};
2216
23#define MCFG_MIDIIN_ADD(_tag, _config) \
24   MCFG_DEVICE_ADD(_tag, MIDIIN, 0) \
25   MCFG_DEVICE_CONFIG(_config)
26
27
2817/***************************************************************************
2918    TYPE DEFINITIONS
3019***************************************************************************/
3120
3221class midiin_device :    public device_t,
3322                  public device_image_interface,
34                  public device_serial_interface,
35                  public midiin_config
23                  public device_serial_interface
3624{
3725public:
3826   // construction/destruction
3927   midiin_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
4028
29   template<class _Object> static devcb2_base &set_input_callback(device_t &device, _Object object) { return downcast<midiin_device &>(device).m_input_cb.set_callback(object); }
30   
4131   // image-level overrides
4232   virtual bool call_load();
4333   virtual void call_unload();
r29535r29536
7262
7363   osd_midi_device *m_midi;
7464   emu_timer *m_timer;
75   devcb_resolved_write_line m_input_func;
65   devcb2_write_line        m_input_cb;
7666   UINT8 m_xmitring[XMIT_RING_SIZE];
7767   int m_xmit_read, m_xmit_write;
7868   bool m_tx_busy;
trunk/src/emu/imagedev/midiin.c
r29535r29536
2222midiin_device::midiin_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
2323   : device_t(mconfig, MIDIIN, "MIDI In image device", tag, owner, clock, "midiin", __FILE__),
2424      device_image_interface(mconfig, *this),
25         device_serial_interface(mconfig, *this)
25         device_serial_interface(mconfig, *this),
26         m_input_cb(*this)
2627{
2728}
2829
r29535r29536
3233
3334void midiin_device::device_start()
3435{
35   m_input_func.resolve(m_input_callback, *this);
36   m_input_cb.resolve_safe();
3637   m_timer = timer_alloc(0);
3738   m_midi = NULL;
3839   m_timer->enable(false);
r29535r29536
5556
5657void midiin_device::device_config_complete(void)
5758{
58   const midiin_config *intf = reinterpret_cast<const midiin_config *>(static_config());
59   if(intf != NULL)
60   {
61      *static_cast<midiin_config *>(this) = *intf;
62   }
63   else
64   {
65      memset(&m_input_callback, 0, sizeof(m_input_callback));
66   }
6759   update_names();
6860}
6961
r29535r29536
152144void midiin_device::tra_callback()
153145{
154146   int bit = transmit_register_get_data_bit();
155   m_input_func(bit);
147   m_input_cb(bit);
156148}
157149
158150void midiin_device::xmit_char(UINT8 data)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team