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
This commit is contained in:
Paul Davis 2008-01-15 00:07:35 +00:00
parent cc607b9fb9
commit 679e7fcffa
6 changed files with 68 additions and 31 deletions

View file

@ -1520,6 +1520,12 @@ Editor::temporal_zoom (gdouble fpu)
double nfpu; double nfpu;
double l; 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; nfpu = fpu;
new_page_size = (nframes_t) floor (canvas_width * nfpu); new_page_size = (nframes_t) floor (canvas_width * nfpu);

View file

@ -428,11 +428,21 @@ EngineControl::build_command_line (vector<string>& cmd)
cmd.push_back ("netjack"); cmd.push_back ("netjack");
} else if (driver == X_("FFADO")) { } else if (driver == X_("FFADO")) {
using_ffado = true; 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")) { } else if ( driver == X_("Dummy")) {
using_dummy = true; using_dummy = true;
cmd.push_back ("dummy"); cmd.push_back ("dummy");
} }
/* driver arguments */ /* driver arguments */

View file

@ -276,6 +276,11 @@ PlugUIBase::bypass_toggled ()
if ((x = bypass_button.get_active()) == insert->active()) { if ((x = bypass_button.get_active()) == insert->active()) {
insert->set_active (!x, this); insert->set_active (!x, this);
if (insert->active()) {
bypass_button.set_label (_("Bypass"));
} else {
bypass_button.set_label (_("Active"));
}
} }
} }

View file

@ -328,30 +328,12 @@ Selection::add (TimeAxisView* track)
} }
} }
void
Selection::add (const RegionSelection& rs)
{
if (!rs.empty()) {
regions.insert (regions.end(), rs.begin(), rs.end());
RegionsChanged(); /* EMIT SIGNAL */
}
}
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 ();
}
}
void void
Selection::add (vector<RegionView*>& v) Selection::add (vector<RegionView*>& v)
{ {
/* XXX This method or the add (const RegionSelection&) needs to go
*/
bool changed = false; bool changed = false;
for (vector<RegionView*>::iterator i = v.begin(); i != v.end(); ++i) { for (vector<RegionView*>::iterator i = v.begin(); i != v.end(); ++i) {
@ -368,6 +350,40 @@ Selection::add (vector<RegionView*>& v)
} }
} }
void
Selection::add (const RegionSelection& rs)
{
/* XXX This method or the add (const vector<RegionView*>&) needs to go
*/
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) {
add (&(*i)->get_trackview());
}
}
}
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 long
Selection::add (nframes_t start, nframes_t end) Selection::add (nframes_t start, nframes_t end)
{ {

View file

@ -1,4 +1,4 @@
#ifndef __ardour_svn_revision_h__ #ifndef __ardour_svn_revision_h__
#define __ardour_svn_revision_h__ #define __ardour_svn_revision_h__
static const char* ardour_svn_revision = "2884"; static const char* ardour_svn_revision = "2903";
#endif #endif