// license:BSD-3-Clause // copyright-holders:Couriersud /* * midi_module.h * */ #ifndef MAME_OSD_MODULES_MIDI_MIDI_MODULE_H #define MAME_OSD_MODULES_MIDI_MIDI_MODULE_H #pragma once #include "interface/midiport.h" #include #include #include #include //============================================================ // CONSTANTS //============================================================ #define OSD_MIDI_PROVIDER "midiprovider" class midi_module { public: struct port_info { std::string name; bool input; bool output; bool default_input; bool default_output; }; using port_info_vector = std::vector; virtual ~midi_module() = default; // specific routines virtual std::unique_ptr create_input(std::string_view name) = 0; virtual std::unique_ptr create_output(std::string_view name) = 0; virtual port_info_vector list_midi_ports() = 0; }; #endif // MAME_OSD_MODULES_MIDI_MIDI_MODULE_H