start adding new BBT marker support

This commit is contained in:
Paul Davis 2021-02-10 14:34:30 -07:00
parent 34a3db7eaa
commit 4f1ad4ed0d
7 changed files with 45 additions and 0 deletions

View file

@ -1660,6 +1660,7 @@ private:
bool canvas_tempo_marker_event (GdkEvent* event,ArdourCanvas::Item*, TempoMarker*);
bool canvas_tempo_curve_event (GdkEvent* event,ArdourCanvas::Item*, TempoCurve*);
bool canvas_meter_marker_event (GdkEvent* event,ArdourCanvas::Item*, MeterMarker*);
bool canvas_bbt_marker_event (GdkEvent* event,ArdourCanvas::Item*, BBTMarker*);
bool canvas_automation_track_event(GdkEvent* event, ArdourCanvas::Item*, AutomationTimeAxisView*);
bool canvas_note_event (GdkEvent* event, ArdourCanvas::Item*);

View file

@ -1435,6 +1435,7 @@ Editor::which_canvas_cursor(ItemType type) const
/* These items use the grabber cursor at all times */
case MeterMarkerItem:
case BBTMarkerItem:
case TempoMarkerItem:
case MeterBarItem:
case TempoBarItem:

View file

@ -1026,6 +1026,12 @@ Editor::canvas_meter_marker_event (GdkEvent *event, ArdourCanvas::Item* item, Me
return typed_event (item, event, MeterMarkerItem);
}
bool
Editor::canvas_bbt_marker_event (GdkEvent *event, ArdourCanvas::Item* item, BBTMarker* /*marker*/)
{
return typed_event (item, event, BBTMarkerItem);
}
bool
Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType type)
{

View file

@ -37,6 +37,7 @@ enum ItemType {
GainLineItem,
AutomationLineItem,
MeterMarkerItem,
BBTMarkerItem,
TempoCurveItem,
TempoMarkerItem,
MeterBarItem,

View file

@ -688,3 +688,22 @@ MeterMarker::reset_meter (Temporal::MeterPoint & m)
{
_meter = m;
}
/***********************************************************************/
BBTMarker::BBTMarker (PublicEditor& editor, ArdourCanvas::Container& parent, guint32 rgba, const string& text, Temporal::MusicTimePoint& p)
: ArdourMarker (editor, parent, rgba, text, BBTPosition, p.time(), false)
, _point (p)
{
group->Event.connect (sigc::bind (sigc::mem_fun (editor, &PublicEditor::canvas_bbt_marker_event), group, this));
}
BBTMarker::~BBTMarker ()
{
}
void
BBTMarker::reset_point (Temporal::MusicTimePoint & p)
{
_point = p;
}

View file

@ -38,6 +38,7 @@
namespace Temporal {
class TempoPoint;
class MeterPoint;
class MusicTimePoint;
}
class PublicEditor;
@ -54,6 +55,7 @@ public:
Mark,
Tempo,
Meter,
BBTPosition,
SessionStart, ///< session start
SessionEnd, ///< session end
RangeStart,
@ -183,4 +185,18 @@ class MeterMarker : public ArdourMarker
Temporal::MeterPoint& _meter;
};
class BBTMarker : public ArdourMarker
{
public:
BBTMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, Temporal::MusicTimePoint&);
~BBTMarker ();
void reset_point (Temporal::MusicTimePoint &);
Temporal::MusicTimePoint& point() const { return _point; }
private:
Temporal::MusicTimePoint& _point;
};
#endif /* __gtk_ardour_marker_h__ */

View file

@ -441,6 +441,7 @@ public:
virtual bool canvas_tempo_marker_event (GdkEvent* event, ArdourCanvas::Item*, TempoMarker*) = 0;
virtual bool canvas_tempo_curve_event (GdkEvent* event, ArdourCanvas::Item*, TempoCurve*) = 0;
virtual bool canvas_meter_marker_event (GdkEvent* event, ArdourCanvas::Item*, MeterMarker*) = 0;
virtual bool canvas_bbt_marker_event (GdkEvent* event, ArdourCanvas::Item*, BBTMarker*) = 0;
virtual bool canvas_automation_track_event(GdkEvent* event, ArdourCanvas::Item*, AutomationTimeAxisView*) = 0;
virtual bool canvas_tempo_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;