1 // license:BSD-3-Clause 2 // copyright-holders:Sandro Ronco 3 /***************************************************************************** 4 * 5 * includes/tvc.h 6 * 7 ****************************************************************************/ 8 9 #ifndef MAME_AUDIO_TVC_H 10 #define MAME_AUDIO_TVC_H 11 12 #pragma once 13 14 15 //************************************************************************** 16 // TYPE DEFINITIONS 17 //************************************************************************** 18 19 // ======================> tvc_sound_device 20 21 class tvc_sound_device : public device_t, public device_sound_interface 22 { 23 public: 24 // construction/destruction 25 tvc_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 26 sndint_wr_callback()27 auto sndint_wr_callback() { return m_write_sndint.bind(); } 28 29 void write(offs_t offset, uint8_t data); 30 void reset_divider(); 31 32 protected: 33 // device-level overrides 34 virtual void device_start() override; 35 virtual void device_reset() override; 36 virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; 37 virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; 38 39 private: 40 static const device_timer_id TIMER_SNDINT = 0; 41 42 sound_stream * m_stream; 43 int m_freq; 44 int m_enabled; 45 int m_volume; 46 int m_incr; 47 int m_signal; 48 uint8_t m_ports[3]; 49 emu_timer * m_sndint_timer; 50 devcb_write_line m_write_sndint; 51 }; 52 53 // device type definition 54 DECLARE_DEVICE_TYPE(TVC_SOUND, tvc_sound_device) 55 56 #endif // MAME_AUDIO_TVC_H 57