diff options
Diffstat (limited to 'src/osd/osdepend.h')
-rw-r--r-- | src/osd/osdepend.h | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/osd/osdepend.h b/src/osd/osdepend.h index 8f1d86bc816..0c22440009f 100644 --- a/src/osd/osdepend.h +++ b/src/osd/osdepend.h @@ -16,16 +16,20 @@ #include "emufwd.h" #include "bitmap.h" +#include "interface/audio.h" +#include "interface/midiport.h" +#include "interface/nethandler.h" #include <cstdint> #include <memory> #include <string> +#include <string_view> #include <vector> - +#include <array> // forward references class input_type_entry; -class osd_midi_device; +namespace osd { class midi_input_port; class midi_output_port; } namespace ui { class menu_item; } @@ -62,7 +66,6 @@ public: class osd_interface { public: - // general overridables virtual void init(running_machine &machine) = 0; virtual void update(bool skip_redraw) = 0; @@ -75,9 +78,17 @@ public: virtual void wait_for_debugger(device_t &device, bool firststop) = 0; // audio overridables - virtual void update_audio_stream(const int16_t *buffer, int samples_this_frame) = 0; - virtual void set_mastervolume(int attenuation) = 0; virtual bool no_sound() = 0; + virtual bool sound_external_per_channel_volume() = 0; + virtual bool sound_split_streams_per_source() = 0; + virtual uint32_t sound_get_generation() = 0; + virtual osd::audio_info sound_get_information() = 0; + virtual uint32_t sound_stream_sink_open(uint32_t node, std::string name, uint32_t rate) = 0; + virtual uint32_t sound_stream_source_open(uint32_t node, std::string name, uint32_t rate) = 0; + virtual void sound_stream_close(uint32_t id) = 0; + virtual void sound_stream_sink_update(uint32_t id, const int16_t *buffer, int samples_this_frame) = 0; + virtual void sound_stream_source_update(uint32_t id, int16_t *buffer, int samples_this_frame) = 0; + virtual void sound_stream_set_volumes(uint32_t id, const std::vector<float> &db) = 0; // input overridables virtual void customize_input_type_list(std::vector<input_type_entry> &typelist) = 0; @@ -93,28 +104,17 @@ public: // command option overrides virtual bool execute_command(const char *command) = 0; - // midi interface - virtual std::unique_ptr<osd_midi_device> create_midi_device() = 0; + // MIDI interface + virtual std::unique_ptr<osd::midi_input_port> create_midi_input(std::string_view name) = 0; + virtual std::unique_ptr<osd::midi_output_port> create_midi_output(std::string_view name) = 0; + virtual std::vector<osd::midi_port_info> list_midi_ports() = 0; + + // network interface + virtual std::unique_ptr<osd::network_device> open_network_device(int id, osd::network_handler &handler) = 0; + virtual std::vector<osd::network_device_info> list_network_devices() = 0; protected: virtual ~osd_interface() { } }; - -/*************************************************************************** - MIDI I/O INTERFACES -***************************************************************************/ - -class osd_midi_device -{ -public: - virtual ~osd_midi_device() { } - virtual bool open_input(const char *devname) = 0; - virtual bool open_output(const char *devname) = 0; - virtual void close() = 0; - virtual bool poll() = 0; - virtual int read(uint8_t *pOut) = 0; - virtual void write(uint8_t data) = 0; -}; - #endif // MAME_OSD_OSDEPEND_H |