MostlyHarmless 0.0.1
 
Loading...
Searching...
No Matches
mostlyharmless_TransportState.h
Go to the documentation of this file.
1//
2// Created by Syl Morrison on 25/09/2024.
3//
4
5#ifndef MOSTLYHARMLESS_MOSTLYHARMLESS_TRANSPORTSTATE_H
6#define MOSTLYHARMLESS_MOSTLYHARMLESS_TRANSPORTSTATE_H
7#include <clap/events.h>
8#include <optional>
9namespace mostly_harmless {
10
19 std::uint16_t numerator;
23 std::uint16_t denominator;
24 };
25
29 struct LoopInfo {
33 double startBeats;
37 double endBeats;
45 double endSeconds;
46 };
47
54 struct TransportState final {
58 explicit TransportState(const clap_event_transport_t* transportEvent);
59
63 std::optional<double> bpm{};
67 std::optional<double> positionBeats{};
71 std::optional<double> positionSeconds{};
75 std::optional<TimeSignature> timeSignature{};
79 bool isPlaying{ false };
83 bool isRecording{ false };
87 bool isLoopActive{ false };
91 std::optional<LoopInfo> loopInfo;
95 bool isWithinPreroll{ false };
96 };
97
98} // namespace mostly_harmless
99#endif // MOSTLYHARMLESS_MOSTLYHARMLESS_TRANSPORTSTATE_H
The top-level namespace, contains all things plugin-related.
Definition mostlyharmless_BusConfig.h:3
Convenience struct holding relevant positional info about a loop the host may currently be running.
Definition mostlyharmless_TransportState.h:29
double startSeconds
Definition mostlyharmless_TransportState.h:41
double endSeconds
Definition mostlyharmless_TransportState.h:45
double startBeats
Definition mostlyharmless_TransportState.h:33
double endBeats
Definition mostlyharmless_TransportState.h:37
Convenience struct holding the numerator and denominator of a time signature. Two ints in a trenchcoa...
Definition mostlyharmless_TransportState.h:15
std::uint16_t denominator
Definition mostlyharmless_TransportState.h:23
std::uint16_t numerator
Definition mostlyharmless_TransportState.h:19
bool isLoopActive
Definition mostlyharmless_TransportState.h:87
bool isWithinPreroll
Definition mostlyharmless_TransportState.h:95
std::optional< double > bpm
Definition mostlyharmless_TransportState.h:63
std::optional< TimeSignature > timeSignature
Definition mostlyharmless_TransportState.h:75
bool isPlaying
Definition mostlyharmless_TransportState.h:79
std::optional< double > positionBeats
Definition mostlyharmless_TransportState.h:67
std::optional< double > positionSeconds
Definition mostlyharmless_TransportState.h:71
bool isRecording
Definition mostlyharmless_TransportState.h:83
std::optional< LoopInfo > loopInfo
Definition mostlyharmless_TransportState.h:91