projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tempo ramps - implement TempoMap::tempo_at_beat().
[ardour.git]
/
libs
/
ardour
/
ardour
/
audio_diskstream.h
diff --git
a/libs/ardour/ardour/audio_diskstream.h
b/libs/ardour/ardour/audio_diskstream.h
index b636cb47346109d6f1a7e36e9b654c80f8d1833e..21a178946800529f6a31411187af2a3be3bb3f0e 100644
(file)
--- a/
libs/ardour/ardour/audio_diskstream.h
+++ b/
libs/ardour/ardour/audio_diskstream.h
@@
-53,7
+53,7
@@
class AudioPlaylist;
class AudioFileSource;
class IO;
class AudioFileSource;
class IO;
-class AudioDiskstream : public Diskstream
+class
LIBARDOUR_API
AudioDiskstream : public Diskstream
{
public:
AudioDiskstream (Session &, const std::string& name, Diskstream::Flag f = Recordable);
{
public:
AudioDiskstream (Session &, const std::string& name, Diskstream::Flag f = Recordable);
@@
-73,6
+73,7
@@
class AudioDiskstream : public Diskstream
}
void set_record_enabled (bool yn);
}
void set_record_enabled (bool yn);
+ void set_record_safe (bool yn);
int set_destructive (bool yn);
int set_non_layered (bool yn);
bool can_become_destructive (bool& requires_bounce) const;
int set_destructive (bool yn);
int set_non_layered (bool yn);
bool can_become_destructive (bool& requires_bounce) const;
@@
-108,13
+109,14
@@
class AudioDiskstream : public Diskstream
int remove_channel (uint32_t how_many);
bool set_name (std::string const &);
int remove_channel (uint32_t how_many);
bool set_name (std::string const &);
+ bool set_write_source_name (const std::string& str);
/* stateful */
XMLNode& get_state(void);
int set_state(const XMLNode& node, int version);
/* stateful */
XMLNode& get_state(void);
int set_state(const XMLNode& node, int version);
- void request_
jack_monitors_input
(bool);
+ void request_
input_monitoring
(bool);
static void swap_by_ptr (Sample *first, Sample *last) {
while (first < last) {
static void swap_by_ptr (Sample *first, Sample *last) {
while (first < last) {
@@
-124,7
+126,6
@@
class AudioDiskstream : public Diskstream
}
}
}
}
- CubicInterpolation interpolation;
protected:
friend class Session;
protected:
friend class Session;
@@
-139,17
+140,14
@@
class AudioDiskstream : public Diskstream
void set_block_size (pframes_t);
int internal_playback_seek (framecnt_t distance);
int can_internal_playback_seek (framecnt_t distance);
void set_block_size (pframes_t);
int internal_playback_seek (framecnt_t distance);
int can_internal_playback_seek (framecnt_t distance);
- std::list<boost::shared_ptr<Source> > steal_write_sources();
void reset_write_sources (bool, bool force = false);
void non_realtime_input_change ();
void non_realtime_locate (framepos_t location);
protected:
friend class Auditioner;
void reset_write_sources (bool, bool force = false);
void non_realtime_input_change ();
void non_realtime_locate (framepos_t location);
protected:
friend class Auditioner;
- int seek (framepos_t which_sample, bool complete_refill = false);
-
- protected:
friend class AudioTrack;
friend class AudioTrack;
+ int seek (framepos_t which_sample, bool complete_refill = false);
int process (BufferSet&, framepos_t transport_frame, pframes_t nframes, framecnt_t &, bool need_disk_signal);
frameoffset_t calculate_playback_distance (pframes_t nframes);
int process (BufferSet&, framepos_t transport_frame, pframes_t nframes, framecnt_t &, bool need_disk_signal);
frameoffset_t calculate_playback_distance (pframes_t nframes);
@@
-160,7
+158,7
@@
class AudioDiskstream : public Diskstream
std::string name;
bool is_physical () const;
std::string name;
bool is_physical () const;
- void request_
jack_monitors_input
(bool) const;
+ void request_
input_monitoring
(bool) const;
};
/** Information about one of our channels */
};
/** Information about one of our channels */
@@
-207,11
+205,12
@@
class AudioDiskstream : public Diskstream
typedef std::vector<ChannelInfo*> ChannelList;
typedef std::vector<ChannelInfo*> ChannelList;
+ CubicInterpolation interpolation;
+
/* The two central butler operations */
int do_flush (RunContext context, bool force = false);
/* The two central butler operations */
int do_flush (RunContext context, bool force = false);
- int do_refill () { return _do_refill(_mixdown_buffer, _gain_buffer); }
+ int do_refill () { return _do_refill(_mixdown_buffer, _gain_buffer
, 0
); }
- int do_refill_with_alloc ();
int read (Sample* buf, Sample* mixdown_buffer, float* gain_buffer,
framepos_t& start, framecnt_t cnt,
int read (Sample* buf, Sample* mixdown_buffer, float* gain_buffer,
framepos_t& start, framecnt_t cnt,
@@
-245,12
+244,11
@@
class AudioDiskstream : public Diskstream
bool prep_record_enable ();
bool prep_record_disable ();
bool prep_record_enable ();
bool prep_record_disable ();
-
+
// Working buffers for do_refill (butler thread)
static void allocate_working_buffers();
static void free_working_buffers();
// Working buffers for do_refill (butler thread)
static void allocate_working_buffers();
static void free_working_buffers();
- static size_t _working_buffers_size;
static Sample* _mixdown_buffer;
static gain_t* _gain_buffer;
static Sample* _mixdown_buffer;
static gain_t* _gain_buffer;
@@
-258,9
+256,12
@@
class AudioDiskstream : public Diskstream
SerializedRCUManager<ChannelList> channels;
SerializedRCUManager<ChannelList> channels;
+ protected:
+ int _do_refill_with_alloc (bool one_chunk_only);
+
/* really */
private:
/* really */
private:
- int _do_refill (Sample *mixdown_buffer, float *gain_buffer);
+ int _do_refill (Sample *mixdown_buffer, float *gain_buffer
, framecnt_t fill_level
);
int add_channel_to (boost::shared_ptr<ChannelList>, uint32_t how_many);
int remove_channel_from (boost::shared_ptr<ChannelList>, uint32_t how_many);
int add_channel_to (boost::shared_ptr<ChannelList>, uint32_t how_many);
int remove_channel_from (boost::shared_ptr<ChannelList>, uint32_t how_many);