Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::engine::session::Transport Class Reference

The Transport class represents the transport controls and state for an audio engine. More...

#include <src/engine/session/transport.h>

Inheritance diagram for zrythm::engine::session::Transport:
Collaboration diagram for zrythm::engine::session::Transport:

Public Types

enum class  Display { BBT , Time }
 Corrseponts to "transport-display" in the gsettings. More...
enum class  RecordingMode { OverwriteEvents , MergeEvents , Takes , TakesMuted }
 Recording mode for MIDI and audio. More...
using Position = dsp::Position
using PortFlow = dsp::PortFlow
Public Types inherited from zrythm::dsp::ITransport
enum class  PlayState { RollRequested , Rolling , PauseRequested , Paused }

Public Member Functions

 Transport (Project *parent=nullptr)
void setLoopEnabled (bool enabled)
Q_SIGNAL void loopEnabledChanged (bool enabled)
void setRecordEnabled (bool enabled)
Q_SIGNAL void recordEnabledChanged (bool enabled)
PlayState getPlayState () const
void setPlayState (PlayState state)
Q_SIGNAL void playStateChanged (PlayState state)
dsp::PlayheadQmlWrappergetPlayhead () const
PositionProxygetCuePosition () const
PositionProxygetLoopStartPosition () const
PositionProxygetLoopEndPosition () const
PositionProxygetPunchInPosition () const
PositionProxygetPunchOutPosition () const
dsp::Metronomemetronome () const
Q_INVOKABLE void moveBackward ()
Q_INVOKABLE void moveForward ()
signed_frame_t get_playhead_position_in_audio_thread () const noexcept override
 Get the playhead position.
nframes_t is_loop_point_met_in_audio_thread (const unsigned_frame_t g_start_frames, const nframes_t nframes) const noexcept override
 Returns the number of processable frames until and excluding the loop end point as a positive number (>= 1) if the loop point was met between g_start_frames and (g_start_frames + nframes), otherwise returns 0;.
std::pair< unsigned_frame_t, unsigned_frame_tget_loop_range_positions () const noexcept override
 Returns the loop range positions in samples.
std::pair< unsigned_frame_t, unsigned_frame_tget_punch_range_positions () const noexcept override
 Returns the punch recording range positions in samples.
PlayState get_play_state () const noexcept override
bool loop_enabled () const noexcept override
bool punch_enabled () const noexcept override
bool recording_enabled () const noexcept override
 Returns whether recording is enabled.
unsigned_frame_t recording_preroll_frames_remaining () const noexcept override
 Frames remaining to preroll (playing back some time earlier before actually recording/rolling).
unsigned_frame_t metronome_countin_frames_remaining () const noexcept override
 Frames remaining for metronome countin.
utils::Utf8String get_full_designation_for_port (const dsp::Port &port) const
Q_INVOKABLE bool isRolling () const
Q_INVOKABLE bool isPaused () const
bool is_looping () const
bool is_recording () const
void init_loaded (Project *project)
 Initialize loaded transport.
void prepare_audio_regions_for_stretch (std::optional< structure::arrangement::ArrangerObjectSpan > sel_var)
 Prepares audio regions for stretching (sets the Region.before_length).
void stretch_regions (std::optional< structure::arrangement::ArrangerObjectSpan > sel_var, bool with_fixed_ratio, double time_ratio, bool force)
 Stretches regions.
void set_punch_mode_enabled (bool enabled)
void set_start_playback_on_midi_input (bool enabled)
void set_recording_mode (RecordingMode mode)
void add_to_playhead_in_audio_thread (signed_frame_t nframes)
 Moves the playhead by the time corresponding to given samples, taking into account the loop end point.
Q_INVOKABLE void requestPause (bool with_wait)
 Request pause.
Q_INVOKABLE void requestRoll (bool with_wait)
 Request playback.
void set_play_state_rt_safe (PlayState state)
Position get_playhead_position_in_gui_thread () const
void move_backward (bool with_wait)
 Move to the previous snap point on the timeline.
void move_forward (bool with_wait)
 Move to the next snap point on the timeline.
bool can_user_move_playhead () const
 Returns whether the user can currently move the playhead (eg, via the UI or via scripts).
void move_playhead (double target_ticks, bool set_cue_point)
 Moves playhead to given pos.
void set_loop (bool enabled, bool with_wait)
 Enables or disables loop.
void goto_start_marker ()
 Moves the playhead to the start Marker.
void goto_end_marker ()
 Moves the playhead to the end Marker.
void goto_prev_marker ()
 Moves the playhead to the prev Marker.
void goto_next_marker ()
 Moves the playhead to the next Marker.
void update_positions (bool update_from_ticks)
 Updates the frames in all transport positions.
double get_ppqn () const
 Returns the PPQN (Parts/Ticks Per Quarter Note).
std::pair< Position, Position > get_range_positions () const
 Returns the selected range positions.
void set_has_range (bool has_range)
 Sets if the project has range and updates UI.
void set_range (bool range1, const Position *start_pos, const Position *pos, bool snap)
 Set the range1 or range2 position.
void set_loop_range (bool start, const Position *start_pos, const Position *pos, bool snap)
 Set the loop range.
bool position_is_inside_punch_range (Position pos)
void recalculate_total_bars (std::optional< structure::arrangement::ArrangerObjectSpan > objects=std::nullopt)
 Recalculates the total bars based on the last object's position.
void update_total_bars (int total_bars, bool fire_events)
 Updates the total bars.
void update_caches (int beats_per_bar, int beat_unit)
void set_recording (bool record, bool with_wait)
 Sets recording on/off.
Public Member Functions inherited from zrythm::dsp::ITransport
signed_frame_t get_playhead_position_after_adding_frames_in_audio_thread (const signed_frame_t current_playhead_position, const signed_frame_t frames_to_add) const noexcept
 Gets the playhead position, similarly to get_playhead_position(), except that it adjusts the new position if the loop end point was crossed.
bool has_recording_preroll_frames_remaining () const noexcept

Static Public Member Functions

static const char * preroll_count_to_str (PrerollCountBars bars)
static int preroll_count_bars_enum_to_int (PrerollCountBars bars)

Data Fields

int total_bars_ = 0
 Total bars in the song.
dsp::Playhead playhead_
 Playhead position.
utils::QObjectUniquePtr< dsp::PlayheadQmlWrapperplayhead_adapter_
utils::QObjectUniquePtr< dsp::Metronomemetronome_
 The metronome.
PositionProxycue_pos_ = nullptr
 Cue point position.
PositionProxyloop_start_pos_ = nullptr
 Loop start position.
PositionProxyloop_end_pos_ = nullptr
 Loop end position.
PositionProxypunch_in_pos_ = nullptr
 Punch in position.
PositionProxypunch_out_pos_ = nullptr
 Punch out position.
Position range_1_
 Selected range.
Position range_2_
bool has_range_ = false
 Whether range should be displayed or not.
int ticks_per_beat_ = 0
int ticks_per_bar_ = 0
int sixteenths_per_beat_ = 0
int sixteenths_per_bar_ = 0
nframes_t position_ = 0
 Transport position in frames.
std::atomic_bool loop_ = false
 Looping or not.
std::atomic_bool punch_mode_ = false
 Whether punch in/out mode is enabled.
std::atomic_bool recording_ = false
 Whether MIDI/audio recording is enabled (recording toggle in transport bar).
signed_frame_t recording_preroll_frames_remaining_ = 0
 Recording preroll frames remaining.
signed_frame_t countin_frames_remaining_ = 0
 Metronome countin frames remaining.
bool start_playback_on_midi_input_ = false
 Whether to start playback on MIDI input.
RecordingMode recording_mode_ = (RecordingMode) 0
double playhead_before_pause_ {}
 Position of the playhead before pausing, in ticks.
std::unique_ptr< dsp::MidiPortroll_
 Roll/play MIDI port.
std::unique_ptr< dsp::MidiPortstop_
 Stop MIDI port.
std::unique_ptr< dsp::MidiPortbackward_
 Backward MIDI port.
std::unique_ptr< dsp::MidiPortforward_
 Forward MIDI port.
std::unique_ptr< dsp::MidiPortloop_toggle_
 Loop toggle MIDI port.
std::unique_ptr< dsp::MidiPortrec_toggle_
 Rec toggle MIDI port.
PlayState play_state_ = {}
 Play state.
RtTimePoint last_manual_playhead_change_ = 0
 Last timestamp the playhead position was changed manually.
Projectproject_ = nullptr
 Pointer to owner, if any.

Properties

QML_ELEMENT bool loopEnabled
bool recordEnabled
PlayState playState
zrythm::dsp::PlayheadQmlWrapperplayhead
PositionProxycuePosition
PositionProxyloopStartPosition
PositionProxyloopEndPosition
PositionProxypunchInPosition
PositionProxypunchOutPosition
zrythm::dsp::Metronomemetronome

Friends

void init_from (Transport &obj, const Transport &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const Transport &transport)
void from_json (const nlohmann::json &j, Transport &transport)

Detailed Description

The Transport class represents the transport controls and state for an audio engine.

It manages playback, recording, and other transport-related functionality.

Definition at line 49 of file transport.h.

Member Typedef Documentation

◆ PortFlow

using zrythm::engine::session::Transport::PortFlow = dsp::PortFlow

Definition at line 123 of file transport.h.

◆ Position

using zrythm::engine::session::Transport::Position = dsp::Position

Definition at line 122 of file transport.h.

Member Enumeration Documentation

◆ Display

Corrseponts to "transport-display" in the gsettings.

Definition at line 72 of file transport.h.

◆ RecordingMode

Recording mode for MIDI and audio.

In all cases, only objects created during the current recording cycle can be changed. Previous objects shall not be touched.

Enumerator
OverwriteEvents 

Overwrite events in first recorded region.

In the case of MIDI, this will remove existing MIDI notes during recording.

In the case of audio, this will act exactly the same as RECORDING_MODE_TAKES_MUTED.

MergeEvents 

Merge events in existing region.

In the case of MIDI, this will append MIDI notes.

In the case of audio, this will act exactly the same as RECORDING_MODE_TAKES.

Takes 

Events get put in new lanes each time recording starts/resumes (eg, when looping or entering/leaving the punch range).

TakesMuted 

Same as RECORDING_MODE_TAKES, except previous takes (since recording started) are muted.

Definition at line 85 of file transport.h.

Member Function Documentation

◆ get_loop_range_positions()

std::pair< unsigned_frame_t, unsigned_frame_t > zrythm::engine::session::Transport::get_loop_range_positions ( ) const
inlineoverridevirtualnoexcept

Returns the loop range positions in samples.

Implements zrythm::dsp::ITransport.

Definition at line 189 of file transport.h.

◆ get_play_state()

PlayState zrythm::engine::session::Transport::get_play_state ( ) const
inlineoverridevirtualnoexcept

Implements zrythm::dsp::ITransport.

Definition at line 201 of file transport.h.

◆ get_playhead_position_in_audio_thread()

signed_frame_t zrythm::engine::session::Transport::get_playhead_position_in_audio_thread ( ) const
inlineoverridevirtualnoexcept

Get the playhead position.

Returns
The position in samples.

Implements zrythm::dsp::ITransport.

Definition at line 166 of file transport.h.

◆ get_punch_range_positions()

std::pair< unsigned_frame_t, unsigned_frame_t > zrythm::engine::session::Transport::get_punch_range_positions ( ) const
inlineoverridevirtualnoexcept

Returns the punch recording range positions in samples.

Implements zrythm::dsp::ITransport.

Definition at line 195 of file transport.h.

◆ init_loaded()

void zrythm::engine::session::Transport::init_loaded ( Project * project)

Initialize loaded transport.

Parameters
engineOwner engine, if any.
tempo_trackTempo track, used to initialize the caches. Only needed on the active project transport.

◆ is_loop_point_met_in_audio_thread()

nframes_t zrythm::engine::session::Transport::is_loop_point_met_in_audio_thread ( const unsigned_frame_t g_start_frames,
const nframes_t nframes ) const
inlineoverridevirtualnoexcept

Returns the number of processable frames until and excluding the loop end point as a positive number (>= 1) if the loop point was met between g_start_frames and (g_start_frames + nframes), otherwise returns 0;.

Implements zrythm::dsp::ITransport.

Definition at line 172 of file transport.h.

◆ is_looping()

bool zrythm::engine::session::Transport::is_looping ( ) const
inline

Definition at line 250 of file transport.h.

◆ is_recording()

bool zrythm::engine::session::Transport::is_recording ( ) const
inline

Definition at line 252 of file transport.h.

◆ isPaused()

Q_INVOKABLE bool zrythm::engine::session::Transport::isPaused ( ) const
inline

Definition at line 245 of file transport.h.

◆ isRolling()

Q_INVOKABLE bool zrythm::engine::session::Transport::isRolling ( ) const
inline

Definition at line 240 of file transport.h.

◆ loop_enabled()

bool zrythm::engine::session::Transport::loop_enabled ( ) const
inlineoverridevirtualnoexcept

Implements zrythm::dsp::ITransport.

Definition at line 203 of file transport.h.

◆ metronome()

dsp::Metronome * zrythm::engine::session::Transport::metronome ( ) const
inline

Definition at line 154 of file transport.h.

◆ metronome_countin_frames_remaining()

unsigned_frame_t zrythm::engine::session::Transport::metronome_countin_frames_remaining ( ) const
inlineoverridevirtualnoexcept

Frames remaining for metronome countin.

Note
Count-in happens while the playhead is not moving.

Implements zrythm::dsp::ITransport.

Definition at line 210 of file transport.h.

◆ move_playhead()

void zrythm::engine::session::Transport::move_playhead ( double target_ticks,
bool set_cue_point )

Moves playhead to given pos.

This is only for moves other than while playing and for looping while playing.

Should not be used during exporting.

Parameters
target_ticksPosition to set to.
set_cue_pointAlso set the cue point at this position.

◆ prepare_audio_regions_for_stretch()

void zrythm::engine::session::Transport::prepare_audio_regions_for_stretch ( std::optional< structure::arrangement::ArrangerObjectSpan > sel_var)

Prepares audio regions for stretching (sets the Region.before_length).

Parameters
selectionsIf nullptr, all audio regions are used. If non-nullptr, only the regions in the selections are used.

◆ preroll_count_bars_enum_to_int()

int zrythm::engine::session::Transport::preroll_count_bars_enum_to_int ( PrerollCountBars bars)
inlinestatic

Definition at line 222 of file transport.h.

◆ preroll_count_to_str()

const char * zrythm::engine::session::Transport::preroll_count_to_str ( PrerollCountBars bars)
inlinestatic

Definition at line 217 of file transport.h.

◆ punch_enabled()

bool zrythm::engine::session::Transport::punch_enabled ( ) const
inlineoverridevirtualnoexcept

Implements zrythm::dsp::ITransport.

Definition at line 204 of file transport.h.

◆ recalculate_total_bars()

void zrythm::engine::session::Transport::recalculate_total_bars ( std::optional< structure::arrangement::ArrangerObjectSpan > objects = std::nullopt)

Recalculates the total bars based on the last object's position.

Parameters
selIf given, only these objects will be checked, otherwise every object in the project will be checked.

FIXME: use signals to update the total bars.

◆ recording_enabled()

bool zrythm::engine::session::Transport::recording_enabled ( ) const
inlineoverridevirtualnoexcept

Returns whether recording is enabled.

Implements zrythm::dsp::ITransport.

Definition at line 205 of file transport.h.

◆ recording_preroll_frames_remaining()

unsigned_frame_t zrythm::engine::session::Transport::recording_preroll_frames_remaining ( ) const
inlineoverridevirtualnoexcept

Frames remaining to preroll (playing back some time earlier before actually recording/rolling).

Preroll is a number of frames earlier to start at before the punch in position during recording.

Implements zrythm::dsp::ITransport.

Definition at line 206 of file transport.h.

◆ requestPause()

Q_INVOKABLE void zrythm::engine::session::Transport::requestPause ( bool with_wait)

Request pause.

Must only be called in-between engine processing calls.

Parameters
with_waitWait for lock before requesting.

◆ requestRoll()

Q_INVOKABLE void zrythm::engine::session::Transport::requestRoll ( bool with_wait)

Request playback.

Must only be called in-between engine processing calls.

Parameters
with_waitWait for lock before requesting.

◆ set_loop_range()

void zrythm::engine::session::Transport::set_loop_range ( bool start,
const Position * start_pos,
const Position * pos,
bool snap )

Set the loop range.

Parameters
startTrue to set start pos, false to set end pos.

◆ set_range()

void zrythm::engine::session::Transport::set_range ( bool range1,
const Position * start_pos,
const Position * pos,
bool snap )

Set the range1 or range2 position.

Parameters
range1True to set range1, false to set range2.

◆ stretch_regions()

void zrythm::engine::session::Transport::stretch_regions ( std::optional< structure::arrangement::ArrangerObjectSpan > sel_var,
bool with_fixed_ratio,
double time_ratio,
bool force )

Stretches regions.

Parameters
selectionsIf nullptr, all regions are used. If non-nullptr, only the regions in the selections are used.
with_fixed_ratioStretch all regions with a fixed ratio. If this is off, the current region length and Region.before_length will be used to calculate the ratio.
forceForce stretching, regardless of musical mode.
Exceptions
ZrythmExceptionif stretching fails.

◆ update_positions()

void zrythm::engine::session::Transport::update_positions ( bool update_from_ticks)

Updates the frames in all transport positions.

Parameters
update_from_ticksWhether to update the positions based on ticks (true) or frames (false).

◆ from_json

void from_json ( const nlohmann::json & j,
Transport & transport )
friend

Definition at line 516 of file transport.h.

◆ to_json

void to_json ( nlohmann::json & j,
const Transport & transport )
friend

Definition at line 494 of file transport.h.

Field Documentation

◆ backward_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::backward_

Backward MIDI port.

Definition at line 646 of file transport.h.

◆ countin_frames_remaining_

signed_frame_t zrythm::engine::session::Transport::countin_frames_remaining_ = 0

Metronome countin frames remaining.

Definition at line 617 of file transport.h.

◆ cue_pos_

PositionProxy* zrythm::engine::session::Transport::cue_pos_ = nullptr

Cue point position.

Definition at line 561 of file transport.h.

◆ forward_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::forward_

Forward MIDI port.

Definition at line 649 of file transport.h.

◆ has_range_

bool zrythm::engine::session::Transport::has_range_ = false

Whether range should be displayed or not.

Definition at line 587 of file transport.h.

◆ last_manual_playhead_change_

RtTimePoint zrythm::engine::session::Transport::last_manual_playhead_change_ = 0

Last timestamp the playhead position was changed manually.

Definition at line 661 of file transport.h.

◆ loop_

std::atomic_bool zrythm::engine::session::Transport::loop_ = false

Looping or not.

Definition at line 604 of file transport.h.

◆ loop_end_pos_

PositionProxy* zrythm::engine::session::Transport::loop_end_pos_ = nullptr

Loop end position.

Definition at line 567 of file transport.h.

◆ loop_start_pos_

PositionProxy* zrythm::engine::session::Transport::loop_start_pos_ = nullptr

Loop start position.

Definition at line 564 of file transport.h.

◆ loop_toggle_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::loop_toggle_

Loop toggle MIDI port.

Definition at line 652 of file transport.h.

◆ metronome_

utils::QObjectUniquePtr<dsp::Metronome> zrythm::engine::session::Transport::metronome_

The metronome.

Definition at line 558 of file transport.h.

◆ play_state_

PlayState zrythm::engine::session::Transport::play_state_ = {}

Play state.

Definition at line 658 of file transport.h.

◆ playhead_

dsp::Playhead zrythm::engine::session::Transport::playhead_

Playhead position.

Definition at line 554 of file transport.h.

◆ playhead_adapter_

utils::QObjectUniquePtr<dsp::PlayheadQmlWrapper> zrythm::engine::session::Transport::playhead_adapter_

Definition at line 555 of file transport.h.

◆ playhead_before_pause_

double zrythm::engine::session::Transport::playhead_before_pause_ {}

Position of the playhead before pausing, in ticks.

Used by UndoableAction.

Definition at line 629 of file transport.h.

◆ position_

nframes_t zrythm::engine::session::Transport::position_ = 0

Transport position in frames.

FIXME is this used?

Definition at line 601 of file transport.h.

◆ project_

Project* zrythm::engine::session::Transport::project_ = nullptr

Pointer to owner, if any.

Definition at line 664 of file transport.h.

◆ punch_in_pos_

PositionProxy* zrythm::engine::session::Transport::punch_in_pos_ = nullptr

Punch in position.

Definition at line 570 of file transport.h.

◆ punch_mode_

std::atomic_bool zrythm::engine::session::Transport::punch_mode_ = false

Whether punch in/out mode is enabled.

Definition at line 607 of file transport.h.

◆ punch_out_pos_

PositionProxy* zrythm::engine::session::Transport::punch_out_pos_ = nullptr

Punch out position.

Definition at line 573 of file transport.h.

◆ range_1_

Position zrythm::engine::session::Transport::range_1_

Selected range.

This is 2 points instead of start/end because the 2nd point can be dragged past the 1st point so the order gets swapped.

Should be compared each time to see which one is first.

Definition at line 583 of file transport.h.

◆ range_2_

Position zrythm::engine::session::Transport::range_2_

Definition at line 584 of file transport.h.

◆ rec_toggle_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::rec_toggle_

Rec toggle MIDI port.

Definition at line 655 of file transport.h.

◆ recording_

std::atomic_bool zrythm::engine::session::Transport::recording_ = false

Whether MIDI/audio recording is enabled (recording toggle in transport bar).

Definition at line 611 of file transport.h.

◆ recording_mode_

RecordingMode zrythm::engine::session::Transport::recording_mode_ = (RecordingMode) 0

Definition at line 622 of file transport.h.

◆ recording_preroll_frames_remaining_

signed_frame_t zrythm::engine::session::Transport::recording_preroll_frames_remaining_ = 0

Recording preroll frames remaining.

Definition at line 614 of file transport.h.

◆ roll_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::roll_

Roll/play MIDI port.

Any event received on this port will request a roll.

Definition at line 636 of file transport.h.

◆ sixteenths_per_bar_

int zrythm::engine::session::Transport::sixteenths_per_bar_ = 0

Definition at line 595 of file transport.h.

◆ sixteenths_per_beat_

int zrythm::engine::session::Transport::sixteenths_per_beat_ = 0

Definition at line 594 of file transport.h.

◆ start_playback_on_midi_input_

bool zrythm::engine::session::Transport::start_playback_on_midi_input_ = false

Whether to start playback on MIDI input.

Definition at line 620 of file transport.h.

◆ stop_

std::unique_ptr<dsp::MidiPort> zrythm::engine::session::Transport::stop_

Stop MIDI port.

Any event received on this port will request a stop/pause.

Definition at line 643 of file transport.h.

◆ ticks_per_bar_

int zrythm::engine::session::Transport::ticks_per_bar_ = 0

Definition at line 593 of file transport.h.

◆ ticks_per_beat_

int zrythm::engine::session::Transport::ticks_per_beat_ = 0

Definition at line 592 of file transport.h.

◆ total_bars_

int zrythm::engine::session::Transport::total_bars_ = 0

Total bars in the song.

Definition at line 551 of file transport.h.

Property Documentation

◆ cuePosition

PositionProxy * zrythm::engine::session::Transport::cuePosition
read

Definition at line 57 of file transport.h.

◆ loopEnabled

QML_ELEMENT bool zrythm::engine::session::Transport::loopEnabled
readwrite

Definition at line 53 of file transport.h.

◆ loopEndPosition

PositionProxy * zrythm::engine::session::Transport::loopEndPosition
read

Definition at line 59 of file transport.h.

◆ loopStartPosition

PositionProxy * zrythm::engine::session::Transport::loopStartPosition
read

Definition at line 58 of file transport.h.

◆ metronome

zrythm::dsp::Metronome * zrythm::engine::session::Transport::metronome
read

Definition at line 62 of file transport.h.

◆ playhead

zrythm::dsp::PlayheadQmlWrapper * zrythm::engine::session::Transport::playhead
read

Definition at line 56 of file transport.h.

◆ playState

PlayState zrythm::engine::session::Transport::playState
readwrite

Definition at line 55 of file transport.h.

◆ punchInPosition

PositionProxy * zrythm::engine::session::Transport::punchInPosition
read

Definition at line 60 of file transport.h.

◆ punchOutPosition

PositionProxy * zrythm::engine::session::Transport::punchOutPosition
read

Definition at line 61 of file transport.h.

◆ recordEnabled

bool zrythm::engine::session::Transport::recordEnabled
readwrite

Definition at line 54 of file transport.h.


The documentation for this class was generated from the following file: