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:
David Robillard 2010-12-14 18:13:37 +00:00
parent 341c409fa1
commit 4b861e6039
41 changed files with 173 additions and 167 deletions

View File

@ -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

View File

@ -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());

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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 ()) {

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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 ();

View File

@ -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);

View File

@ -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()

View File

@ -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 */

View File

@ -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);
};

View File

@ -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();

View File

@ -19,6 +19,6 @@
#ifndef __libardour_timecode_h__
#define __libardour_timecode_h__
#include "musictime/time.h"
#include "timecode/time.h"
#endif // __libardour_timecode_h__

View File

@ -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 {

View File

@ -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);

View File

@ -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"

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -7,6 +7,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BBTTest);
using namespace std;
using namespace ARDOUR;
using Timecode::BBT_Time;
void
BBTTest::addTest ()
{

View File

@ -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
{

View File

@ -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

View File

@ -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;

View File

@ -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"

View File

@ -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"

View File

@ -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')

View File

@ -30,7 +30,7 @@
#include <jack/types.h>
#include "musictime/time.h"
#include "timecode/time.h"
namespace ARDOUR {
class Session;

View File

@ -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')

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -21,7 +21,7 @@
#include <math.h>
#include "musictime/time.h"
#include "timecode/time.h"
namespace Timecode {

View File

@ -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__ */

View File

@ -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():

View File

@ -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')