1 // license:BSD-3-Clause
2 // copyright-holders:Vas Crabb
3 
4 #include "emu.h"
5 #include "audio/cheekyms.h"
6 #include "audio/nl_cheekyms.h"
7 
8 #include "speaker.h"
9 
10 
11 DEFINE_DEVICE_TYPE(CHEEKY_MOUSE_AUDIO, cheekyms_audio_device, "cheekyms_audio", "Cheeky Mouse Sound Board")
12 
13 
cheekyms_audio_device(const machine_config & mconfig,const char * tag,device_t * owner,uint32_t clock)14 cheekyms_audio_device::cheekyms_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
15 	: device_t(mconfig, CHEEKY_MOUSE_AUDIO, tag, owner, clock)
16 	, m_mute(*this, "sound_nl:mute")
17 	, m_cheese(*this, "sound_nl:cheese")
18 	, m_music(*this, "sound_nl:music")
19 	, m_mouse(*this, "sound_nl:mouse")
20 	, m_hammer(*this, "sound_nl:hammer")
21 	, m_pest(*this, "sound_nl:pest")
22 	, m_mouse_dies(*this, "sound_nl:mouse_dies")
23 	, m_pest_dies(*this, "sound_nl:pest_dies")
24 	, m_coin_extra(*this, "sound_nl:coin_extra")
25 {
26 }
27 
28 
WRITE_LINE_MEMBER(cheekyms_audio_device::mute_w)29 WRITE_LINE_MEMBER(cheekyms_audio_device::mute_w)        { m_mute->write_line(state);       }
WRITE_LINE_MEMBER(cheekyms_audio_device::cheese_w)30 WRITE_LINE_MEMBER(cheekyms_audio_device::cheese_w)      { m_cheese->write_line(state);     }
WRITE_LINE_MEMBER(cheekyms_audio_device::music_w)31 WRITE_LINE_MEMBER(cheekyms_audio_device::music_w)       { m_music->write_line(state);      }
WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_w)32 WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_w)       { m_mouse->write_line(state);      }
WRITE_LINE_MEMBER(cheekyms_audio_device::hammer_w)33 WRITE_LINE_MEMBER(cheekyms_audio_device::hammer_w)      { m_hammer->write_line(state);     }
WRITE_LINE_MEMBER(cheekyms_audio_device::pest_w)34 WRITE_LINE_MEMBER(cheekyms_audio_device::pest_w)        { m_pest->write_line(state);       }
WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_dies_w)35 WRITE_LINE_MEMBER(cheekyms_audio_device::mouse_dies_w)  { m_mouse_dies->write_line(state); }
WRITE_LINE_MEMBER(cheekyms_audio_device::pest_dies_w)36 WRITE_LINE_MEMBER(cheekyms_audio_device::pest_dies_w)   { m_pest_dies->write_line(state);  }
WRITE_LINE_MEMBER(cheekyms_audio_device::coin_extra_w)37 WRITE_LINE_MEMBER(cheekyms_audio_device::coin_extra_w)  { m_coin_extra->write_line(state); }
38 
39 
device_add_mconfig(machine_config & config)40 void cheekyms_audio_device::device_add_mconfig(machine_config &config)
41 {
42 	SPEAKER(config, "mono").front_center();
43 
44 	NETLIST_SOUND(config, "sound_nl", 48000)
45 		.set_source(NETLIST_NAME(cheekyms))
46 		.add_route(ALL_OUTPUTS, "mono", 1.0);
47 
48 	NETLIST_LOGIC_INPUT(config, "sound_nl:mute",       "I_MUTE.IN",       0);
49 	NETLIST_LOGIC_INPUT(config, "sound_nl:cheese",     "I_CHEESE.IN",     0);
50 	NETLIST_LOGIC_INPUT(config, "sound_nl:music",      "I_MUSIC.IN",      0);
51 	NETLIST_LOGIC_INPUT(config, "sound_nl:mouse",      "I_MOUSE.IN",      0);
52 	NETLIST_LOGIC_INPUT(config, "sound_nl:hammer",     "I_HAMMER.IN",     0);
53 	NETLIST_LOGIC_INPUT(config, "sound_nl:pest",       "I_PEST.IN",       0);
54 	NETLIST_LOGIC_INPUT(config, "sound_nl:mouse_dies", "I_MOUSE_DIES.IN", 0);
55 	NETLIST_LOGIC_INPUT(config, "sound_nl:pest_dies",  "I_PEST_DIES.IN",  0);
56 	NETLIST_LOGIC_INPUT(config, "sound_nl:coin_extra", "I_COIN_EXTRA.IN", 0);
57 
58 	NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "VR1.2").set_mult_offset(30000.0 * 10.0 / 32768.0, 0.0);
59 }
60 
61 
device_start()62 void cheekyms_audio_device::device_start()
63 {
64 }
65