diff options
Diffstat (limited to 'src/mame/audio/fruitsamples.cpp')
-rw-r--r-- | src/mame/audio/fruitsamples.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/mame/audio/fruitsamples.cpp b/src/mame/audio/fruitsamples.cpp new file mode 100644 index 00000000000..3cf044babce --- /dev/null +++ b/src/mame/audio/fruitsamples.cpp @@ -0,0 +1,63 @@ +// license:BSD-3-Clause +// copyright-holders:SomeRandomGuyIdk +/*************************************************************************** + + Fruit machine mechanical sound samples + +***************************************************************************/ + +#include "emu.h" + +#include "fruitsamples.h" + +#include "speaker.h" + +namespace { + +const char *const fruit_sample_names[fruit_samples_device::SAMPLE_END + 2] = +{ + "*fruitsamples", + "payout", + "meter", + nullptr /* end of array */ +}; + +const uint8_t fruit_sample_channels[fruit_samples_device::SAMPLE_END] = +{ + 0, + 1 +}; + +} // anonymous namespace + + +DEFINE_DEVICE_TYPE(FRUIT_SAMPLES, fruit_samples_device, "fruit_samples", "Fruit machine mechanical samples") + +fruit_samples_device::fruit_samples_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, FRUIT_SAMPLES, tag, owner, clock), + m_samples(*this, "samples") +{ +} + +void fruit_samples_device::device_start() +{ + +} + +void fruit_samples_device::device_add_mconfig(machine_config &config) +{ + SPEAKER(config, "fruitmech").front_center(); + + SAMPLES(config, m_samples); + m_samples->set_channels(2); + m_samples->set_samples_names(fruit_sample_names); + m_samples->add_route(ALL_OUTPUTS, "fruitmech", 1.0); +} + +void fruit_samples_device::play(uint8_t index) +{ + if (index < SAMPLE_END) + m_samples->start(fruit_sample_channels[index], index); + else + fatalerror("fruit_samples_device: Sample index %u out of range\n", index); +} |