1 // license:BSD-3-Clause
2 // copyright-holders:Nicola Salmoria, Tormod Tjaberg, Mirko Buffoni,Lee Taylor, Valerio Verrando, Zsolt Vasvari,Aaron Giles,Jonathan Gevaryahu,hap,Robbbert
3 /***************************************************************************
4 
5     8080-based black and white sound hardware
6 
7 ****************************************************************************/
8 #ifndef MAME_AUDIO_8080BW_H
9 #define MAME_AUDIO_8080BW_H
10 
11 #pragma once
12 
13 #include "machine/timer.h"
14 #include "sound/discrete.h"
15 #include "sound/samples.h"
16 #include "sound/sn76477.h"
17 
18 class cane_audio_device : public device_t
19 {
20 public:
21 	cane_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0);
22 
23 	void sh_port_1_w(u8 data);
24 	void music_w(u8 data);
25 	void sn76477_en_w(u8 data);
26 	void sn76477_dis_w(u8 data);
27 
28 protected:
29 	virtual void device_add_mconfig(machine_config &config) override;
30 	virtual ioport_constructor device_input_ports() const override;
31 	virtual void device_start() override;
32 
33 private:
34 	TIMER_DEVICE_CALLBACK_MEMBER(vco_voltage_timer);
35 
36 	required_device<timer_device> m_vco_timer;
37 	required_device<sn76477_device> m_sn;
38 	required_device<discrete_sound_device> m_discrete;
39 
40 	attotime m_vco_rc_chargetime;
41 };
42 
43 DECLARE_DEVICE_TYPE(CANE_AUDIO, cane_audio_device)
44 
45 #endif // MAME_AUDIO_8080BW_H
46