Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
test_input.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstdint>
6#include <optional>
7#include <string>
8#include <utility>
9
10namespace pulp::inspect {
11
12enum class MidiTestInputKind : std::uint8_t {
15};
16
19 std::uint8_t channel = 0;
20 std::uint8_t note = 0;
21 std::uint8_t velocity = 0;
22};
23
25 std::optional<bool> playing;
26 std::optional<std::int64_t> position_samples;
27 std::optional<double> tempo_bpm;
28};
29
31 bool applied = false;
32 std::string error_code;
33 std::string error_message;
34
36 return {true, {}, {}};
37 }
38 static TestInputApplyResult failure(std::string code, std::string message) {
39 return {false, std::move(code), std::move(message)};
40 }
41};
42
49
51 public:
52 virtual ~InspectorTestInputSource() = default;
53
60 virtual void release_test_input(TestInputReleaseReason reason) noexcept = 0;
61};
62
64 public:
66 source_ = source;
67 }
69 return source_;
70 }
71
73 void release(TestInputReleaseReason reason) const noexcept;
74
75 private:
76 InspectorTestInputSource* source_ = nullptr;
77};
78
79} // namespace pulp::inspect
Definition test_input.hpp:50
virtual TestInputApplyResult inject_midi(const MidiTestInput &input)=0
virtual void release_test_input(TestInputReleaseReason reason) noexcept=0
End controller-scoped input without bypassing the normal host path.
virtual TestInputApplyResult set_transport(const StandaloneTransportTestInput &input)=0
Definition test_input.hpp:63
InspectorTestInputSource * source() const
Definition test_input.hpp:68
void set_source(InspectorTestInputSource *source)
Definition test_input.hpp:65
void release(TestInputReleaseReason reason) const noexcept
InspectorMessage handle(const InspectorMessage &request) const
Definition agent_context.hpp:7
MidiTestInputKind
Definition test_input.hpp:12
@ NoteOn
Definition test_input.hpp:13
@ NoteOff
Definition test_input.hpp:14
TestInputReleaseReason
Definition test_input.hpp:43
@ ControllerExpired
Definition test_input.hpp:45
@ ClientDisconnected
Definition test_input.hpp:46
@ SessionTeardown
Definition test_input.hpp:47
@ ControllerReleased
Definition test_input.hpp:44
A single inspector protocol message (request, response, or event).
Definition protocol.hpp:18
Definition test_input.hpp:17
std::uint8_t channel
Definition test_input.hpp:19
std::uint8_t velocity
Definition test_input.hpp:21
std::uint8_t note
Definition test_input.hpp:20
MidiTestInputKind kind
Definition test_input.hpp:18
std::optional< double > tempo_bpm
Definition test_input.hpp:27
std::optional< bool > playing
Definition test_input.hpp:25
std::optional< std::int64_t > position_samples
Definition test_input.hpp:26
Definition test_input.hpp:30
bool applied
Definition test_input.hpp:31
std::string error_message
Definition test_input.hpp:33
static TestInputApplyResult failure(std::string code, std::string message)
Definition test_input.hpp:38
std::string error_code
Definition test_input.hpp:32
static TestInputApplyResult success()
Definition test_input.hpp:35