summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-15 00:07:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-15 00:07:35 +0000
commit679e7fcffa01c2bb8d3a1e3a50d8a7f838976f99 (patch)
tree8a3c2ada03ab2d8cc65624cc17635ebc663abd88
parentcc607b9fb9d0f14ec2fe00366da3c7574874d06f (diff)
fix copy-drag SNAFU; fix shuffling playhead when zoom gets so low that rounding errors cause an iterative convergence on the "true" position if zoom-focus = playhead
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2914 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor_mouse.cc6
-rw-r--r--gtk2_ardour/editor_ops.cc8
-rw-r--r--gtk2_ardour/engine_dialog.cc18
-rw-r--r--gtk2_ardour/plugin_ui.cc5
-rw-r--r--gtk2_ardour/selection.cc50
-rw-r--r--svn_revision.h2
6 files changed, 63 insertions, 26 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 9e5d709257..4cec847db7 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -3001,7 +3001,7 @@ Editor::possibly_copy_regions_during_grab (GdkEvent* event)
/* reset selection to new regionviews */
selection->set (new_regionviews);
-
+
/* reset drag_info data to reflect the fact that we are dragging the copies */
drag_info.data = new_regionviews.front();
@@ -3400,7 +3400,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
pair<set<boost::shared_ptr<Playlist> >::iterator,bool> insert_result;
const list<RegionView*>& layered_regions = selection->regions.by_layer();
-
+
for (list<RegionView*>::const_iterator i = layered_regions.begin(); i != layered_regions.end(); ++i) {
RegionView* rv = (*i);
@@ -3765,7 +3765,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
sigc::connection c = atv->view()->RegionViewAdded.connect (mem_fun(*this, &Editor::collect_new_region_view));
to_playlist->add_region (newregion, (nframes_t) (where * atv->get_diskstream()->speed()));
c.disconnect ();
-
+
if (!latest_regionviews.empty()) {
// XXX why just the first one ? we only expect one
atv->reveal_dependent_views (*latest_regionviews.front());
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 58c88ab3c6..46a2ac53d0 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1520,6 +1520,12 @@ Editor::temporal_zoom (gdouble fpu)
double nfpu;
double l;
+ /* XXX this limit is also in ::set_frames_per_unit() */
+
+ if (frames_per_unit <= 2.0 && fpu <= frames_per_unit) {
+ return;
+ }
+
nfpu = fpu;
new_page_size = (nframes_t) floor (canvas_width * nfpu);
@@ -1554,7 +1560,7 @@ Editor::temporal_zoom (gdouble fpu)
where = playhead_cursor->current_frame;
l = - ((new_page_size * ((where - current_leftmost)/(double)current_page)) - where);
-
+
if (l < 0) {
leftmost_after_zoom = 0;
} else if (l > max_frames) {
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc
index 2b53c67158..5cd4528983 100644
--- a/gtk2_ardour/engine_dialog.cc
+++ b/gtk2_ardour/engine_dialog.cc
@@ -428,11 +428,21 @@ EngineControl::build_command_line (vector<string>& cmd)
cmd.push_back ("netjack");
} else if (driver == X_("FFADO")) {
using_ffado = true;
- cmd.push_back ("firewire");
+
+ /* do this until FFADO becomes the standard */
+
+ char* hack = getenv ("ARDOUR_FIREWIRE_DRIVER_NAME");
+
+ if (hack) {
+ cmd.push_back (hack);
+ } else {
+ cmd.push_back ("freebob");
+ }
+
} else if ( driver == X_("Dummy")) {
- using_dummy = true;
- cmd.push_back ("dummy");
- }
+ using_dummy = true;
+ cmd.push_back ("dummy");
+ }
/* driver arguments */
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index dc51db46b6..ed77747d7d 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -276,6 +276,11 @@ PlugUIBase::bypass_toggled ()
if ((x = bypass_button.get_active()) == insert->active()) {
insert->set_active (!x, this);
+ if (insert->active()) {
+ bypass_button.set_label (_("Bypass"));
+ } else {
+ bypass_button.set_label (_("Active"));
+ }
}
}
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index 2d35fa61aa..a647cbcb6e 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -329,32 +329,36 @@ Selection::add (TimeAxisView* track)
}
void
-Selection::add (const RegionSelection& rs)
+Selection::add (vector<RegionView*>& v)
{
- if (!rs.empty()) {
- regions.insert (regions.end(), rs.begin(), rs.end());
- RegionsChanged(); /* EMIT SIGNAL */
- }
-}
+ /* XXX This method or the add (const RegionSelection&) needs to go
+ */
-void
-Selection::add (RegionView* r)
-{
- if (find (regions.begin(), regions.end(), r) == regions.end()) {
- regions.add (r);
- if (Config->get_link_region_and_track_selection()) {
- add (&r->get_trackview());
+ bool changed = false;
+
+ for (vector<RegionView*>::iterator i = v.begin(); i != v.end(); ++i) {
+ if (find (regions.begin(), regions.end(), (*i)) == regions.end()) {
+ changed = regions.add ((*i));
+ if (Config->get_link_region_and_track_selection() && changed) {
+ add (&(*i)->get_trackview());
+ }
}
+ }
+
+ if (changed) {
RegionsChanged ();
}
}
void
-Selection::add (vector<RegionView*>& v)
+Selection::add (const RegionSelection& rs)
{
- bool changed = false;
+ /* XXX This method or the add (const vector<RegionView*>&) needs to go
+ */
- for (vector<RegionView*>::iterator i = v.begin(); i != v.end(); ++i) {
+ bool changed = false;
+
+ for (RegionSelection::const_iterator i = rs.begin(); i != rs.end(); ++i) {
if (find (regions.begin(), regions.end(), (*i)) == regions.end()) {
changed = regions.add ((*i));
if (Config->get_link_region_and_track_selection() && changed) {
@@ -362,12 +366,24 @@ Selection::add (vector<RegionView*>& v)
}
}
}
-
+
if (changed) {
RegionsChanged ();
}
}
+void
+Selection::add (RegionView* r)
+{
+ if (find (regions.begin(), regions.end(), r) == regions.end()) {
+ regions.add (r);
+ if (Config->get_link_region_and_track_selection()) {
+ add (&r->get_trackview());
+ }
+ RegionsChanged ();
+ }
+}
+
long
Selection::add (nframes_t start, nframes_t end)
{
diff --git a/svn_revision.h b/svn_revision.h
index fc376f4016..82e05f6d6e 100644
--- a/svn_revision.h
+++ b/svn_revision.h
@@ -1,4 +1,4 @@
#ifndef __ardour_svn_revision_h__
#define __ardour_svn_revision_h__
-static const char* ardour_svn_revision = "2884";
+static const char* ardour_svn_revision = "2903";
#endif