summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/midi
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2023-01-28 08:00:27 +1100
committer Vas Crabb <vas@vastheman.com>2023-01-28 08:16:53 +1100
commit2498f2b7cfb77f6a6d8d08f07075b7fa1c3ab63b (patch)
tree07f72639213d6ada8dd143be21e11178160a4894 /src/osd/modules/midi
parent536c6eeb55a7d5b69ef61cb79ec35c3e09a1458e (diff)
Miscellaneous fixes and refactoring:
ui/analogipt.cpp: Fixed bar graph display for fields with ranges that wrap through zero. emu/inputdev.cpp: Separateed analog axis deadzone and switch threshold settings, reduced default deadzone, and fixed a potential division by zero if the deadzone and saturation settings are equal. emu/ioport.cpp: Fixed behaviour of absolute analog fields where range passes through zero - it previously only worked for specific combinations of mask, minimum and default. Removed a workaround from universal/getaway.cpp that is no longer necessary. emu/input.cpp: Fixed unintuitive behaviour when an absolute field is assigned an OR combination of a relative control folled by an absolute control (e.g. Mouse X or Joy 1 LSX). Also fixed reading axis input sequences where an axis code is followed by a switch code (these can only be produced by manually editing configuration files, not through MAME's UI), and fixed the returned type when multiple relative axes sum to zero. osd/modules/input_dinput.cpp: Fixed hat switches being stuck in up position when input is suspended in the background taito/taitoio_yoke.cpp: Give throttle control a distinct type, and don't auto-centre. osd: Added option to select MIDI provider module (currently only PortMidi and the dummy module are available). Also put various things in namespaces, and fixed builds including SDL sound module with native Windows OSD. emu/validity.cpp: Added check to catch I/O port fields using UI input types. emu/inpttype.ipp: Renamed inputs that were causing confusion. "Bill" and "Track" were causing confusion for translators and hence likely causing confusion for many users, especially those who are not native English speakers. "Track" as an abbreviation for "Trackball" was frequently being mistranslated, e.g. in the sense of a CD track selection button or even in the sense of a railway track. There's no reason to abbreviate it. "Bill" in the US English sense as a banknote is too ambiguous and was causing confusion for translators. It's better to use the less ambiguous "Banknote". Corrected Greek translations of "Trackball". Don't run GitHub Actions on issue template changes.
Diffstat (limited to 'src/osd/modules/midi')
-rw-r--r--src/osd/modules/midi/none.cpp81
-rw-r--r--src/osd/modules/midi/portmidi.cpp26
2 files changed, 44 insertions, 63 deletions
diff --git a/src/osd/modules/midi/none.cpp b/src/osd/modules/midi/none.cpp
index 21837d1be3c..97333cb54de 100644
--- a/src/osd/modules/midi/none.cpp
+++ b/src/osd/modules/midi/none.cpp
@@ -6,87 +6,56 @@
Empty shim for systems not supporting midi / portmidi
-*******************************************************************c********/
+***************************************************************************/
#include "osdcore.h"
#include "modules/osdmodule.h"
#include "midi_module.h"
-class none_module : public osd_module, public midi_module
-{
-public:
+#include <memory>
- none_module() : osd_module(OSD_MIDI_PROVIDER, "pm"), midi_module()
- {
- }
- virtual ~none_module() { }
- virtual int init(const osd_options &options) override;
- virtual void exit() override;
-
- virtual std::unique_ptr<osd_midi_device> create_midi_device() override;
- virtual void list_midi_devices() override;
-};
+namespace osd {
+namespace {
class osd_midi_device_none : public osd_midi_device
{
public:
- virtual ~osd_midi_device_none() { }
- virtual bool open_input(const char *devname) override;
- virtual bool open_output(const char *devname) override;
- virtual void close() override;
- virtual bool poll() override;
- virtual int read(uint8_t *pOut) override;
- virtual void write(uint8_t data) override;
+ virtual bool open_input(const char *devname) override { return false; }
+ virtual bool open_output(const char *devname) override { return false; }
+ virtual void close() override { }
+ virtual bool poll() override { return false; }
+ virtual int read(uint8_t *pOut) override { return 0; }
+ virtual void write(uint8_t data) override { }
};
-std::unique_ptr<osd_midi_device> none_module::create_midi_device()
-{
- return std::make_unique<osd_midi_device_none>();
-}
-
-int none_module::init(const osd_options &options)
+class none_module : public osd_module, public midi_module
{
- return 0;
-}
+public:
+ none_module() : osd_module(OSD_MIDI_PROVIDER, "none"), midi_module() { }
-void none_module::exit()
-{
-}
+ virtual int init(const osd_options &options) override { return 0; }
+ virtual void exit() override { }
-void none_module::list_midi_devices()
-{
- osd_printf_warning("\nMIDI is not supported in this build\n");
-}
-
-bool osd_midi_device_none::open_input(const char *devname)
-{
- return false;
-}
+ virtual std::unique_ptr<osd_midi_device> create_midi_device() override;
+ virtual void list_midi_devices() override;
+};
-bool osd_midi_device_none::open_output(const char *devname)
+std::unique_ptr<osd_midi_device> none_module::create_midi_device()
{
- return false;
+ return std::make_unique<osd_midi_device_none>();
}
-void osd_midi_device_none::close()
+void none_module::list_midi_devices()
{
+ osd_printf_warning("\nMIDI is not supported in this configuration\n");
}
-bool osd_midi_device_none::poll()
-{
- return false;
-}
+} // anonymous namespace
-int osd_midi_device_none::read(uint8_t *pOut)
-{
- return 0;
-}
+} // namespace osd
-void osd_midi_device_none::write(uint8_t data)
-{
-}
-MODULE_DEFINITION(MIDI_NONE, none_module)
+MODULE_DEFINITION(MIDI_NONE, osd::none_module)
diff --git a/src/osd/modules/midi/portmidi.cpp b/src/osd/modules/midi/portmidi.cpp
index 73d965d854a..4661779c0bd 100644
--- a/src/osd/modules/midi/portmidi.cpp
+++ b/src/osd/modules/midi/portmidi.cpp
@@ -8,14 +8,22 @@
*******************************************************************c********/
+#include "midi_module.h"
+
+#include "modules/osdmodule.h"
+
#ifndef NO_USE_MIDI
#include <portmidi.h>
-#include "modules/osdmodule.h"
-#include "midi_module.h"
+
#include <cstdio>
#include <cstring>
+
+namespace osd {
+
+namespace {
+
class pm_module : public osd_module, public midi_module
{
public:
@@ -26,7 +34,7 @@ public:
virtual ~pm_module() { }
virtual int init(const osd_options &options)override;
- virtual void exit()override;
+ virtual void exit() override;
virtual std::unique_ptr<osd_midi_device> create_midi_device() override;
virtual void list_midi_devices() override;
@@ -464,12 +472,16 @@ void osd_midi_device_pm::write(uint8_t data)
}
}
+
+} // anonymous namespace
+
+} // namespace osd
+
#else
- #include "modules/osdmodule.h"
- #include "midi_module.h"
- MODULE_NOT_SUPPORTED(pm_module, OSD_MIDI_PROVIDER, "pm")
+namespace osd { namespace { MODULE_NOT_SUPPORTED(pm_module, OSD_MIDI_PROVIDER, "pm") } }
+
#endif
-MODULE_DEFINITION(MIDI_PM, pm_module)
+MODULE_DEFINITION(MIDI_PM, osd::pm_module)