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

#include <midi_diskstream.h>

Inheritance diagram for ARDOUR::MidiDiskstream:
ARDOUR::Diskstream ARDOUR::SessionObject ARDOUR::PublicDiskstream ARDOUR::SessionHandleRef PBD::StatefulDestructible PBD::ScopedConnectionList PBD::Stateful PBD::Destructible

Public Member Functions

 MidiDiskstream (Session &, const std::string &name, Diskstream::Flag f=Recordable)
 
 MidiDiskstream (Session &, const XMLNode &)
 
 ~MidiDiskstream ()
 
float playback_buffer_load () const
 
float capture_buffer_load () const
 
void get_playback (MidiBuffer &dst, framecnt_t)
 
void flush_playback (framepos_t, framepos_t)
 
void set_record_enabled (bool yn)
 
void reset_tracker ()
 
void resolve_tracker (Evoral::EventSink< framepos_t > &buffer, framepos_t time)
 
boost::shared_ptr< MidiPlaylistmidi_playlist ()
 
int use_playlist (boost::shared_ptr< Playlist >)
 
int use_new_playlist ()
 
int use_copy_playlist ()
 
bool set_name (std::string const &)
 
bool set_write_source_name (const std::string &str)
 
XMLNodeget_state (void)
 
int set_state (const XMLNode &, int version)
 
void ensure_input_monitoring (bool)
 
boost::shared_ptr< SMFSourcewrite_source ()
 
int set_destructive (bool yn)
 
void set_note_mode (NoteMode m)
 
boost::shared_ptr< MidiBufferget_gui_feed_buffer () const
 
- Public Member Functions inherited from ARDOUR::Diskstream
 Diskstream (Session &, const std::string &name, Flag f=Recordable)
 
 Diskstream (Session &, const XMLNode &)
 
virtual ~Diskstream ()
 
std::string write_source_name () const
 
boost::shared_ptr< ARDOUR::IOio () const
 
void set_track (ARDOUR::Track *)
 
void set_flag (Flag f)
 
void unset_flag (Flag f)
 
AlignStyle alignment_style () const
 
AlignChoice alignment_choice () const
 
void set_align_style (AlignStyle, bool force=false)
 
void set_align_choice (AlignChoice a, bool force=false)
 
framecnt_t roll_delay () const
 
void set_roll_delay (framecnt_t)
 
bool record_enabled () const
 
bool destructive () const
 
virtual int set_non_layered (bool)
 
virtual bool can_become_destructive (bool &) const
 
bool hidden () const
 
bool recordable () const
 
bool non_layered () const
 
bool reversed () const
 
double speed () const
 
virtual void punch_in ()
 
virtual void punch_out ()
 
void non_realtime_set_speed ()
 
virtual void playlist_modified ()
 
boost::shared_ptr< Playlistplaylist ()
 
framepos_t current_capture_start () const
 
framepos_t current_capture_end () const
 
framepos_t get_capture_start_frame (uint32_t n=0) const
 
framecnt_t get_captured_frames (uint32_t n=0) const
 
ChanCount n_channels ()
 
virtual void request_input_monitoring (bool)
 
framecnt_t capture_offset () const
 
virtual void set_capture_offset ()
 
bool slaved () const
 
void set_slaved (bool yn)
 
int set_loop (Location *loc)
 
std::list< boost::shared_ptr
< Source > > & 
last_capture_sources ()
 
void handle_input_change (IOChange, void *src)
 
void move_processor_automation (boost::weak_ptr< Processor >, std::list< Evoral::RangeMove< framepos_t > > const &)
 
bool pending_overwrite () const
 
- 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 suspend_property_changes ()
 
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::PublicDiskstream
virtual ~PublicDiskstream ()
 

Public Attributes

PBD::Signal1< void,
boost::weak_ptr< MidiSource > > 
DataRecorded
 
- Public Attributes inherited from ARDOUR::Diskstream
PBD::Signal0< void > RecordEnableChanged
 
PBD::Signal0< void > SpeedChanged
 
PBD::Signal0< void > ReverseChanged
 
PBD::Signal0< void > PlaylistChanged
 
PBD::Signal0< void > AlignmentStyleChanged
 
PBD::Signal1< void, Location * > LoopSet
 
- 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
 

Protected Member Functions

void set_pending_overwrite (bool)
 
int overwrite_existing_buffers ()
 
void set_block_size (pframes_t)
 
int internal_playback_seek (framecnt_t distance)
 
int can_internal_playback_seek (framecnt_t distance)
 
std::string steal_write_source_name ()
 
void reset_write_sources (bool, bool force=false)
 
void non_realtime_input_change ()
 
void non_realtime_locate (framepos_t location)
 
int seek (framepos_t which_sample, bool complete_refill=false)
 
int process (BufferSet &, framepos_t transport_frame, pframes_t nframes, framecnt_t &, bool need_diskstream)
 
frameoffset_t calculate_playback_distance (pframes_t nframes)
 
bool commit (framecnt_t nframes)
 
- Protected Member Functions inherited from ARDOUR::Diskstream
virtual void playlist_changed (const PBD::PropertyChange &)
 
virtual void playlist_deleted (boost::weak_ptr< Playlist >)
 
virtual void playlist_ranges_moved (std::list< Evoral::RangeMove< framepos_t > > const &, bool)
 
virtual bool realtime_set_speed (double, bool global_change)
 
virtual void check_record_status (framepos_t transport_frame, bool can_record)
 
virtual void prepare_record_status (framepos_t)
 
virtual void setup_destructive_playlist ()
 
virtual void use_destructive_playlist ()
 
virtual void prepare_to_stop (framepos_t transport_pos, framepos_t audible_frame)
 
void engage_record_enable ()
 
void disengage_record_enable ()
 
void calculate_record_range (Evoral::OverlapType ot, framepos_t transport_frame, framecnt_t nframes, framecnt_t &rec_nframes, framecnt_t &rec_offset)
 
void route_going_away ()
 
- 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 &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 

Static Protected Member Functions

static void set_readahead_frames (framecnt_t frames_ahead)
 

Static Protected Attributes

static framecnt_t midi_readahead = 4096
 
- Static Protected Attributes inherited from ARDOUR::Diskstream
static framecnt_t disk_read_chunk_frames = default_disk_read_chunk_frames ()
 
static framecnt_t disk_write_chunk_frames = default_disk_write_chunk_frames ()
 

Private Member Functions

int do_flush (RunContext context, bool force=false)
 
int do_refill ()
 
int do_refill_with_alloc ()
 
int read (framepos_t &start, framecnt_t cnt, bool reversed)
 
void finish_capture ()
 
void transport_stopped_wallclock (struct tm &, time_t, bool abort)
 
void transport_looped (framepos_t transport_frame)
 
void init ()
 
int use_new_write_source (uint32_t n=0)
 
int find_and_use_playlist (const std::string &)
 
void allocate_temporary_buffers ()
 
int use_pending_capture_data (XMLNode &node)
 
void get_input_sources ()
 
void set_align_style_from_io ()
 
void adjust_playback_buffering ()
 
void adjust_capture_buffering ()
 
bool prep_record_enable ()
 
bool prep_record_disable ()
 

Private Attributes

MidiRingBuffer< framepos_t > * _playback_buf
 
MidiRingBuffer< framepos_t > * _capture_buf
 
boost::weak_ptr< MidiPort_source_port
 
boost::shared_ptr< SMFSource_write_source
 
NoteMode _note_mode
 
gint _frames_written_to_ringbuffer
 
gint _frames_read_from_ringbuffer
 
volatile gint _frames_pending_write
 
volatile gint _num_captured_loops
 
framepos_t _accumulated_capture_offset
 
MidiBuffer _gui_feed_buffer
 
Glib::Threads::Mutex _gui_feed_buffer_mutex
 
CubicMidiInterpolation interpolation
 

Friends

class Session
 
class Butler
 
class MidiTrack
 
class Auditioner
 

Additional Inherited Members

- Public Types inherited from ARDOUR::Diskstream
enum  Flag { Recordable = 0x1, Hidden = 0x2, Destructive = 0x4, NonLayered = 0x8 }
 
- Static Public Member Functions inherited from ARDOUR::Diskstream
static framecnt_t disk_read_frames ()
 
static framecnt_t disk_write_frames ()
 
static void set_disk_read_chunk_frames (framecnt_t n)
 
static void set_disk_write_chunk_frames (framecnt_t n)
 
static framecnt_t default_disk_read_chunk_frames ()
 
static framecnt_t default_disk_write_chunk_frames ()
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Attributes inherited from ARDOUR::Diskstream
static PBD::Signal0< void > DiskOverrun
 
static PBD::Signal0< void > DiskUnderrun
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 
- Protected Types inherited from ARDOUR::Diskstream
enum  TransitionType { CaptureStart = 0, CaptureEnd }
 
- Protected Attributes inherited from ARDOUR::Diskstream
std::list< boost::shared_ptr
< Source > > 
_last_capture_sources
 
std::vector< CaptureInfo * > capture_info
 
Glib::Threads::Mutex capture_info_lock
 
uint32_t i_am_the_modifier
 
boost::shared_ptr< ARDOUR::IO_io
 
Track_track
 
ChanCount _n_channels
 
boost::shared_ptr< Playlist_playlist
 
gint _record_enabled
 
double _visible_speed
 
double _actual_speed
 
bool _buffer_reallocation_required
 
bool _seek_required
 
framepos_t capture_start_frame
 
framecnt_t capture_captured
 
bool was_recording
 
framecnt_t adjust_capture_position
 
framecnt_t _capture_offset
 
framecnt_t _roll_delay
 
framepos_t first_recordable_frame
 
framepos_t last_recordable_frame
 
int last_possibly_recording
 
AlignStyle _alignment_style
 
AlignChoice _alignment_choice
 
bool _slaved
 
Locationloop_location
 
framepos_t overwrite_frame
 
off_t overwrite_offset
 
bool _pending_overwrite
 
bool overwrite_queued
 
IOChange input_change_pending
 
framecnt_t wrap_buffer_size
 
framecnt_t speed_buffer_size
 
double _speed
 
double _target_speed
 
framepos_t file_frame
 
framepos_t playback_sample
 
bool in_set_state
 
std::string _write_source_name
 
Glib::Threads::Mutex state_lock
 
PBD::ScopedConnectionList playlist_connections
 
PBD::ScopedConnection ic_connection
 
Flag _flags
 
XMLNodedeprecated_io_node
 
- 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 59 of file midi_diskstream.h.

Constructor & Destructor Documentation

ARDOUR::MidiDiskstream::MidiDiskstream ( Session ,
const std::string &  name,
Diskstream::Flag  f = Recordable 
)
MidiDiskstream::MidiDiskstream ( Session sess,
const XMLNode node 
)

Definition at line 96 of file midi_diskstream.cc.

MidiDiskstream::~MidiDiskstream ( )

Definition at line 141 of file midi_diskstream.cc.

Member Function Documentation

void ARDOUR::MidiDiskstream::adjust_capture_buffering ( )
inlineprivatevirtual

Implements ARDOUR::PublicDiskstream.

Definition at line 170 of file midi_diskstream.h.

void ARDOUR::MidiDiskstream::adjust_playback_buffering ( )
inlineprivatevirtual

Implements ARDOUR::PublicDiskstream.

Definition at line 169 of file midi_diskstream.h.

void MidiDiskstream::allocate_temporary_buffers ( )
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1333 of file midi_diskstream.cc.

frameoffset_t MidiDiskstream::calculate_playback_distance ( pframes_t  nframes)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 535 of file midi_diskstream.cc.

int MidiDiskstream::can_internal_playback_seek ( framecnt_t  distance)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 686 of file midi_diskstream.cc.

float MidiDiskstream::capture_buffer_load ( ) const
virtual

Implements ARDOUR::Diskstream.

Definition at line 1379 of file midi_diskstream.cc.

bool MidiDiskstream::commit ( framecnt_t  nframes)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 552 of file midi_diskstream.cc.

int MidiDiskstream::do_flush ( RunContext  context,
bool  force_flush = false 
)
privatevirtual

Flush pending data to disk.

Important note: this function will write AT MOST disk_write_chunk_frames of data to disk. it will never write more than that. If it writes that much and there is more than that waiting to be written, it will return 1, otherwise 0 on success or -1 on failure.

If there is less than disk_write_chunk_frames to be written, no data will be written at all unless force_flush is true.

Implements ARDOUR::Diskstream.

Definition at line 849 of file midi_diskstream.cc.

int MidiDiskstream::do_refill ( )
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 793 of file midi_diskstream.cc.

int MidiDiskstream::do_refill_with_alloc ( )
privatevirtual

For non-butler contexts (allocates temporary working buffers)

Implements ARDOUR::Diskstream.

Definition at line 787 of file midi_diskstream.cc.

void MidiDiskstream::ensure_input_monitoring ( bool  yn)
virtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 1338 of file midi_diskstream.cc.

int MidiDiskstream::find_and_use_playlist ( const std::string &  )
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 216 of file midi_diskstream.cc.

void MidiDiskstream::finish_capture ( )
private

Definition at line 1115 of file midi_diskstream.cc.

void MidiDiskstream::flush_playback ( framepos_t  start,
framepos_t  end 
)

Definition at line 1393 of file midi_diskstream.cc.

boost::shared_ptr< MidiBuffer > MidiDiskstream::get_gui_feed_buffer ( ) const

Definition at line 1513 of file midi_diskstream.cc.

void ARDOUR::MidiDiskstream::get_input_sources ( )
private
void MidiDiskstream::get_playback ( MidiBuffer dst,
framecnt_t  nframes 
)

Writes playback events from playback_sample for nframes to dst, translating time stamps so that an event at playback_sample has time = 0

Definition at line 1403 of file midi_diskstream.cc.

XMLNode & MidiDiskstream::get_state ( void  )
virtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 1191 of file midi_diskstream.cc.

void MidiDiskstream::init ( )
private

Definition at line 123 of file midi_diskstream.cc.

int MidiDiskstream::internal_playback_seek ( framecnt_t  distance)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 694 of file midi_diskstream.cc.

boost::shared_ptr< MidiPlaylist > MidiDiskstream::midi_playlist ( )

Definition at line 1548 of file midi_diskstream.cc.

void MidiDiskstream::non_realtime_input_change ( )
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 160 of file midi_diskstream.cc.

void MidiDiskstream::non_realtime_locate ( framepos_t  location)
protectedvirtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 150 of file midi_diskstream.cc.

int MidiDiskstream::overwrite_existing_buffers ( )
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 630 of file midi_diskstream.cc.

float MidiDiskstream::playback_buffer_load ( ) const
virtual
Returns
A number between 0 and 1, where 0 indicates that the playback buffer is dry (ie the disk subsystem could not keep up) and 1 indicates that the buffer is full.

Implements ARDOUR::Diskstream.

Definition at line 1363 of file midi_diskstream.cc.

bool MidiDiskstream::prep_record_disable ( )
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1184 of file midi_diskstream.cc.

bool MidiDiskstream::prep_record_enable ( )
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1166 of file midi_diskstream.cc.

int MidiDiskstream::process ( BufferSet bufs,
framepos_t  transport_frame,
pframes_t  nframes,
framecnt_t playback_distance,
bool  need_diskstream 
)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 330 of file midi_diskstream.cc.

int MidiDiskstream::read ( framepos_t start,
framecnt_t  dur,
bool  reversed 
)
private

start is set to the new frame position (TIME) read up to

Definition at line 704 of file midi_diskstream.cc.

void MidiDiskstream::reset_tracker ( )

Definition at line 1523 of file midi_diskstream.cc.

void MidiDiskstream::reset_write_sources ( bool  mark_write_complete,
bool  force = false 
)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 1314 of file midi_diskstream.cc.

void MidiDiskstream::resolve_tracker ( Evoral::EventSink< framepos_t > &  buffer,
framepos_t  time 
)

Definition at line 1535 of file midi_diskstream.cc.

int MidiDiskstream::seek ( framepos_t  which_sample,
bool  complete_refill = false 
)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 655 of file midi_diskstream.cc.

void MidiDiskstream::set_align_style_from_io ( )
privatevirtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 1348 of file midi_diskstream.cc.

void MidiDiskstream::set_block_size ( pframes_t  )
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 1328 of file midi_diskstream.cc.

int MidiDiskstream::set_destructive ( bool  yn)
virtual

Overloaded from parent to die horribly

Reimplemented from ARDOUR::Diskstream.

Definition at line 295 of file midi_diskstream.cc.

bool MidiDiskstream::set_name ( std::string const &  )
virtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 1486 of file midi_diskstream.cc.

void MidiDiskstream::set_note_mode ( NoteMode  m)

Definition at line 301 of file midi_diskstream.cc.

void MidiDiskstream::set_pending_overwrite ( bool  yn)
protectedvirtual

Implements ARDOUR::Diskstream.

Definition at line 621 of file midi_diskstream.cc.

static void ARDOUR::MidiDiskstream::set_readahead_frames ( framecnt_t  frames_ahead)
inlinestaticprotected

Definition at line 125 of file midi_diskstream.h.

void MidiDiskstream::set_record_enabled ( bool  yn)
virtual

Implements ARDOUR::Diskstream.

Definition at line 1144 of file midi_diskstream.cc.

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

Reimplemented from ARDOUR::Diskstream.

Definition at line 1224 of file midi_diskstream.cc.

bool MidiDiskstream::set_write_source_name ( const std::string &  str)
virtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 1500 of file midi_diskstream.cc.

std::string MidiDiskstream::steal_write_source_name ( )
protectedvirtual

We want to use the name of the existing write source (the one that will be used by the next capture) for another purpose. So change the name of the current source, and return its current name.

Return an empty string if the change cannot be accomplished.

Reimplemented from ARDOUR::Diskstream.

Definition at line 1289 of file midi_diskstream.cc.

void MidiDiskstream::transport_looped ( framepos_t  transport_frame)
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1100 of file midi_diskstream.cc.

void MidiDiskstream::transport_stopped_wallclock ( struct tm &  ,
time_t  ,
bool  abort 
)
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 902 of file midi_diskstream.cc.

int MidiDiskstream::use_copy_playlist ( )
virtual

Implements ARDOUR::Diskstream.

Definition at line 269 of file midi_diskstream.cc.

int MidiDiskstream::use_new_playlist ( )
virtual

Implements ARDOUR::Diskstream.

Definition at line 243 of file midi_diskstream.cc.

int MidiDiskstream::use_new_write_source ( uint32_t  n = 0)
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1255 of file midi_diskstream.cc.

int MidiDiskstream::use_pending_capture_data ( XMLNode node)
privatevirtual

Implements ARDOUR::Diskstream.

Definition at line 1387 of file midi_diskstream.cc.

int MidiDiskstream::use_playlist ( boost::shared_ptr< Playlist playlist)
virtual

Reimplemented from ARDOUR::Diskstream.

Definition at line 233 of file midi_diskstream.cc.

boost::shared_ptr<SMFSource> ARDOUR::MidiDiskstream::write_source ( )
inline

Definition at line 92 of file midi_diskstream.h.

Friends And Related Function Documentation

friend class Auditioner
friend

Definition at line 129 of file midi_diskstream.h.

friend class Butler
friend

Definition at line 108 of file midi_diskstream.h.

friend class MidiTrack
friend

Definition at line 128 of file midi_diskstream.h.

friend class Session
friend

Definition at line 107 of file midi_diskstream.h.

Member Data Documentation

framepos_t ARDOUR::MidiDiskstream::_accumulated_capture_offset
private

Definition at line 184 of file midi_diskstream.h.

MidiRingBuffer<framepos_t>* ARDOUR::MidiDiskstream::_capture_buf
private

Definition at line 176 of file midi_diskstream.h.

volatile gint ARDOUR::MidiDiskstream::_frames_pending_write
private

Definition at line 182 of file midi_diskstream.h.

gint ARDOUR::MidiDiskstream::_frames_read_from_ringbuffer
private

Definition at line 181 of file midi_diskstream.h.

gint ARDOUR::MidiDiskstream::_frames_written_to_ringbuffer
private

Definition at line 180 of file midi_diskstream.h.

MidiBuffer ARDOUR::MidiDiskstream::_gui_feed_buffer
private

A buffer that we use to put newly-arrived MIDI data in for the GUI to read (so that it can update itself).

Definition at line 189 of file midi_diskstream.h.

Glib::Threads::Mutex ARDOUR::MidiDiskstream::_gui_feed_buffer_mutex
mutableprivate

Definition at line 190 of file midi_diskstream.h.

NoteMode ARDOUR::MidiDiskstream::_note_mode
private

Definition at line 179 of file midi_diskstream.h.

volatile gint ARDOUR::MidiDiskstream::_num_captured_loops
private

Definition at line 183 of file midi_diskstream.h.

MidiRingBuffer<framepos_t>* ARDOUR::MidiDiskstream::_playback_buf
private

Definition at line 175 of file midi_diskstream.h.

boost::weak_ptr<MidiPort> ARDOUR::MidiDiskstream::_source_port
private

Definition at line 177 of file midi_diskstream.h.

boost::shared_ptr<SMFSource> ARDOUR::MidiDiskstream::_write_source
private

Definition at line 178 of file midi_diskstream.h.

PBD::Signal1<void, boost::weak_ptr<MidiSource> > ARDOUR::MidiDiskstream::DataRecorded

Emitted when some MIDI data has been received for recording. Parameter is the source that it is destined for. A caller can get a copy of the data with get_gui_feed_buffer ()

Definition at line 102 of file midi_diskstream.h.

CubicMidiInterpolation ARDOUR::MidiDiskstream::interpolation
private

Definition at line 192 of file midi_diskstream.h.

framecnt_t MidiDiskstream::midi_readahead = 4096
staticprotected

Definition at line 137 of file midi_diskstream.h.


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