summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/adc083x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/adc083x.h')
-rw-r--r--src/devices/machine/adc083x.h33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/devices/machine/adc083x.h b/src/devices/machine/adc083x.h
index dd26370bf3f..5af0e02cbb5 100644
--- a/src/devices/machine/adc083x.h
+++ b/src/devices/machine/adc083x.h
@@ -8,19 +8,20 @@
***************************************************************************/
-#ifndef __ADC083X_H__
-#define __ADC083X_H__
+#ifndef MAME_MACHINE_ADC083X_H
+#define MAME_MACHINE_ADC083X_H
+
+#pragma once
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
-typedef device_delegate<double (uint8_t input)> adc083x_input_delegate;
#define ADC083X_INPUT_CB(name) double name(uint8_t input)
#define MCFG_ADC083X_INPUT_CB(_class, _method) \
- adc083x_device::set_input_callback(*device, adc083x_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
+ adc083x_device::set_input_callback(*device, adc083x_device::input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
/***************************************************************************
CONSTANTS
@@ -45,10 +46,10 @@ typedef device_delegate<double (uint8_t input)> adc083x_input_delegate;
class adc083x_device : public device_t
{
public:
- adc083x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
+ typedef device_delegate<double (uint8_t input)> input_delegate;
// static configuration helpers
- static void set_input_callback(device_t &device, adc083x_input_delegate input_callback) { downcast<adc083x_device &>(device).m_input_callback = input_callback; }
+ static void set_input_callback(device_t &device, input_delegate &&cb) { downcast<adc083x_device &>(device).m_input_callback = std::move(cb); }
DECLARE_WRITE_LINE_MEMBER( cs_write );
DECLARE_WRITE_LINE_MEMBER( clk_write );
@@ -58,10 +59,12 @@ public:
DECLARE_READ_LINE_MEMBER( do_read );
protected:
+ adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits);
+
// device-level overrides
virtual void device_start() override;
- int32_t m_mux_bits;
+ const int32_t m_mux_bits;
private:
uint8_t conversion();
@@ -83,17 +86,16 @@ private:
int32_t m_bit;
int32_t m_output;
- adc083x_input_delegate m_input_callback;
+ input_delegate m_input_callback;
};
+
class adc0831_device : public adc083x_device
{
public:
adc0831_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
-extern const device_type ADC0831;
-
class adc0832_device : public adc083x_device
{
@@ -101,8 +103,6 @@ public:
adc0832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
-extern const device_type ADC0832;
-
class adc0834_device : public adc083x_device
{
@@ -110,8 +110,6 @@ public:
adc0834_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
-extern const device_type ADC0834;
-
class adc0838_device : public adc083x_device
{
@@ -119,7 +117,10 @@ public:
adc0838_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
-extern const device_type ADC0838;
+DECLARE_DEVICE_TYPE(ADC0831, adc0831_device)
+DECLARE_DEVICE_TYPE(ADC0832, adc0832_device)
+DECLARE_DEVICE_TYPE(ADC0834, adc0834_device)
+DECLARE_DEVICE_TYPE(ADC0838, adc0838_device)
-#endif /* __ADC083X_H__ */
+#endif // MAME_MACHINE_ADC083X_H