summaryrefslogtreecommitdiffstats
path: root/src/PortType.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/PortType.hpp')
-rw-r--r--src/PortType.hpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/PortType.hpp b/src/PortType.hpp
new file mode 100644
index 0000000..97ecaab
--- /dev/null
+++ b/src/PortType.hpp
@@ -0,0 +1,50 @@
+// Copyright 2007-2020 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef PATCHAGE_PORTTYPE_HPP
+#define PATCHAGE_PORTTYPE_HPP
+
+#include "warnings.hpp"
+
+PATCHAGE_DISABLE_FMT_WARNINGS
+#include <fmt/core.h>
+#include <fmt/ostream.h>
+PATCHAGE_RESTORE_WARNINGS
+
+#include <ostream>
+
+namespace patchage {
+
+enum class PortType {
+ jack_audio,
+ jack_midi,
+ alsa_midi,
+ jack_osc,
+ jack_cv,
+};
+
+inline std::ostream&
+operator<<(std::ostream& os, const PortType port_type)
+{
+ switch (port_type) {
+ case PortType::jack_audio:
+ return os << "JACK audio";
+ case PortType::jack_midi:
+ return os << "JACK MIDI";
+ case PortType::alsa_midi:
+ return os << "ALSA MIDI";
+ case PortType::jack_osc:
+ return os << "JACK OSC";
+ case PortType::jack_cv:
+ return os << "JACK CV";
+ }
+
+ PATCHAGE_UNREACHABLE();
+}
+
+} // namespace patchage
+
+template<>
+struct fmt::formatter<patchage::PortType> : fmt::ostream_formatter {};
+
+#endif // PATCHAGE_PORTTYPE_HPP