summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/osdepend.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/osdepend.h')
-rw-r--r--src/osd/osdepend.h45
1 files changed, 33 insertions, 12 deletions
diff --git a/src/osd/osdepend.h b/src/osd/osdepend.h
index 2587b93e560..0c22440009f 100644
--- a/src/osd/osdepend.h
+++ b/src/osd/osdepend.h
@@ -13,18 +13,24 @@
#pragma once
-#include "emucore.h"
-#include "osdcore.h"
-#include "unicode.h"
-#include "../frontend/mame/ui/menuitem.h"
+#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; // FIXME: including emu.h does not work because emu.h includes osdepend.h
+class input_type_entry;
+namespace osd { class midi_input_port; class midi_output_port; }
+namespace ui { class menu_item; }
//============================================================
@@ -60,10 +66,11 @@ public:
class osd_interface
{
public:
-
// general overridables
virtual void init(running_machine &machine) = 0;
virtual void update(bool skip_redraw) = 0;
+ virtual void input_update(bool relative_reset) = 0;
+ virtual void check_osd_inputs() = 0;
virtual void set_verbose(bool print_verbose) = 0;
// debugger overridables
@@ -71,12 +78,20 @@ 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(simple_list<input_type_entry> &typelist) = 0;
+ virtual void customize_input_type_list(std::vector<input_type_entry> &typelist) = 0;
// video overridables
virtual void add_audio_to_recording(const int16_t *buffer, int samples_this_frame) = 0;
@@ -89,8 +104,14 @@ public:
// command option overrides
virtual bool execute_command(const char *command) = 0;
- // midi interface
- virtual 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() { }