ardour
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
ARDOUR::MidiRegion Class Reference

#include <midi_region.h>

Inheritance diagram for ARDOUR::MidiRegion:
ARDOUR::Region ARDOUR::SessionObject boost::enable_shared_from_this< Region > ARDOUR::Readable ARDOUR::Trimmable ARDOUR::Movable ARDOUR::SessionHandleRef PBD::StatefulDestructible PBD::ScopedConnectionList PBD::Stateful PBD::Destructible

Public Member Functions

 ~MidiRegion ()
 
boost::shared_ptr< MidiRegionclone (std::string path=std::string()) const
 
boost::shared_ptr< MidiRegionclone (boost::shared_ptr< MidiSource >) const
 
boost::shared_ptr< MidiSourcemidi_source (uint32_t n=0) const
 
virtual framecnt_t read (Sample *, framepos_t, framecnt_t, int) const
 
virtual framecnt_t readable_length () const
 
framecnt_t read_at (Evoral::EventSink< framepos_t > &dst, framepos_t position, framecnt_t dur, uint32_t chan_n=0, NoteMode mode=Sustained, MidiStateTracker *tracker=0, MidiChannelFilter *filter=0) const
 
framecnt_t master_read_at (MidiRingBuffer< framepos_t > &dst, framepos_t position, framecnt_t dur, uint32_t chan_n=0, NoteMode mode=Sustained) const
 
XMLNodestate ()
 
int set_state (const XMLNode &, int version)
 
int separate_by_channel (ARDOUR::Session &, std::vector< boost::shared_ptr< Region > > &) const
 
boost::shared_ptr
< Evoral::Control
control (const Evoral::Parameter &id, bool create=false)
 
virtual boost::shared_ptr
< const Evoral::Control
control (const Evoral::Parameter &id) const
 
boost::shared_ptr< MidiModelmodel ()
 
boost::shared_ptr< const
MidiModel
model () const
 
void fix_negative_start ()
 
void transpose (int)
 
- Public Member Functions inherited from ARDOUR::Region
virtual ~Region ()
 
bool set_name (const std::string &str)
 
const DataTypedata_type () const
 
AnalysisFeatureList transients ()
 
framepos_t position () const
 
framepos_t start () const
 
framecnt_t length () const
 
layer_t layer () const
 
framecnt_t source_length (uint32_t n) const
 
uint32_t max_source_level () const
 
framepos_t last_position () const
 
framecnt_t last_length () const
 
framepos_t ancestral_start () const
 
framecnt_t ancestral_length () const
 
float stretch () const
 
float shift () const
 
void set_ancestral_data (framepos_t start, framecnt_t length, float stretch, float shift)
 
frameoffset_t sync_offset (int &dir) const
 
framepos_t sync_position () const
 
framepos_t sync_point () const
 
framepos_t adjust_to_sync (framepos_t) const
 
framepos_t first_frame () const
 
framepos_t last_frame () const
 
framepos_t earliest_possible_position () const
 
framepos_t latest_possible_frame () const
 
Evoral::Range< framepos_tlast_range () const
 
Evoral::Range< framepos_trange () const
 
bool hidden () const
 
bool muted () const
 
bool opaque () const
 
bool locked () const
 
bool position_locked () const
 
bool video_locked () const
 
bool valid_transients () const
 
bool automatic () const
 
bool whole_file () const
 
bool captured () const
 
bool can_move () const
 
bool sync_marked () const
 
bool external () const
 
bool import () const
 
Trimmable::CanTrim can_trim () const
 
PositionLockStyle position_lock_style () const
 
void set_position_lock_style (PositionLockStyle ps)
 
void recompute_position_from_lock_style ()
 
void suspend_property_changes ()
 
bool covers (framepos_t frame) const
 
Evoral::OverlapType coverage (framepos_t start, framepos_t end) const
 
bool equivalent (boost::shared_ptr< const Region >) const
 
bool size_equivalent (boost::shared_ptr< const Region >) const
 
bool overlap_equivalent (boost::shared_ptr< const Region >) const
 
bool region_list_equivalent (boost::shared_ptr< const Region >) const
 
bool source_equivalent (boost::shared_ptr< const Region >) const
 
bool any_source_equivalent (boost::shared_ptr< const Region >) const
 
bool uses_source (boost::shared_ptr< const Source >) const
 
std::string source_string () const
 
void set_length (framecnt_t)
 
void set_start (framepos_t)
 
void set_position (framepos_t)
 
void special_set_position (framepos_t)
 
void nudge_position (frameoffset_t)
 
bool at_natural_position () const
 
void move_to_natural_position ()
 
void move_start (frameoffset_t distance)
 
void trim_front (framepos_t new_position)
 
void trim_end (framepos_t new_position)
 
void trim_to (framepos_t position, framecnt_t length)
 
virtual void fade_range (framepos_t, framepos_t)
 
void cut_front (framepos_t new_position)
 
void cut_end (framepos_t new_position)
 
void set_layer (layer_t l)
 
void raise ()
 
void lower ()
 
void raise_to_top ()
 
void lower_to_bottom ()
 
void set_sync_position (framepos_t n)
 
void clear_sync_position ()
 
void set_hidden (bool yn)
 
void set_muted (bool yn)
 
void set_whole_file (bool yn)
 
void set_automatic (bool yn)
 
void set_opaque (bool yn)
 
void set_locked (bool yn)
 
void set_video_locked (bool yn)
 
void set_position_locked (bool yn)
 
int apply (Filter &, Progress *progress=0)
 
boost::shared_ptr
< ARDOUR::Playlist
playlist () const
 
virtual void set_playlist (boost::weak_ptr< ARDOUR::Playlist >)
 
void source_deleted (boost::weak_ptr< Source >)
 
bool is_compound () const
 
boost::shared_ptr< Sourcesource (uint32_t n=0) const
 
uint32_t n_channels () const
 
const SourceListsources () const
 
const SourceListmaster_sources () const
 
std::vector< std::string > master_source_names ()
 
void set_master_sources (const SourceList &)
 
XMLNodeget_state ()
 
virtual boost::shared_ptr< Regionget_parent () const
 
uint64_t layering_index () const
 
void set_layering_index (uint64_t when)
 
virtual bool is_dependent () const
 
virtual bool depends_on (boost::shared_ptr< Region >) const
 
virtual void add_transient (framepos_t)
 
virtual int update_transient (framepos_t, framepos_t)
 
virtual void remove_transient (framepos_t)
 
virtual int set_transients (AnalysisFeatureList &)
 
virtual int get_transients (AnalysisFeatureList &, bool force_new=false)
 
virtual int adjust_transients (frameoffset_t)
 
void invalidate_transients ()
 
void drop_sources ()
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (Command *) const
 
virtual void rdiff (std::vector< Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Readable
 Readable ()
 
virtual ~Readable ()
 
- Public Member Functions inherited from ARDOUR::Trimmable
 Trimmable ()
 
virtual ~Trimmable ()
 
- Public Member Functions inherited from ARDOUR::Movable
 Movable ()
 
bool locked () const
 

Static Public Member Functions

static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Region
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 

Protected Member Functions

virtual bool can_trim_start_before_source_start () const
 
- Protected Member Functions inherited from ARDOUR::Region
 Region (const SourceList &srcs)
 
 Region (boost::shared_ptr< const Region >)
 
 Region (boost::shared_ptr< const Region >, frameoffset_t start_offset)
 
 Region (boost::shared_ptr< const Region >, const SourceList &)
 
 Region (Session &s, framepos_t start, framecnt_t length, const std::string &name, DataType)
 
void send_change (const PBD::PropertyChange &)
 
virtual int _set_state (const XMLNode &, int version, PBD::PropertyChange &what_changed, bool send_signal)
 
void post_set (const PBD::PropertyChange &)
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &)
 
PropertyChange set_values (XMLNode const &)
 

Private Member Functions

 MidiRegion (const SourceList &)
 
 MidiRegion (boost::shared_ptr< const MidiRegion >)
 
 MidiRegion (boost::shared_ptr< const MidiRegion >, frameoffset_t offset)
 
framecnt_t _read_at (const SourceList &, Evoral::EventSink< framepos_t > &dst, framepos_t position, framecnt_t dur, uint32_t chan_n=0, NoteMode mode=Sustained, MidiStateTracker *tracker=0, MidiChannelFilter *filter=0) const
 
void register_properties ()
 
void post_set (const PBD::PropertyChange &)
 
void recompute_at_start ()
 
void recompute_at_end ()
 
void set_position_internal (framepos_t pos, bool allow_bbt_recompute)
 
void set_length_internal (framecnt_t len)
 
void set_start_internal (framecnt_t)
 
void update_length_beats ()
 
void model_changed ()
 
void model_automation_state_changed (Evoral::Parameter const &)
 
void set_start_beats_from_start_frames ()
 
void update_after_tempo_map_change ()
 

Private Attributes

PBD::Property< Evoral::Beats_start_beats
 
PBD::Property< Evoral::Beats_length_beats
 
std::set< Evoral::Parameter_filtered_parameters
 parameters that we ask our source not to return when reading More...
 
PBD::ScopedConnection _model_connection
 
PBD::ScopedConnection _source_connection
 
PBD::ScopedConnection _model_contents_connection
 
double _last_length_beats
 

Friends

class RegionFactory
 

Additional Inherited Members

- Public Types inherited from ARDOUR::Region
typedef std::vector
< boost::shared_ptr< Source > > 
SourceList
 
- Public Types inherited from ARDOUR::Trimmable
enum  CanTrim {
  FrontTrimEarlier = 0x1, FrontTrimLater = 0x2, EndTrimEarlier = 0x4, EndTrimLater = 0x8,
  TopTrimUp = 0x10, TopTrimDown = 0x20, BottomTrimUp = 0x40, BottomTrimDown = 0x80
}
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 
- Static Public Attributes inherited from ARDOUR::Region
static PBD::Signal2< void,
boost::shared_ptr
< ARDOUR::Region >, const
PBD::PropertyChange & > 
RegionPropertyChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 
- Protected Attributes inherited from ARDOUR::Region
DataType _type
 
PBD::Property< bool > _sync_marked
 
PBD::Property< bool > _left_of_split
 
PBD::Property< bool > _right_of_split
 
PBD::Property< bool > _valid_transients
 
PBD::Property< framepos_t_start
 
PBD::Property< framecnt_t_length
 
PBD::Property< framepos_t_position
 
PBD::Property< framepos_t_sync_position
 
SourceList _sources
 
SourceList _master_sources
 
AnalysisFeatureList _transients
 
boost::weak_ptr< ARDOUR::Playlist_playlist
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Detailed Description

Definition at line 57 of file midi_region.h.

Constructor & Destructor Documentation

MidiRegion::~MidiRegion ( )

Definition at line 123 of file midi_region.cc.

MidiRegion::MidiRegion ( const SourceList srcs)
private

Definition at line 78 of file midi_region.cc.

MidiRegion::MidiRegion ( boost::shared_ptr< const MidiRegion other)
private

Definition at line 91 of file midi_region.cc.

MidiRegion::MidiRegion ( boost::shared_ptr< const MidiRegion other,
frameoffset_t  offset 
)
private

Create a new MidiRegion that is part of an existing one

Definition at line 105 of file midi_region.cc.

Member Function Documentation

framecnt_t MidiRegion::_read_at ( const SourceList ,
Evoral::EventSink< framepos_t > &  dst,
framepos_t  position,
framecnt_t  dur,
uint32_t  chan_n = 0,
NoteMode  mode = Sustained,
MidiStateTracker tracker = 0,
MidiChannelFilter filter = 0 
) const
private

Definition at line 251 of file midi_region.cc.

virtual bool ARDOUR::MidiRegion::can_trim_start_before_source_start ( ) const
inlineprotectedvirtual

Reimplemented from ARDOUR::Region.

Definition at line 108 of file midi_region.h.

boost::shared_ptr<MidiRegion> ARDOUR::MidiRegion::clone ( std::string  path = std::string()) const
boost::shared_ptr< MidiRegion > MidiRegion::clone ( boost::shared_ptr< MidiSource newsrc) const

Definition at line 144 of file midi_region.cc.

boost::shared_ptr< Evoral::Control > MidiRegion::control ( const Evoral::Parameter id,
bool  create = false 
)
virtual

Implements ARDOUR::Region.

Definition at line 366 of file midi_region.cc.

boost::shared_ptr< const Evoral::Control > MidiRegion::control ( const Evoral::Parameter id) const
virtual

Implements ARDOUR::Region.

Definition at line 372 of file midi_region.cc.

void MidiRegion::fix_negative_start ( )

This is called when a trim drag has resulted in a -ve _start time for this region. Fix it up by adding some empty space to the source.

Definition at line 452 of file midi_region.cc.

void MidiRegion::make_property_quarks ( )
static

Definition at line 62 of file midi_region.cc.

framecnt_t MidiRegion::master_read_at ( MidiRingBuffer< framepos_t > &  dst,
framepos_t  position,
framecnt_t  dur,
uint32_t  chan_n = 0,
NoteMode  mode = Sustained 
) const

Definition at line 245 of file midi_region.cc.

boost::shared_ptr< MidiSource > MidiRegion::midi_source ( uint32_t  n = 0) const

Definition at line 390 of file midi_region.cc.

boost::shared_ptr< MidiModel > MidiRegion::model ( )

Definition at line 378 of file midi_region.cc.

boost::shared_ptr< const MidiModel > MidiRegion::model ( ) const

Definition at line 384 of file midi_region.cc.

void MidiRegion::model_automation_state_changed ( Evoral::Parameter const &  p)
private

Definition at line 424 of file midi_region.cc.

void MidiRegion::model_changed ( )
private

Definition at line 397 of file midi_region.cc.

void MidiRegion::post_set ( const PBD::PropertyChange pc)
privatevirtual

Reimplemented from PBD::Stateful.

Definition at line 173 of file midi_region.cc.

virtual framecnt_t ARDOUR::MidiRegion::read ( Sample ,
framepos_t  ,
framecnt_t  ,
int   
) const
inlinevirtual

Implements ARDOUR::Readable.

Definition at line 70 of file midi_region.h.

framecnt_t MidiRegion::read_at ( Evoral::EventSink< framepos_t > &  dst,
framepos_t  position,
framecnt_t  dur,
uint32_t  chan_n = 0,
NoteMode  mode = Sustained,
MidiStateTracker tracker = 0,
MidiChannelFilter filter = 0 
) const

Definition at line 233 of file midi_region.cc.

virtual framecnt_t ARDOUR::MidiRegion::readable_length ( ) const
inlinevirtual

Implements ARDOUR::Readable.

Definition at line 71 of file midi_region.h.

void MidiRegion::recompute_at_end ( )
privatevirtual

Implements ARDOUR::Region.

Definition at line 339 of file midi_region.cc.

void MidiRegion::recompute_at_start ( )
privatevirtual

Implements ARDOUR::Region.

Definition at line 347 of file midi_region.cc.

void MidiRegion::register_properties ( )
private

Definition at line 71 of file midi_region.cc.

int MidiRegion::separate_by_channel ( ARDOUR::Session ,
std::vector< boost::shared_ptr< Region > > &   
) const
virtual

Reimplemented from ARDOUR::Region.

Definition at line 359 of file midi_region.cc.

void MidiRegion::set_length_internal ( framecnt_t  len)
privatevirtual

Reimplemented from ARDOUR::Region.

Definition at line 192 of file midi_region.cc.

void MidiRegion::set_position_internal ( framepos_t  pos,
bool  allow_bbt_recompute 
)
privatevirtual

Reimplemented from ARDOUR::Region.

Definition at line 217 of file midi_region.cc.

void MidiRegion::set_start_beats_from_start_frames ( )
private

Definition at line 185 of file midi_region.cc.

void MidiRegion::set_start_internal ( framecnt_t  s)
privatevirtual

Reimplemented from ARDOUR::Region.

Definition at line 470 of file midi_region.cc.

int MidiRegion::set_state ( const XMLNode node,
int  version 
)
virtual

Reimplemented from ARDOUR::Region.

Definition at line 327 of file midi_region.cc.

XMLNode & MidiRegion::state ( )
virtual

Reimplemented from ARDOUR::Region.

Definition at line 321 of file midi_region.cc.

void MidiRegion::transpose ( int  semitones)

Transpose the notes in this region by a given number of semitones

Definition at line 463 of file midi_region.cc.

void MidiRegion::update_after_tempo_map_change ( )
privatevirtual

Reimplemented from ARDOUR::Region.

Definition at line 199 of file midi_region.cc.

void MidiRegion::update_length_beats ( )
private

Definition at line 210 of file midi_region.cc.

Friends And Related Function Documentation

friend class RegionFactory
friend

Definition at line 113 of file midi_region.h.

Member Data Documentation

std::set<Evoral::Parameter> ARDOUR::MidiRegion::_filtered_parameters
private

parameters that we ask our source not to return when reading

Definition at line 146 of file midi_region.h.

double ARDOUR::MidiRegion::_last_length_beats
private

Definition at line 151 of file midi_region.h.

PBD::Property<Evoral::Beats> ARDOUR::MidiRegion::_length_beats
private

Definition at line 115 of file midi_region.h.

PBD::ScopedConnection ARDOUR::MidiRegion::_model_connection
private

Definition at line 147 of file midi_region.h.

PBD::ScopedConnection ARDOUR::MidiRegion::_model_contents_connection
private

Definition at line 149 of file midi_region.h.

PBD::ScopedConnection ARDOUR::MidiRegion::_source_connection
private

Definition at line 148 of file midi_region.h.

PBD::Property<Evoral::Beats> ARDOUR::MidiRegion::_start_beats
private

Definition at line 114 of file midi_region.h.


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