summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/snkwave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/snkwave.cpp')
-rw-r--r--src/devices/sound/snkwave.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/devices/sound/snkwave.cpp b/src/devices/sound/snkwave.cpp
index c7b4ff4ef5a..4a16946199b 100644
--- a/src/devices/sound/snkwave.cpp
+++ b/src/devices/sound/snkwave.cpp
@@ -12,17 +12,14 @@
#include "snkwave.h"
-#define CLOCK_SHIFT 8
-
-
-const device_type SNKWAVE = device_creator<snkwave_device>;
+DEFINE_DEVICE_TYPE(SNKWAVE, snkwave_device, "snkwave", "SNK Wave")
//-------------------------------------------------
// snkwave_device - constructor
//-------------------------------------------------
snkwave_device::snkwave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, SNKWAVE, "SNK Wave", tag, owner, clock, "snkwave", __FILE__),
+ : device_t(mconfig, SNKWAVE, tag, owner, clock),
device_sound_interface(mconfig, *this),
m_stream(nullptr),
m_external_clock(0),
@@ -31,7 +28,7 @@ snkwave_device::snkwave_device(const machine_config &mconfig, const char *tag, d
m_counter(0),
m_waveform_position(0)
{
- memset(m_waveform, 0, sizeof(m_waveform));
+ std::fill(std::begin(m_waveform), std::end(m_waveform), 0);
}
//-------------------------------------------------
@@ -58,7 +55,7 @@ void snkwave_device::device_start()
save_item(NAME(m_frequency));
save_item(NAME(m_counter));
save_item(NAME(m_waveform_position));
- save_pointer(NAME(m_waveform), SNKWAVE_WAVEFORM_LENGTH);
+ save_pointer(NAME(m_waveform), WAVEFORM_LENGTH);
}
@@ -96,7 +93,7 @@ void snkwave_device::sound_stream_update(sound_stream &stream, stream_sample_t *
{
out += m_waveform[m_waveform_position] * steps;
m_counter = m_frequency;
- m_waveform_position = (m_waveform_position + 1) & (SNKWAVE_WAVEFORM_LENGTH-1);
+ m_waveform_position = (m_waveform_position + 1) & (WAVEFORM_LENGTH-1);
loops -= steps;
}
else
@@ -144,10 +141,10 @@ WRITE8_MEMBER( snkwave_device::snkwave_w )
*/
void snkwave_device::update_waveform(unsigned int offset, uint8_t data)
{
- assert(offset < SNKWAVE_WAVEFORM_LENGTH/4);
+ assert(offset < WAVEFORM_LENGTH/4);
m_waveform[offset * 2] = ((data & 0x38) >> 3) << (12-CLOCK_SHIFT);
m_waveform[offset * 2 + 1] = ((data & 0x07) >> 0) << (12-CLOCK_SHIFT);
- m_waveform[SNKWAVE_WAVEFORM_LENGTH-2 - offset * 2] = ~m_waveform[offset * 2 + 1];
- m_waveform[SNKWAVE_WAVEFORM_LENGTH-1 - offset * 2] = ~m_waveform[offset * 2];
+ m_waveform[WAVEFORM_LENGTH-2 - offset * 2] = ~m_waveform[offset * 2 + 1];
+ m_waveform[WAVEFORM_LENGTH-1 - offset * 2] = ~m_waveform[offset * 2];
}