Ardour  9.0-pre0-582-g084a23a80d
StepEditor Class Reference

#include <step_editor.h>

Inheritance diagram for StepEditor:
[legend]

Public Member Functions

 StepEditor (PublicEditor &, std::shared_ptr< ARDOUR::MidiTrack >, MidiTimeAxisView &)
 
virtual ~StepEditor ()
 
void step_entry_done ()
 
void check_step_edit ()
 
void step_edit_rest (Temporal::Beats beats)
 
void step_edit_beat_sync ()
 
void step_edit_bar_sync ()
 
int step_add_bank_change (uint8_t channel, uint8_t bank)
 
int step_add_program_change (uint8_t channel, uint8_t program)
 
int step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Temporal::Beats beat_duration)
 
void step_edit_sustain (Temporal::Beats beats)
 
bool step_edit_within_triplet () const
 
void step_edit_toggle_triplet ()
 
bool step_edit_within_chord () const
 
void step_edit_toggle_chord ()
 
void reset_step_edit_beat_pos ()
 
void resync_step_edit_to_edit_point ()
 
void move_step_edit_beat_pos (Temporal::Beats beats)
 
void set_step_edit_cursor_width (Temporal::Beats beats)
 
std::string name () const
 
void start_step_editing ()
 
void stop_step_editing ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 

Private Member Functions

void region_removed (std::weak_ptr< ARDOUR::Region >)
 
void playlist_changed ()
 
bool step_entry_hidden (GdkEventAny *)
 
void resync_step_edit_position ()
 
void prepare_step_edit_region ()
 

Private Attributes

Temporal::timepos_t step_edit_insert_position
 
Temporal::Beats step_edit_beat_pos
 
std::shared_ptr< ARDOUR::MidiRegionstep_edit_region
 
MidiRegionViewstep_edit_region_view
 
uint8_t _step_edit_triplet_countdown
 
bool _step_edit_within_chord
 
Temporal::Beats _step_edit_chord_duration
 
PBD::ScopedConnection step_edit_region_connection
 
PublicEditor_editor
 
std::shared_ptr< ARDOUR::MidiTrack_track
 
MidiTimeAxisView_mtv
 
int8_t last_added_pitch
 
Temporal::Beats last_added_end
 
sigc::connection delete_connection
 
sigc::connection hide_connection
 

Detailed Description

A StepEditor is an object which understands how to interact with the MidiTrack and MidiTimeAxisView APIs to make the changes required during step editing. However, it defers all GUI matters to the StepEntry class, which presents an interface to the user, and then calls StepEditor methods to make changes.

The StepEntry is a singleton, used over and over each time the user wants to step edit; the StepEditor is owned by a MidiTimeAxisView and re-used for any step editing in the MidiTrack for which the MidiTimeAxisView is a view.

Definition at line 55 of file step_editor.h.

Constructor & Destructor Documentation

◆ StepEditor()

StepEditor::StepEditor ( PublicEditor ,
std::shared_ptr< ARDOUR::MidiTrack ,
MidiTimeAxisView  
)

◆ ~StepEditor()

virtual StepEditor::~StepEditor ( )
virtual

Member Function Documentation

◆ check_step_edit()

void StepEditor::check_step_edit ( )

◆ move_step_edit_beat_pos()

void StepEditor::move_step_edit_beat_pos ( Temporal::Beats  beats)

◆ name()

std::string StepEditor::name ( ) const

◆ playlist_changed()

void StepEditor::playlist_changed ( )
private

◆ prepare_step_edit_region()

void StepEditor::prepare_step_edit_region ( )
private

◆ region_removed()

void StepEditor::region_removed ( std::weak_ptr< ARDOUR::Region )
private

◆ reset_step_edit_beat_pos()

void StepEditor::reset_step_edit_beat_pos ( )

◆ resync_step_edit_position()

void StepEditor::resync_step_edit_position ( )
private

◆ resync_step_edit_to_edit_point()

void StepEditor::resync_step_edit_to_edit_point ( )

◆ set_step_edit_cursor_width()

void StepEditor::set_step_edit_cursor_width ( Temporal::Beats  beats)

◆ start_step_editing()

void StepEditor::start_step_editing ( )

◆ step_add_bank_change()

int StepEditor::step_add_bank_change ( uint8_t  channel,
uint8_t  bank 
)

◆ step_add_note()

int StepEditor::step_add_note ( uint8_t  channel,
uint8_t  pitch,
uint8_t  velocity,
Temporal::Beats  beat_duration 
)

◆ step_add_program_change()

int StepEditor::step_add_program_change ( uint8_t  channel,
uint8_t  program 
)

◆ step_edit_bar_sync()

void StepEditor::step_edit_bar_sync ( )

◆ step_edit_beat_sync()

void StepEditor::step_edit_beat_sync ( )

◆ step_edit_rest()

void StepEditor::step_edit_rest ( Temporal::Beats  beats)

◆ step_edit_sustain()

void StepEditor::step_edit_sustain ( Temporal::Beats  beats)

◆ step_edit_toggle_chord()

void StepEditor::step_edit_toggle_chord ( )

◆ step_edit_toggle_triplet()

void StepEditor::step_edit_toggle_triplet ( )

◆ step_edit_within_chord()

bool StepEditor::step_edit_within_chord ( ) const

◆ step_edit_within_triplet()

bool StepEditor::step_edit_within_triplet ( ) const

◆ step_entry_done()

void StepEditor::step_entry_done ( )

◆ step_entry_hidden()

bool StepEditor::step_entry_hidden ( GdkEventAny )
private

◆ stop_step_editing()

void StepEditor::stop_step_editing ( )

Member Data Documentation

◆ _editor

PublicEditor& StepEditor::_editor
private

Definition at line 95 of file step_editor.h.

◆ _mtv

MidiTimeAxisView& StepEditor::_mtv
private

Definition at line 97 of file step_editor.h.

◆ _step_edit_chord_duration

Temporal::Beats StepEditor::_step_edit_chord_duration
private

Definition at line 93 of file step_editor.h.

◆ _step_edit_triplet_countdown

uint8_t StepEditor::_step_edit_triplet_countdown
private

Definition at line 91 of file step_editor.h.

◆ _step_edit_within_chord

bool StepEditor::_step_edit_within_chord
private

Definition at line 92 of file step_editor.h.

◆ _track

std::shared_ptr<ARDOUR::MidiTrack> StepEditor::_track
private

Definition at line 96 of file step_editor.h.

◆ delete_connection

sigc::connection StepEditor::delete_connection
private

Definition at line 101 of file step_editor.h.

◆ hide_connection

sigc::connection StepEditor::hide_connection
private

Definition at line 102 of file step_editor.h.

◆ last_added_end

Temporal::Beats StepEditor::last_added_end
private

Definition at line 99 of file step_editor.h.

◆ last_added_pitch

int8_t StepEditor::last_added_pitch
private

Definition at line 98 of file step_editor.h.

◆ step_edit_beat_pos

Temporal::Beats StepEditor::step_edit_beat_pos
private

Definition at line 88 of file step_editor.h.

◆ step_edit_insert_position

Temporal::timepos_t StepEditor::step_edit_insert_position
private

Definition at line 87 of file step_editor.h.

◆ step_edit_region

std::shared_ptr<ARDOUR::MidiRegion> StepEditor::step_edit_region
private

Definition at line 89 of file step_editor.h.

◆ step_edit_region_connection

PBD::ScopedConnection StepEditor::step_edit_region_connection
private

Definition at line 94 of file step_editor.h.

◆ step_edit_region_view

MidiRegionView* StepEditor::step_edit_region_view
private

Definition at line 90 of file step_editor.h.


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