ardour
|
#include <midi_diskstream.h>
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) |
XMLNode * | instant_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 |
Definition at line 59 of file midi_diskstream.h.
ARDOUR::MidiDiskstream::MidiDiskstream | ( | Session & | , |
const std::string & | name, | ||
Diskstream::Flag | f = Recordable |
||
) |
Definition at line 96 of file midi_diskstream.cc.
MidiDiskstream::~MidiDiskstream | ( | ) |
Definition at line 141 of file midi_diskstream.cc.
|
inlineprivatevirtual |
Implements ARDOUR::PublicDiskstream.
Definition at line 170 of file midi_diskstream.h.
|
inlineprivatevirtual |
Implements ARDOUR::PublicDiskstream.
Definition at line 169 of file midi_diskstream.h.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1333 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 535 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 686 of file midi_diskstream.cc.
|
virtual |
Implements ARDOUR::Diskstream.
Definition at line 1379 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 552 of file midi_diskstream.cc.
|
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.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 793 of file midi_diskstream.cc.
|
privatevirtual |
For non-butler contexts (allocates temporary working buffers)
Implements ARDOUR::Diskstream.
Definition at line 787 of file midi_diskstream.cc.
|
virtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 1338 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 216 of file midi_diskstream.cc.
|
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.
|
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.
|
virtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 1191 of file midi_diskstream.cc.
|
private |
Definition at line 123 of file midi_diskstream.cc.
|
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.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 160 of file midi_diskstream.cc.
|
protectedvirtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 150 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 630 of file midi_diskstream.cc.
|
virtual |
Implements ARDOUR::Diskstream.
Definition at line 1363 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1184 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1166 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 330 of file midi_diskstream.cc.
|
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.
|
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.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 655 of file midi_diskstream.cc.
|
privatevirtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 1348 of file midi_diskstream.cc.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 1328 of file midi_diskstream.cc.
|
virtual |
Overloaded from parent to die horribly
Reimplemented from ARDOUR::Diskstream.
Definition at line 295 of file midi_diskstream.cc.
|
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.
|
protectedvirtual |
Implements ARDOUR::Diskstream.
Definition at line 621 of file midi_diskstream.cc.
|
inlinestaticprotected |
Definition at line 125 of file midi_diskstream.h.
|
virtual |
Implements ARDOUR::Diskstream.
Definition at line 1144 of file midi_diskstream.cc.
|
virtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 1224 of file midi_diskstream.cc.
|
virtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 1500 of file midi_diskstream.cc.
|
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.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1100 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 902 of file midi_diskstream.cc.
|
virtual |
Implements ARDOUR::Diskstream.
Definition at line 269 of file midi_diskstream.cc.
|
virtual |
Implements ARDOUR::Diskstream.
Definition at line 243 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1255 of file midi_diskstream.cc.
|
privatevirtual |
Implements ARDOUR::Diskstream.
Definition at line 1387 of file midi_diskstream.cc.
|
virtual |
Reimplemented from ARDOUR::Diskstream.
Definition at line 233 of file midi_diskstream.cc.
|
inline |
Definition at line 92 of file midi_diskstream.h.
|
friend |
Definition at line 129 of file midi_diskstream.h.
|
friend |
Definition at line 108 of file midi_diskstream.h.
|
friend |
Definition at line 128 of file midi_diskstream.h.
|
friend |
Definition at line 107 of file midi_diskstream.h.
|
private |
Definition at line 184 of file midi_diskstream.h.
|
private |
Definition at line 176 of file midi_diskstream.h.
|
private |
Definition at line 182 of file midi_diskstream.h.
|
private |
Definition at line 181 of file midi_diskstream.h.
|
private |
Definition at line 180 of file midi_diskstream.h.
|
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.
|
mutableprivate |
Definition at line 190 of file midi_diskstream.h.
|
private |
Definition at line 179 of file midi_diskstream.h.
|
private |
Definition at line 183 of file midi_diskstream.h.
|
private |
Definition at line 175 of file midi_diskstream.h.
|
private |
Definition at line 177 of file midi_diskstream.h.
|
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.
|
private |
Definition at line 192 of file midi_diskstream.h.
|
staticprotected |
Definition at line 137 of file midi_diskstream.h.