diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2014-04-11 16:30:02 +0000 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2014-04-11 16:30:02 +0000 |
commit | 0b4e78bc26db01773acaea541cf8ef2711de44ae (patch) | |
tree | 9ca2753e9bdf4bc1b0c960dda29e0137531e9d3a | |
parent | d707a9d54c560cc24b5d26cd14986b914ff24c27 (diff) |
printer_image_device: converted to devcb2 (nw)
-rw-r--r-- | src/emu/bus/centronics/image.c | 11 | ||||
-rw-r--r-- | src/emu/bus/iq151/staper.c | 2 | ||||
-rw-r--r-- | src/emu/imagedev/printer.c | 24 | ||||
-rw-r--r-- | src/emu/imagedev/printer.h | 21 | ||||
-rw-r--r-- | src/mess/drivers/dragon.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/hec2hrp.c | 12 | ||||
-rw-r--r-- | src/mess/drivers/interact.c | 4 | ||||
-rw-r--r-- | src/mess/drivers/mc10.c | 4 | ||||
-rw-r--r-- | src/mess/drivers/ql.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/vg5k.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/x07.c | 2 |
11 files changed, 32 insertions, 54 deletions
diff --git a/src/emu/bus/centronics/image.c b/src/emu/bus/centronics/image.c index 9005bcce212..10fe3306fe6 100644 --- a/src/emu/bus/centronics/image.c +++ b/src/emu/bus/centronics/image.c @@ -8,17 +8,10 @@ // device type definition const device_type CENTRONICS_PRINTER_IMAGE = &device_creator<centronics_printer_image_device>; -/***************************************************************************** - PRINTER INTERFACE -*****************************************************************************/ -const struct printer_interface centronics_printer_config = -{ - DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, centronics_printer_image_device, printer_online) -}; static MACHINE_CONFIG_FRAGMENT( centronics_printer ) - MCFG_PRINTER_ADD("printer") - MCFG_DEVICE_CONFIG(centronics_printer_config) + MCFG_DEVICE_ADD("printer", PRINTER, 0) + MCFG_PRINTER_ONLINE_CB(WRITELINE(centronics_printer_image_device, printer_online)) MACHINE_CONFIG_END diff --git a/src/emu/bus/iq151/staper.c b/src/emu/bus/iq151/staper.c index 7cdedd77e25..e9f11d6ade4 100644 --- a/src/emu/bus/iq151/staper.c +++ b/src/emu/bus/iq151/staper.c @@ -34,7 +34,7 @@ static I8255_INTERFACE( iq151_staper_ppi_intf ) static MACHINE_CONFIG_FRAGMENT( iq151_staper ) MCFG_I8255A_ADD("ppi8255", iq151_staper_ppi_intf) - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END //************************************************************************** diff --git a/src/emu/imagedev/printer.c b/src/emu/imagedev/printer.c index cbfdd2da93c..5c4dfff9317 100644 --- a/src/emu/imagedev/printer.c +++ b/src/emu/imagedev/printer.c @@ -19,7 +19,8 @@ const device_type PRINTER = &device_creator<printer_image_device>; printer_image_device::printer_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, PRINTER, "Printer", tag, owner, clock, "printer_image", __FILE__), - device_image_interface(mconfig, *this) + device_image_interface(mconfig, *this), + m_online_cb(*this) { } @@ -39,17 +40,6 @@ printer_image_device::~printer_image_device() void printer_image_device::device_config_complete() { - // inherit a copy of the static data - const printer_interface *intf = reinterpret_cast<const printer_interface *>(static_config()); - if (intf != NULL) - *static_cast<printer_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_online, 0, sizeof(m_online)); - } - // set brief and instance name update_names(); } @@ -61,7 +51,7 @@ void printer_image_device::device_config_complete() void printer_image_device::device_start() { - m_online_func.resolve(m_online, *this); + m_online_cb.resolve(); } /*************************************************************************** @@ -107,8 +97,8 @@ bool printer_image_device::call_create(int format_type, option_resolution *forma bool printer_image_device::call_load() { /* send notify that the printer is now online */ - if (!m_online_func.isnull()) - m_online_func(TRUE); + if (!m_online_cb.isnull()) + m_online_cb(TRUE); /* we don't need to do anything special */ return IMAGE_INIT_PASS; @@ -121,6 +111,6 @@ bool printer_image_device::call_load() void printer_image_device::call_unload() { /* send notify that the printer is now offline */ - if (!m_online_func.isnull()) - m_online_func(FALSE); + if (!m_online_cb.isnull()) + m_online_cb(FALSE); } diff --git a/src/emu/imagedev/printer.h b/src/emu/imagedev/printer.h index cfc79877cde..c2d73f409b1 100644 --- a/src/emu/imagedev/printer.h +++ b/src/emu/imagedev/printer.h @@ -10,27 +10,25 @@ #define __PRINTER_H__ +#define MCFG_PRINTER_ONLINE_CB(_devcb) \ + devcb = &printer_image_device::set_online_callback(*device, DEVCB2_##_devcb); + + /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -// ======================> printer_interface - -struct printer_interface -{ - devcb_write_line m_online; -}; - // ======================> printer_image_device class printer_image_device : public device_t, - public printer_interface, public device_image_interface { public: // construction/destruction printer_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); virtual ~printer_image_device(); + + template<class _Object> static devcb2_base &set_online_callback(device_t &device, _Object object) { return downcast<printer_image_device &>(device).m_online_cb.set_callback(object); } // image-level overrides virtual bool call_load(); @@ -56,17 +54,14 @@ public: void output(UINT8 data); protected: // device-level overrides - virtual void device_config_complete(); virtual void device_start(); + virtual void device_config_complete(); - devcb_resolved_write_line m_online_func; + devcb2_write_line m_online_cb; }; // device type definition extern const device_type PRINTER; - -#define MCFG_PRINTER_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PRINTER, 0) #endif /* __PRINTER_H__ */ diff --git a/src/mess/drivers/dragon.c b/src/mess/drivers/dragon.c index 7041896cd9a..003118016cc 100644 --- a/src/mess/drivers/dragon.c +++ b/src/mess/drivers/dragon.c @@ -162,7 +162,7 @@ static MACHINE_CONFIG_START( dragon_base, dragon_state ) MCFG_SAM6883_ADD(SAM_TAG, XTAL_4_433619MHz, dragon_state::sam6883_config) MCFG_SAM6883_RES_CALLBACK(READ8(dragon_state, sam_read)) MCFG_CASSETTE_ADD("cassette", dragon_state::coco_cassette_interface) - MCFG_PRINTER_ADD(PRINTER_TAG) + MCFG_DEVICE_ADD(PRINTER_TAG, PRINTER, 0) // video hardware MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, VDG_TAG) diff --git a/src/mess/drivers/hec2hrp.c b/src/mess/drivers/hec2hrp.c index 3762346ba04..303fdc2c983 100644 --- a/src/mess/drivers/hec2hrp.c +++ b/src/mess/drivers/hec2hrp.c @@ -466,7 +466,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END @@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END @@ -568,7 +568,7 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END /*****************************************************************************/ @@ -621,7 +621,7 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END /*****************************************************************************/ @@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END @@ -724,7 +724,7 @@ static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state ) MCFG_CASSETTE_ADD( "cassette", hector_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END diff --git a/src/mess/drivers/interact.c b/src/mess/drivers/interact.c index e48e6998634..425ab6a98fa 100644 --- a/src/mess/drivers/interact.c +++ b/src/mess/drivers/interact.c @@ -176,7 +176,7 @@ static MACHINE_CONFIG_START( interact, interact_state ) MCFG_SOFTWARE_LIST_ADD("cass_list","interact") /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END @@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( hector1, interact_state ) MCFG_CASSETTE_ADD( "cassette", interact_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MACHINE_CONFIG_END diff --git a/src/mess/drivers/mc10.c b/src/mess/drivers/mc10.c index 782721d1a29..011a5cbc67f 100644 --- a/src/mess/drivers/mc10.c +++ b/src/mess/drivers/mc10.c @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( mc10, mc10_state ) MCFG_CASSETTE_ADD("cassette", mc10_cassette_interface) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) @@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( alice32, mc10_state ) MCFG_CASSETTE_ADD("cassette", alice32_cassette_interface) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c index 88e0f436576..e69b0ddd144 100644 --- a/src/mess/drivers/ql.c +++ b/src/mess/drivers/ql.c @@ -1175,7 +1175,7 @@ static MACHINE_CONFIG_START( ql, ql_state ) MCFG_RAM_EXTRA_OPTIONS("192K,256K,384K,640K,896K") // Parallel printer port on Sandy disk interface - MCFG_PRINTER_ADD(PRINTER_TAG) + MCFG_DEVICE_ADD(PRINTER_TAG, PRINTER, 0) MACHINE_CONFIG_END diff --git a/src/mess/drivers/vg5k.c b/src/mess/drivers/vg5k.c index ea277f938a1..eb038162877 100644 --- a/src/mess/drivers/vg5k.c +++ b/src/mess/drivers/vg5k.c @@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( vg5k, vg5k_state ) MCFG_CASSETTE_ADD( "cassette", vg5k_cassette_interface ) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/x07.c b/src/mess/drivers/x07.c index 1fff1614aec..76608eae342 100644 --- a/src/mess/drivers/x07.c +++ b/src/mess/drivers/x07.c @@ -1495,7 +1495,7 @@ static MACHINE_CONFIG_START( x07, x07_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* printer */ - MCFG_PRINTER_ADD("printer") + MCFG_DEVICE_ADD("printer", PRINTER, 0) MCFG_TIMER_DRIVER_ADD_PERIODIC("blink_timer", x07_state, blink_timer, attotime::from_msec(300)) |