Rename libmusictime libtimecode (consistent with already used namespace "Timecode").
Move BBT_Time to libtimecode. git-svn-id: svn://localhost/ardour2/branches/3.0@8271 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
341c409fa1
commit
4b861e6039
|
@ -16,7 +16,7 @@ fi
|
|||
|
||||
export VAMP_PATH=$libs/vamp-plugins${VAMP_PATH:+:$VAMP_PATH}
|
||||
|
||||
export LD_LIBRARY_PATH=$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/gnomecanvas:$libs/libsndfile:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/audiographer:$libs/musictime:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH=$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/gnomecanvas:$libs/libsndfile:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/audiographer:$libs/timecode:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
|
||||
# DYLD_LIBRARY_PATH is for darwin.
|
||||
export DYLD_FALLBACK_LIBRARY_PATH=$LD_LIBRARY_PATH
|
||||
|
|
|
@ -640,7 +640,7 @@ void
|
|||
AudioClock::set_bbt (framepos_t when, bool force)
|
||||
{
|
||||
char buf[16];
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
/* handle a common case */
|
||||
if (is_duration) {
|
||||
|
@ -1342,7 +1342,7 @@ framepos_t
|
|||
AudioClock::get_frames (Field field, framepos_t pos, int dir)
|
||||
{
|
||||
framecnt_t frames = 0;
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
switch (field) {
|
||||
case Timecode_Hours:
|
||||
frames = (framecnt_t) floor (3600.0 * _session->frame_rate());
|
||||
|
@ -1930,7 +1930,7 @@ AudioClock::bbt_frame_duration_from_display (framepos_t pos) const
|
|||
return 0;
|
||||
}
|
||||
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
|
||||
bbt.bars = atoi (bars_label.get_text());
|
||||
|
|
|
@ -1101,7 +1101,7 @@ Editor::set_session (Session *t)
|
|||
_session->history().Changed.connect (_session_connections, invalidator (*this), boost::bind (&Editor::history_changed, this), gui_context());
|
||||
|
||||
if (Profile->get_sae()) {
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
bbt.bars = 0;
|
||||
bbt.beats = 0;
|
||||
bbt.ticks = 120;
|
||||
|
|
|
@ -1824,7 +1824,7 @@ MeterMarkerDrag::finished (GdkEvent* event, bool movement_occurred)
|
|||
|
||||
motion (event, false);
|
||||
|
||||
BBT_Time when;
|
||||
Timecode::BBT_Time when;
|
||||
|
||||
TempoMap& map (_editor->session()->tempo_map());
|
||||
map.bbt_time (last_pointer_frame(), when);
|
||||
|
@ -1913,7 +1913,7 @@ TempoMarkerDrag::finished (GdkEvent* event, bool movement_occurred)
|
|||
|
||||
motion (event, false);
|
||||
|
||||
BBT_Time when;
|
||||
Timecode::BBT_Time when;
|
||||
|
||||
TempoMap& map (_editor->session()->tempo_map());
|
||||
map.bbt_time (last_pointer_frame(), when);
|
||||
|
|
|
@ -2150,7 +2150,7 @@ Editor::show_verbose_time_cursor (framepos_t frame, double offset, double xpos,
|
|||
{
|
||||
char buf[128];
|
||||
Timecode::Time timecode;
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
int hours, mins;
|
||||
framepos_t frame_rate;
|
||||
float secs;
|
||||
|
@ -2207,8 +2207,8 @@ Editor::show_verbose_duration_cursor (framepos_t start, framepos_t end, double o
|
|||
{
|
||||
char buf[128];
|
||||
Timecode::Time timecode;
|
||||
BBT_Time sbbt;
|
||||
BBT_Time ebbt;
|
||||
Timecode::BBT_Time sbbt;
|
||||
Timecode::BBT_Time ebbt;
|
||||
int hours, mins;
|
||||
framepos_t distance, frame_rate;
|
||||
float secs;
|
||||
|
|
|
@ -783,7 +783,7 @@ EditorRegions::update_all_subrows (TreeModel::Row const &parent_row, int level)
|
|||
void
|
||||
EditorRegions::format_position (framepos_t pos, char* buf, size_t bufsize)
|
||||
{
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
Timecode::Time timecode;
|
||||
|
||||
switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
|
||||
|
|
|
@ -1144,20 +1144,20 @@ Editor::metric_get_timecode (GtkCustomRulerMark **marks, gdouble lower, gdouble
|
|||
void
|
||||
Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper)
|
||||
{
|
||||
if (_session == 0) {
|
||||
return;
|
||||
}
|
||||
if (_session == 0) {
|
||||
return;
|
||||
}
|
||||
TempoMap::BBTPointList::iterator i;
|
||||
BBT_Time lower_beat, upper_beat; // the beats at each end of the ruler
|
||||
Timecode::BBT_Time lower_beat, upper_beat; // the beats at each end of the ruler
|
||||
|
||||
_session->bbt_time (lower, lower_beat);
|
||||
_session->bbt_time (upper, upper_beat);
|
||||
uint32_t beats = 0;
|
||||
_session->bbt_time (lower, lower_beat);
|
||||
_session->bbt_time (upper, upper_beat);
|
||||
uint32_t beats = 0;
|
||||
|
||||
bbt_accent_modulo = 1;
|
||||
bbt_bar_helper_on = false;
|
||||
bbt_bars = 0;
|
||||
bbt_nmarks = 1;
|
||||
bbt_bars = 0;
|
||||
bbt_nmarks = 1;
|
||||
|
||||
bbt_ruler_scale = bbt_over;
|
||||
|
||||
|
@ -1268,18 +1268,18 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper)
|
|||
gint
|
||||
Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upper*/, gint /*maxchars*/)
|
||||
{
|
||||
if (_session == 0) {
|
||||
return 0;
|
||||
}
|
||||
if (_session == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
TempoMap::BBTPointList::iterator i;
|
||||
|
||||
char buf[64];
|
||||
gint n = 0;
|
||||
char buf[64];
|
||||
gint n = 0;
|
||||
framepos_t pos;
|
||||
BBT_Time next_beat;
|
||||
Timecode::BBT_Time next_beat;
|
||||
framepos_t next_beat_pos;
|
||||
uint32_t beats = 0;
|
||||
uint32_t beats = 0;
|
||||
|
||||
uint32_t tick = 0;
|
||||
uint32_t skip;
|
||||
|
|
|
@ -144,7 +144,7 @@ Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost)
|
|||
return;
|
||||
}
|
||||
|
||||
BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame
|
||||
Timecode::BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame
|
||||
|
||||
_session->bbt_time(leftmost, previous_beat);
|
||||
_session->bbt_time(rightmost, next_beat);
|
||||
|
@ -224,7 +224,7 @@ Editor::mouse_add_new_tempo_event (framepos_t frame)
|
|||
}
|
||||
|
||||
double bpm = 0;
|
||||
BBT_Time requested;
|
||||
Timecode::BBT_Time requested;
|
||||
|
||||
bpm = tempo_dialog.get_bpm ();
|
||||
double nt = tempo_dialog.get_note_type();
|
||||
|
@ -271,7 +271,7 @@ Editor::mouse_add_new_meter_event (framepos_t frame)
|
|||
bpb = max (1.0, bpb); // XXX is this a reasonable limit?
|
||||
|
||||
double note_type = meter_dialog.get_note_type ();
|
||||
BBT_Time requested;
|
||||
Timecode::BBT_Time requested;
|
||||
|
||||
meter_dialog.get_bbt_time (requested);
|
||||
|
||||
|
@ -352,7 +352,7 @@ Editor::edit_tempo_section (TempoSection* section)
|
|||
|
||||
double bpm = tempo_dialog.get_bpm ();
|
||||
double nt = tempo_dialog.get_note_type ();
|
||||
BBT_Time when;
|
||||
Timecode::BBT_Time when;
|
||||
tempo_dialog.get_bbt_time(when);
|
||||
bpm = max (0.01, bpm);
|
||||
|
||||
|
|
|
@ -246,7 +246,7 @@ ExportTimespanSelector::bbt_str (framepos_t frames) const
|
|||
}
|
||||
|
||||
std::ostringstream oss;
|
||||
BBT_Time time;
|
||||
Timecode::BBT_Time time;
|
||||
_session->bbt_time (frames, time);
|
||||
|
||||
print_padded (oss, time);
|
||||
|
|
|
@ -200,7 +200,7 @@ MidiListEditor::redisplay_model ()
|
|||
row[columns.note] = (*i)->note();
|
||||
row[columns.velocity] = (*i)->velocity();
|
||||
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
double dur;
|
||||
|
||||
_session->tempo_map().bbt_time (conv.to ((*i)->time()), bbt);
|
||||
|
|
|
@ -42,7 +42,7 @@ TempoDialog::TempoDialog (TempoMap& map, framepos_t frame, const string & action
|
|||
when_bar_label (_("bar:"), ALIGN_LEFT, ALIGN_CENTER),
|
||||
when_beat_label (_("beat:"), ALIGN_LEFT, ALIGN_CENTER)
|
||||
{
|
||||
BBT_Time when;
|
||||
Timecode::BBT_Time when;
|
||||
Tempo tempo (map.tempo_at (frame));
|
||||
map.bbt_time (frame, when);
|
||||
|
||||
|
@ -62,7 +62,7 @@ TempoDialog::TempoDialog (TempoSection& section, const string & action)
|
|||
}
|
||||
|
||||
void
|
||||
TempoDialog::init (const BBT_Time& when, double bpm, double note_type, bool movable)
|
||||
TempoDialog::init (const Timecode::BBT_Time& when, double bpm, double note_type, bool movable)
|
||||
{
|
||||
bpm_spinner.set_numeric (true);
|
||||
bpm_spinner.set_digits (2);
|
||||
|
@ -189,7 +189,7 @@ TempoDialog::get_bpm ()
|
|||
}
|
||||
|
||||
bool
|
||||
TempoDialog::get_bbt_time (BBT_Time& requested)
|
||||
TempoDialog::get_bbt_time (Timecode::BBT_Time& requested)
|
||||
{
|
||||
if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) {
|
||||
return false;
|
||||
|
@ -244,7 +244,7 @@ MeterDialog::MeterDialog (TempoMap& map, framepos_t frame, const string & action
|
|||
ok_button (action),
|
||||
cancel_button (_("Cancel"))
|
||||
{
|
||||
BBT_Time when;
|
||||
Timecode::BBT_Time when;
|
||||
frame = map.round_to_bar(frame,0);
|
||||
Meter meter (map.meter_at(frame));
|
||||
|
||||
|
@ -261,7 +261,7 @@ MeterDialog::MeterDialog (MeterSection& section, const string & action)
|
|||
}
|
||||
|
||||
void
|
||||
MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool movable)
|
||||
MeterDialog::init (const Timecode::BBT_Time& when, double bpb, double note_type, bool movable)
|
||||
{
|
||||
snprintf (buf, sizeof (buf), "%.2f", bpb);
|
||||
bpb_entry.set_text (buf);
|
||||
|
@ -447,9 +447,8 @@ MeterDialog::get_note_type ()
|
|||
}
|
||||
|
||||
bool
|
||||
MeterDialog::get_bbt_time (BBT_Time& requested)
|
||||
MeterDialog::get_bbt_time (Timecode::BBT_Time& requested)
|
||||
{
|
||||
|
||||
if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -43,10 +43,10 @@ public:
|
|||
|
||||
double get_bpm ();
|
||||
double get_note_type ();
|
||||
bool get_bbt_time (ARDOUR::BBT_Time&);
|
||||
bool get_bbt_time (Timecode::BBT_Time&);
|
||||
|
||||
private:
|
||||
void init (const ARDOUR::BBT_Time& start, double, double, bool);
|
||||
void init (const Timecode::BBT_Time& start, double, double, bool);
|
||||
void bpm_changed ();
|
||||
bool bpm_button_press (GdkEventButton* );
|
||||
bool bpm_button_release (GdkEventButton* );
|
||||
|
@ -75,10 +75,10 @@ public:
|
|||
|
||||
double get_bpb ();
|
||||
double get_note_type ();
|
||||
bool get_bbt_time (ARDOUR::BBT_Time&);
|
||||
bool get_bbt_time (Timecode::BBT_Time&);
|
||||
|
||||
private:
|
||||
void init (const ARDOUR::BBT_Time&, double, double, bool);
|
||||
void init (const Timecode::BBT_Time&, double, double, bool);
|
||||
bool entry_key_press (GdkEventKey* );
|
||||
bool entry_key_release (GdkEventKey* );
|
||||
void note_types_change ();
|
||||
|
|
|
@ -115,14 +115,14 @@ class Location : public SessionHandleRef, public PBD::StatefulDestructible
|
|||
void recompute_frames_from_bbt ();
|
||||
|
||||
private:
|
||||
std::string _name;
|
||||
framepos_t _start;
|
||||
BBT_Time _bbt_start;
|
||||
framepos_t _end;
|
||||
BBT_Time _bbt_end;
|
||||
Flags _flags;
|
||||
bool _locked;
|
||||
PositionLockStyle _position_lock_style;
|
||||
std::string _name;
|
||||
framepos_t _start;
|
||||
Timecode::BBT_Time _bbt_start;
|
||||
framepos_t _end;
|
||||
Timecode::BBT_Time _bbt_end;
|
||||
Flags _flags;
|
||||
bool _locked;
|
||||
PositionLockStyle _position_lock_style;
|
||||
|
||||
void set_mark (bool yn);
|
||||
bool set_flag_internal (bool yn, Flags flag);
|
||||
|
|
|
@ -369,7 +369,7 @@ class Region
|
|||
framecnt_t _last_length;
|
||||
framepos_t _last_position;
|
||||
mutable RegionEditState _first_edit;
|
||||
BBT_Time _bbt_time;
|
||||
Timecode::BBT_Time _bbt_time;
|
||||
AnalysisFeatureList _transients;
|
||||
|
||||
mutable uint64_t _read_data_count; ///< modified in read()
|
||||
|
|
|
@ -43,6 +43,8 @@
|
|||
|
||||
#include "midi++/types.h"
|
||||
|
||||
#include "timecode/time.h"
|
||||
|
||||
#include "ardour/ardour.h"
|
||||
#include "ardour/click.h"
|
||||
#include "ardour/chan_count.h"
|
||||
|
@ -50,7 +52,6 @@
|
|||
#include "ardour/session_configuration.h"
|
||||
#include "ardour/session_event.h"
|
||||
#include "ardour/location.h"
|
||||
#include "ardour/timecode.h"
|
||||
#include "ardour/interpolation.h"
|
||||
#include "ardour/speakers.h"
|
||||
|
||||
|
@ -449,7 +450,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
|||
|
||||
void sync_time_vars();
|
||||
|
||||
void bbt_time (framepos_t when, BBT_Time&);
|
||||
void bbt_time (framepos_t when, Timecode::BBT_Time&);
|
||||
void timecode_to_sample(Timecode::Time& timecode, framepos_t& sample, bool use_offset, bool use_subframes) const;
|
||||
void sample_to_timecode(framepos_t sample, Timecode::Time& timecode, bool use_offset, bool use_subframes) const;
|
||||
void timecode_time (Timecode::Time &);
|
||||
|
@ -478,7 +479,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
|||
TempoMap& tempo_map() { return *_tempo_map; }
|
||||
|
||||
/// signals the current transport position in frames, bbt and timecode time (in that order)
|
||||
PBD::Signal3<void, const framepos_t &, const BBT_Time&, const Timecode::Time&> tick;
|
||||
PBD::Signal3<void, const framepos_t &, const Timecode::BBT_Time&, const Timecode::Time&> tick;
|
||||
|
||||
/* region info */
|
||||
|
||||
|
|
|
@ -78,15 +78,15 @@ class Meter {
|
|||
|
||||
class MetricSection {
|
||||
public:
|
||||
MetricSection (const BBT_Time& start)
|
||||
MetricSection (const Timecode::BBT_Time& start)
|
||||
: _start (start), _frame (0), _movable (true) {}
|
||||
MetricSection (framepos_t start)
|
||||
: _frame (start), _movable (true) {}
|
||||
|
||||
virtual ~MetricSection() {}
|
||||
|
||||
const BBT_Time& start() const { return _start; }
|
||||
framepos_t frame() const { return _frame; }
|
||||
const Timecode::BBT_Time& start() const { return _start; }
|
||||
framepos_t frame() const { return _frame; }
|
||||
|
||||
void set_movable (bool yn) { _movable = yn; }
|
||||
bool movable() const { return _movable; }
|
||||
|
@ -95,7 +95,7 @@ class MetricSection {
|
|||
_frame = f;
|
||||
}
|
||||
|
||||
virtual void set_start (const BBT_Time& w) {
|
||||
virtual void set_start (const Timecode::BBT_Time& w) {
|
||||
_start = w;
|
||||
}
|
||||
|
||||
|
@ -108,14 +108,14 @@ class MetricSection {
|
|||
int compare (MetricSection *, bool) const;
|
||||
|
||||
private:
|
||||
BBT_Time _start;
|
||||
framepos_t _frame;
|
||||
bool _movable;
|
||||
Timecode::BBT_Time _start;
|
||||
framepos_t _frame;
|
||||
bool _movable;
|
||||
};
|
||||
|
||||
class MeterSection : public MetricSection, public Meter {
|
||||
public:
|
||||
MeterSection (const BBT_Time& start, double bpb, double note_type)
|
||||
MeterSection (const Timecode::BBT_Time& start, double bpb, double note_type)
|
||||
: MetricSection (start), Meter (bpb, note_type) {}
|
||||
MeterSection (framepos_t start, double bpb, double note_type)
|
||||
: MetricSection (start), Meter (bpb, note_type) {}
|
||||
|
@ -128,7 +128,7 @@ class MeterSection : public MetricSection, public Meter {
|
|||
|
||||
class TempoSection : public MetricSection, public Tempo {
|
||||
public:
|
||||
TempoSection (const BBT_Time& start, double qpm, double note_type)
|
||||
TempoSection (const Timecode::BBT_Time& start, double qpm, double note_type)
|
||||
: MetricSection (start), Tempo (qpm, note_type) {}
|
||||
TempoSection (framepos_t start, double qpm, double note_type)
|
||||
: MetricSection (start), Tempo (qpm, note_type) {}
|
||||
|
@ -151,18 +151,18 @@ class TempoMetric {
|
|||
void set_tempo (const Tempo& t) { _tempo = &t; }
|
||||
void set_meter (const Meter& m) { _meter = &m; }
|
||||
void set_frame (framepos_t f) { _frame = f; }
|
||||
void set_start (const BBT_Time& t) { _start = t; }
|
||||
void set_start (const Timecode::BBT_Time& t) { _start = t; }
|
||||
|
||||
const Meter& meter() const { return *_meter; }
|
||||
const Tempo& tempo() const { return *_tempo; }
|
||||
framepos_t frame() const { return _frame; }
|
||||
const BBT_Time& start() const { return _start; }
|
||||
const Timecode::BBT_Time& start() const { return _start; }
|
||||
|
||||
private:
|
||||
const Meter* _meter;
|
||||
const Tempo* _tempo;
|
||||
framepos_t _frame;
|
||||
BBT_Time _start;
|
||||
const Meter* _meter;
|
||||
const Tempo* _tempo;
|
||||
framepos_t _frame;
|
||||
Timecode::BBT_Time _start;
|
||||
};
|
||||
|
||||
class TempoMap : public PBD::StatefulDestructible
|
||||
|
@ -200,11 +200,11 @@ class TempoMap : public PBD::StatefulDestructible
|
|||
|
||||
BBTPointList *get_points (framepos_t start, framepos_t end) const;
|
||||
|
||||
void bbt_time (framepos_t when, BBT_Time&) const;
|
||||
framecnt_t frame_time (const BBT_Time&) const;
|
||||
framecnt_t bbt_duration_at (framepos_t, const BBT_Time&, int dir) const;
|
||||
void bbt_time (framepos_t when, Timecode::BBT_Time&) const;
|
||||
framecnt_t frame_time (const Timecode::BBT_Time&) const;
|
||||
framecnt_t bbt_duration_at (framepos_t, const Timecode::BBT_Time&, int dir) const;
|
||||
|
||||
void bbt_time_add (framepos_t origin, BBT_Time& start, const BBT_Time& shift);
|
||||
void bbt_time_add (framepos_t origin, Timecode::BBT_Time& start, const Timecode::BBT_Time& shift);
|
||||
|
||||
static const Tempo& default_tempo() { return _default_tempo; }
|
||||
static const Meter& default_meter() { return _default_meter; }
|
||||
|
@ -214,14 +214,14 @@ class TempoMap : public PBD::StatefulDestructible
|
|||
|
||||
const TempoSection& tempo_section_at (framepos_t);
|
||||
|
||||
void add_tempo(const Tempo&, BBT_Time where);
|
||||
void add_meter(const Meter&, BBT_Time where);
|
||||
void add_tempo(const Tempo&, Timecode::BBT_Time where);
|
||||
void add_meter(const Meter&, Timecode::BBT_Time where);
|
||||
|
||||
void add_tempo(const Tempo&, framepos_t where);
|
||||
void add_meter(const Meter&, framepos_t where);
|
||||
|
||||
void move_tempo (TempoSection&, const BBT_Time& to);
|
||||
void move_meter (MeterSection&, const BBT_Time& to);
|
||||
void move_tempo (TempoSection&, const Timecode::BBT_Time& to);
|
||||
void move_meter (MeterSection&, const Timecode::BBT_Time& to);
|
||||
|
||||
void remove_tempo(const TempoSection&);
|
||||
void remove_meter(const MeterSection&);
|
||||
|
@ -242,13 +242,13 @@ class TempoMap : public PBD::StatefulDestructible
|
|||
void dump (std::ostream&) const;
|
||||
void clear ();
|
||||
|
||||
TempoMetric metric_at (BBT_Time bbt) const;
|
||||
TempoMetric metric_at (Timecode::BBT_Time bbt) const;
|
||||
TempoMetric metric_at (framepos_t) const;
|
||||
void bbt_time_with_metric (framepos_t, BBT_Time&, const TempoMetric&) const;
|
||||
void bbt_time_with_metric (framepos_t, Timecode::BBT_Time&, const TempoMetric&) const;
|
||||
|
||||
BBT_Time bbt_add (const BBT_Time&, const BBT_Time&, const TempoMetric&) const;
|
||||
BBT_Time bbt_add (const BBT_Time& a, const BBT_Time& b) const;
|
||||
BBT_Time bbt_subtract (const BBT_Time&, const BBT_Time&) const;
|
||||
Timecode::BBT_Time bbt_add (const Timecode::BBT_Time&, const Timecode::BBT_Time&, const TempoMetric&) const;
|
||||
Timecode::BBT_Time bbt_add (const Timecode::BBT_Time& a, const Timecode::BBT_Time& b) const;
|
||||
Timecode::BBT_Time bbt_subtract (const Timecode::BBT_Time&, const Timecode::BBT_Time&) const;
|
||||
|
||||
void change_existing_tempo_at (framepos_t, double bpm, double note_type);
|
||||
void change_initial_tempo (double bpm, double note_type);
|
||||
|
@ -265,30 +265,30 @@ class TempoMap : public PBD::StatefulDestructible
|
|||
static Meter _default_meter;
|
||||
|
||||
Metrics* metrics;
|
||||
framecnt_t _frame_rate;
|
||||
framecnt_t _frame_rate;
|
||||
framepos_t last_bbt_when;
|
||||
bool last_bbt_valid;
|
||||
BBT_Time last_bbt;
|
||||
Timecode::BBT_Time last_bbt;
|
||||
mutable Glib::RWLock lock;
|
||||
|
||||
void timestamp_metrics (bool use_bbt);
|
||||
|
||||
framepos_t round_to_type (framepos_t fr, int dir, BBTPointType);
|
||||
|
||||
framepos_t frame_time_unlocked (const BBT_Time&) const;
|
||||
framepos_t frame_time_unlocked (const Timecode::BBT_Time&) const;
|
||||
|
||||
void bbt_time_unlocked (framepos_t, BBT_Time&) const;
|
||||
void bbt_time_unlocked (framepos_t, Timecode::BBT_Time&) const;
|
||||
|
||||
framecnt_t bbt_duration_at_unlocked (const BBT_Time& when, const BBT_Time& bbt, int dir) const;
|
||||
framecnt_t bbt_duration_at_unlocked (const Timecode::BBT_Time& when, const Timecode::BBT_Time& bbt, int dir) const;
|
||||
|
||||
const MeterSection& first_meter() const;
|
||||
const TempoSection& first_tempo() const;
|
||||
|
||||
framecnt_t count_frames_between (const BBT_Time&, const BBT_Time&) const;
|
||||
framecnt_t count_frames_between (const Timecode::BBT_Time&, const Timecode::BBT_Time&) const;
|
||||
framecnt_t count_frames_between_metrics (const Meter&, const Tempo&,
|
||||
const BBT_Time&, const BBT_Time&) const;
|
||||
const Timecode::BBT_Time&, const Timecode::BBT_Time&) const;
|
||||
|
||||
int move_metric_section (MetricSection&, const BBT_Time& to);
|
||||
int move_metric_section (MetricSection&, const Timecode::BBT_Time& to);
|
||||
void do_insert (MetricSection* section, bool with_bbt);
|
||||
};
|
||||
|
||||
|
|
|
@ -44,9 +44,9 @@ public:
|
|||
virtual ~Ticker() {}
|
||||
|
||||
virtual void tick (
|
||||
const framepos_t& transport_frames,
|
||||
const BBT_Time& transport_bbt,
|
||||
const Timecode::Time& transport_timecode) = 0;
|
||||
const framepos_t& transport_frames,
|
||||
const Timecode::BBT_Time& transport_bbt,
|
||||
const Timecode::Time& transport_timecode) = 0;
|
||||
|
||||
void set_session (Session* s);
|
||||
};
|
||||
|
@ -68,9 +68,9 @@ public:
|
|||
}
|
||||
|
||||
void tick(
|
||||
const framepos_t& transport_frames,
|
||||
const BBT_Time& transport_bbt,
|
||||
const Timecode::Time& transport_timecode);
|
||||
const framepos_t& transport_frames,
|
||||
const Timecode::BBT_Time& transport_bbt,
|
||||
const Timecode::Time& transport_timecode);
|
||||
|
||||
void set_session (Session* s);
|
||||
void session_going_away();
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
#ifndef __libardour_timecode_h__
|
||||
#define __libardour_timecode_h__
|
||||
|
||||
#include "musictime/time.h"
|
||||
#include "timecode/time.h"
|
||||
|
||||
#endif // __libardour_timecode_h__
|
||||
|
|
|
@ -30,10 +30,12 @@
|
|||
#include <inttypes.h>
|
||||
#include <jack/types.h>
|
||||
#include <jack/midiport.h>
|
||||
#include "musictime/time.h"
|
||||
|
||||
#include "timecode/bbt_time.h"
|
||||
#include "timecode/time.h"
|
||||
|
||||
#include "pbd/id.h"
|
||||
|
||||
#include "ardour/bbt_time.h"
|
||||
#include "ardour/chan_count.h"
|
||||
|
||||
#include <map>
|
||||
|
@ -47,7 +49,7 @@ namespace ARDOUR {
|
|||
class Source;
|
||||
class AudioSource;
|
||||
class Route;
|
||||
class Region;
|
||||
class Region;
|
||||
|
||||
typedef jack_default_audio_sample_t Sample;
|
||||
typedef float pan_t;
|
||||
|
@ -56,28 +58,28 @@ namespace ARDOUR {
|
|||
typedef uint64_t microseconds_t;
|
||||
typedef jack_nframes_t pframes_t;
|
||||
|
||||
/* Any position measured in audio frames.
|
||||
Assumed to be non-negative but not enforced.
|
||||
*/
|
||||
/* Any position measured in audio frames.
|
||||
Assumed to be non-negative but not enforced.
|
||||
*/
|
||||
typedef int64_t framepos_t;
|
||||
|
||||
/* Any distance from a given framepos_t.
|
||||
Maybe positive or negative.
|
||||
*/
|
||||
/* Any distance from a given framepos_t.
|
||||
Maybe positive or negative.
|
||||
*/
|
||||
typedef int64_t frameoffset_t;
|
||||
|
||||
/* Any count of audio frames.
|
||||
Assumed to be positive but not enforced.
|
||||
*/
|
||||
Assumed to be positive but not enforced.
|
||||
*/
|
||||
typedef int64_t framecnt_t;
|
||||
|
||||
static const framepos_t max_framepos = INT64_MAX;
|
||||
static const framecnt_t max_framecnt = INT64_MAX;
|
||||
static const framepos_t max_framepos = INT64_MAX;
|
||||
static const framecnt_t max_framecnt = INT64_MAX;
|
||||
|
||||
// a set of (time) intervals: first of pair is the offset within the region, second is the length of the interval
|
||||
typedef std::list<std::pair<frameoffset_t,framecnt_t> > AudioIntervalResult;
|
||||
// associate a set of intervals with regions (e.g. for silence detection)
|
||||
typedef std::map<boost::shared_ptr<ARDOUR::Region>,AudioIntervalResult> AudioIntervalMap;
|
||||
// a set of (time) intervals: first of pair is the offset within the region, second is the length of the interval
|
||||
typedef std::list<std::pair<frameoffset_t,framecnt_t> > AudioIntervalResult;
|
||||
// associate a set of intervals with regions (e.g. for silence detection)
|
||||
typedef std::map<boost::shared_ptr<ARDOUR::Region>,AudioIntervalResult> AudioIntervalMap;
|
||||
|
||||
struct IOChange {
|
||||
|
||||
|
@ -216,8 +218,8 @@ namespace ARDOUR {
|
|||
|
||||
Type type;
|
||||
|
||||
Timecode::Time timecode;
|
||||
BBT_Time bbt;
|
||||
Timecode::Time timecode;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
union {
|
||||
framecnt_t frames;
|
||||
|
@ -250,11 +252,11 @@ namespace ARDOUR {
|
|||
};
|
||||
|
||||
struct MusicRange {
|
||||
BBT_Time start;
|
||||
BBT_Time end;
|
||||
Timecode::BBT_Time start;
|
||||
Timecode::BBT_Time end;
|
||||
uint32_t id;
|
||||
|
||||
MusicRange (BBT_Time& s, BBT_Time& e, uint32_t i)
|
||||
MusicRange (Timecode::BBT_Time& s, Timecode::BBT_Time& e, uint32_t i)
|
||||
: start (s), end (e), id (i) {}
|
||||
|
||||
bool operator== (const MusicRange& other) const {
|
||||
|
|
|
@ -1331,7 +1331,7 @@ AUPlugin::get_beat_and_tempo_callback (Float64* outCurrentBeat,
|
|||
return kAudioUnitErr_CannotDoInCurrentContext;
|
||||
}
|
||||
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
TempoMetric metric = tmap.metric_at (_session.transport_frame() + current_offset);
|
||||
tmap.bbt_time_with_metric (_session.transport_frame() + current_offset, bbt, metric);
|
||||
|
||||
|
@ -1370,7 +1370,7 @@ AUPlugin::get_musical_time_location_callback (UInt32* outDeltaSampleOffsetToNe
|
|||
return kAudioUnitErr_CannotDoInCurrentContext;
|
||||
}
|
||||
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
TempoMetric metric = tmap.metric_at (_session.transport_frame() + current_offset);
|
||||
tmap.bbt_time_with_metric (_session.transport_frame() + current_offset, bbt, metric);
|
||||
|
||||
|
@ -1462,7 +1462,7 @@ AUPlugin::get_transport_state_callback (Boolean* outIsPlaying,
|
|||
return kAudioUnitErr_CannotDoInCurrentContext;
|
||||
}
|
||||
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
if (outCycleStartBeat) {
|
||||
TempoMetric metric = tmap.metric_at (loc->start() + current_offset);
|
||||
|
|
|
@ -32,9 +32,12 @@
|
|||
#include "midi++/mmc.h"
|
||||
#include "midi++/port.h"
|
||||
#include "midi++/manager.h"
|
||||
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/pthread_utils.h"
|
||||
|
||||
#include "timecode/time.h"
|
||||
|
||||
#include "ardour/configuration.h"
|
||||
#include "ardour/debug.h"
|
||||
#include "ardour/audioengine.h"
|
||||
|
@ -45,7 +48,6 @@
|
|||
#include "ardour/audio_diskstream.h"
|
||||
#include "ardour/slave.h"
|
||||
#include "ardour/cycles.h"
|
||||
#include "ardour/timecode.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
|
|
|
@ -69,15 +69,15 @@ Session::process (pframes_t nframes)
|
|||
}
|
||||
}
|
||||
|
||||
_engine.main_thread()->get_buffers ();
|
||||
_engine.main_thread()->get_buffers ();
|
||||
|
||||
(this->*process_function) (nframes);
|
||||
|
||||
_engine.main_thread()->drop_buffers ();
|
||||
_engine.main_thread()->drop_buffers ();
|
||||
|
||||
// the ticker is for sending time information like MidiClock
|
||||
framepos_t transport_frames = transport_frame();
|
||||
BBT_Time transport_bbt;
|
||||
Timecode::BBT_Time transport_bbt;
|
||||
bbt_time(transport_frames, transport_bbt);
|
||||
Timecode::Time transport_timecode;
|
||||
timecode_time(transport_frames, transport_timecode);
|
||||
|
|
|
@ -47,7 +47,7 @@ using namespace PBD;
|
|||
/* BBT TIME*/
|
||||
|
||||
void
|
||||
Session::bbt_time (framepos_t when, BBT_Time& bbt)
|
||||
Session::bbt_time (framepos_t when, Timecode::BBT_Time& bbt)
|
||||
{
|
||||
_tempo_map->bbt_time (when, bbt);
|
||||
}
|
||||
|
@ -473,11 +473,11 @@ Session::jack_timebase_callback (jack_transport_state_t /*state*/,
|
|||
jack_position_t* pos,
|
||||
int /*new_position*/)
|
||||
{
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
if (pos->frame != _transport_frame) {
|
||||
cerr << "ARDOUR says " << _transport_frame << " JACK says " << pos->frame << endl;
|
||||
}
|
||||
if (pos->frame != _transport_frame) {
|
||||
cerr << "ARDOUR says " << _transport_frame << " JACK says " << pos->frame << endl;
|
||||
}
|
||||
|
||||
/* BBT info */
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ using namespace std;
|
|||
using namespace ARDOUR;
|
||||
using namespace PBD;
|
||||
|
||||
using Timecode::BBT_Time;
|
||||
|
||||
/* _default tempo is 4/4 qtr=120 */
|
||||
|
||||
Meter TempoMap::_default_meter (4.0, 4.0);
|
||||
|
|
|
@ -7,6 +7,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BBTTest);
|
|||
using namespace std;
|
||||
using namespace ARDOUR;
|
||||
|
||||
using Timecode::BBT_Time;
|
||||
|
||||
void
|
||||
BBTTest::addTest ()
|
||||
{
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <sigc++/sigc++.h>
|
||||
#include <cppunit/TestFixture.h>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
#include "ardour/bbt_time.h"
|
||||
#include "timecode/bbt_time.h"
|
||||
|
||||
class BBTTest : public CppUnit::TestFixture
|
||||
{
|
||||
|
|
|
@ -48,8 +48,8 @@ class TestSlaveSessionProxy : public ISlaveSessionProxy {
|
|||
meter (4.0, 4.0)
|
||||
{
|
||||
_tempo_map = new TempoMap (FRAME_RATE);
|
||||
_tempo_map->add_tempo (tempo, BBT_Time(1, 1, 0));
|
||||
_tempo_map->add_meter (meter, BBT_Time(1, 1, 0));
|
||||
_tempo_map->add_tempo (tempo, Timecode::BBT_Time(1, 1, 0));
|
||||
_tempo_map->add_meter (meter, Timecode::BBT_Time(1, 1, 0));
|
||||
}
|
||||
|
||||
// Controlling the mock object
|
||||
|
|
|
@ -103,7 +103,7 @@ void MidiClockTicker::transport_state_changed()
|
|||
send_stop_event(0);
|
||||
}
|
||||
|
||||
tick(position, *((ARDOUR::BBT_Time *) 0), *((Timecode::Time *)0));
|
||||
tick(position, *((Timecode::BBT_Time *) 0), *((Timecode::Time *)0));
|
||||
}
|
||||
|
||||
void MidiClockTicker::position_changed (framepos_t position)
|
||||
|
@ -129,7 +129,7 @@ void MidiClockTicker::transport_looped()
|
|||
_last_tick = loop_location->start() - elapsed_since_last_tick;
|
||||
}
|
||||
|
||||
void MidiClockTicker::tick (const framepos_t& transport_frames, const BBT_Time& /*transport_bbt*/, const Timecode::Time& /*transport_smpt*/)
|
||||
void MidiClockTicker::tick (const framepos_t& transport_frames, const Timecode::BBT_Time& /*transport_bbt*/, const Timecode::Time& /*transport_smpt*/)
|
||||
{
|
||||
if (!Config->get_send_midi_clock() || _session == 0 || _session->transport_speed() != 1.0f || _midi_port == 0)
|
||||
return;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#define __midipp_mmc_h_h__
|
||||
|
||||
#include <jack/types.h>
|
||||
#include "musictime/time.h"
|
||||
#include "timecode/time.h"
|
||||
#include "pbd/signals.h"
|
||||
#include "pbd/ringbuffer.h"
|
||||
#include "midi++/types.h"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <map>
|
||||
|
||||
#include "musictime/time.h"
|
||||
#include "timecode/time.h"
|
||||
#include "pbd/error.h"
|
||||
#include "midi++/mmc.h"
|
||||
#include "midi++/port.h"
|
||||
|
|
|
@ -62,7 +62,7 @@ def build(bld):
|
|||
obj.name = 'libmidipp'
|
||||
obj.target = 'midipp'
|
||||
obj.uselib = 'GLIBMM SIGCPP XML JACK OSX'
|
||||
obj.uselib_local = 'libpbd libevoral libmusictime'
|
||||
obj.uselib_local = 'libpbd libevoral libtimecode'
|
||||
obj.vnum = LIBMIDIPP_LIB_VERSION
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#include <jack/types.h>
|
||||
|
||||
#include "musictime/time.h"
|
||||
#include "timecode/time.h"
|
||||
|
||||
namespace ARDOUR {
|
||||
class Session;
|
||||
|
|
|
@ -30,7 +30,7 @@ def build(bld):
|
|||
obj.includes = ['.', './control_protocol']
|
||||
obj.name = 'libardour_cp'
|
||||
obj.target = 'ardourcp'
|
||||
obj.uselib_local = 'libardour libmusictime'
|
||||
obj.uselib_local = 'libardour libtimecode'
|
||||
obj.vnum = LIBARDOUR_CP_LIB_VERSION
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||
|
||||
|
|
|
@ -559,7 +559,7 @@ TranzportControlProtocol::show_bbt (framepos_t where)
|
|||
{
|
||||
if ((where != last_where) || lcd_isdamaged(1,9,8)) {
|
||||
char buf[16];
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
session->tempo_map().bbt_time (where, bbt);
|
||||
sprintf (buf, "%03" PRIu32 "|%02" PRIu32 "|%04" PRIu32, bbt.bars,bbt.beats,bbt.ticks);
|
||||
last_bars = bbt.bars;
|
||||
|
|
|
@ -1050,7 +1050,7 @@ MackieControlProtocol::update_automation (RouteSignal & rs)
|
|||
string
|
||||
MackieControlProtocol::format_bbt_timecode (framepos_t now_frame)
|
||||
{
|
||||
BBT_Time bbt_time;
|
||||
Timecode::BBT_Time bbt_time;
|
||||
session->bbt_time (now_frame, bbt_time);
|
||||
|
||||
// According to the Logic docs
|
||||
|
|
|
@ -288,7 +288,7 @@ TranzportControlProtocol::show_bbt (framepos_t where)
|
|||
{
|
||||
if (where != last_where) {
|
||||
char buf[16];
|
||||
BBT_Time bbt;
|
||||
Timecode::BBT_Time bbt;
|
||||
|
||||
// When recording or playing back < 1.0 speed do 1 or 2
|
||||
// FIXME - clean up state machine & break up logic
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include <math.h>
|
||||
|
||||
#include "musictime/time.h"
|
||||
#include "timecode/time.h"
|
||||
|
||||
namespace Timecode {
|
||||
|
|
@ -17,25 +17,23 @@
|
|||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_bbt_time_h__
|
||||
#define __ardour_bbt_time_h__
|
||||
#ifndef __timecode_bbt_time_h__
|
||||
#define __timecode_bbt_time_h__
|
||||
|
||||
#include <ostream>
|
||||
#include <stdint.h>
|
||||
#include <iomanip>
|
||||
|
||||
namespace ARDOUR {
|
||||
namespace Timecode {
|
||||
|
||||
/** Bar, Beat, Tick Time (i.e. Tempo-Based Time) */
|
||||
struct BBT_Time {
|
||||
uint32_t bars;
|
||||
uint32_t beats;
|
||||
uint32_t ticks;
|
||||
|
||||
BBT_Time() {
|
||||
bars = 1;
|
||||
beats = 1;
|
||||
ticks = 0;
|
||||
}
|
||||
BBT_Time ()
|
||||
: bars (1), beats (1), ticks (0) {}
|
||||
|
||||
BBT_Time (uint32_t ba, uint32_t be, uint32_t t)
|
||||
: bars (ba), beats (be), ticks (t) {}
|
||||
|
@ -54,14 +52,14 @@ struct BBT_Time {
|
|||
}
|
||||
|
||||
inline std::ostream&
|
||||
operator<< (std::ostream& o, const ARDOUR::BBT_Time& bbt)
|
||||
operator<< (std::ostream& o, const Timecode::BBT_Time& bbt)
|
||||
{
|
||||
o << bbt.bars << '|' << bbt.beats << '|' << bbt.ticks;
|
||||
return o;
|
||||
}
|
||||
|
||||
inline std::ostream&
|
||||
print_padded (std::ostream& o, const ARDOUR::BBT_Time& bbt)
|
||||
print_padded (std::ostream& o, const Timecode::BBT_Time& bbt)
|
||||
{
|
||||
o << std::setfill ('0') << std::right
|
||||
<< std::setw (3) << bbt.bars << "|"
|
||||
|
@ -71,4 +69,4 @@ print_padded (std::ostream& o, const ARDOUR::BBT_Time& bbt)
|
|||
return o;
|
||||
}
|
||||
|
||||
#endif /* __ardour_bbt_time_h__ */
|
||||
#endif /* __timecode_bbt_time_h__ */
|
|
@ -4,7 +4,7 @@ import Options
|
|||
import os
|
||||
|
||||
# Version of this package (even if built as a child)
|
||||
MUSICTIME_VERSION = '0.0.0'
|
||||
TIMECODE_VERSION = '0.0.0'
|
||||
|
||||
# Library version (UNIX style major, minor, micro)
|
||||
# major increment <=> incompatible changes
|
||||
|
@ -12,11 +12,11 @@ MUSICTIME_VERSION = '0.0.0'
|
|||
# micro increment <=> no interface changes
|
||||
# Version history:
|
||||
# 0.0.0 = 0,0,0
|
||||
MUSICTIME_LIB_VERSION = '0.0.0'
|
||||
TIMECODE_LIB_VERSION = '0.0.0'
|
||||
|
||||
# Variables for 'waf dist'
|
||||
APPNAME = 'musictime'
|
||||
VERSION = MUSICTIME_VERSION
|
||||
APPNAME = 'timecode'
|
||||
VERSION = TIMECODE_VERSION
|
||||
|
||||
# Mandatory variables
|
||||
srcdir = '.'
|
||||
|
@ -36,9 +36,9 @@ def build(bld):
|
|||
obj.source = 'src/time.cc'
|
||||
obj.export_incdirs = ['.']
|
||||
obj.includes = ['.', './src']
|
||||
obj.name = 'libmusictime'
|
||||
obj.target = 'musictime'
|
||||
obj.vnum = MUSICTIME_LIB_VERSION
|
||||
obj.name = 'libtimecode'
|
||||
obj.target = 'timecode'
|
||||
obj.vnum = TIMECODE_LIB_VERSION
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||
|
||||
def shutdown():
|
4
wscript
4
wscript
|
@ -25,7 +25,7 @@ children = [
|
|||
'libs/taglib',
|
||||
'libs/rubberband',
|
||||
'libs/surfaces',
|
||||
'libs/musictime',
|
||||
'libs/timecode',
|
||||
'libs/ardour',
|
||||
'libs/gtkmm2ext',
|
||||
'libs/clearlooks-newer',
|
||||
|
@ -583,7 +583,7 @@ def build(bld):
|
|||
bld.path.find_dir ('libs/evoral/evoral')
|
||||
bld.path.find_dir ('libs/vamp-sdk/vamp-sdk')
|
||||
bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol')
|
||||
bld.path.find_dir ('libs/musictime/musictime')
|
||||
bld.path.find_dir ('libs/timecode/timecode')
|
||||
bld.path.find_dir ('libs/rubberband/rubberband')
|
||||
bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext')
|
||||
bld.path.find_dir ('libs/ardour/ardour')
|
||||
|
|
Loading…
Reference in New Issue