first pass at internal sends. this is a very tentative work in progress, and it is possible that major changes may follow in the near future. it is certainly not complete, but the fundamental changes to Port/Buffer operation merit a commit at this point

git-svn-id: svn://localhost/ardour2/branches/3.0@4464 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2009-01-30 07:40:13 +00:00
parent ee62ee07d3
commit 70b939da4f
48 changed files with 679 additions and 404 deletions

View file

@ -35,6 +35,7 @@
#include <gtkmm2ext/gtk_ui.h>
#include <midi++/manager.h>
#include <pbd/fastlog.h>
#include <pbd/stacktrace.h>
#include "ardour_ui.h"
#include "gain_meter.h"
@ -160,6 +161,8 @@ GainMeterBase::~GainMeterBase ()
void
GainMeterBase::set_io (boost::shared_ptr<IO> io)
{
cerr << this << " Clear all connections\n";
connections.clear ();
_io = io;
@ -200,6 +203,8 @@ GainMeterBase::set_io (boost::shared_ptr<IO> io)
}
}
cerr << "Connect " << this << " to gain change for " << _io->name() << endl;
connections.push_back (_io->gain_control()->Changed.connect (mem_fun(*this, &GainMeterBase::gain_changed)));
gain_changed ();
@ -371,8 +376,11 @@ GainMeterBase::show_gain ()
void
GainMeterBase::gain_adjusted ()
{
cerr << this << " for " << _io->name() << " GAIN ADJUSTED\n";
if (!ignore_toggle) {
cerr << "Set GC\n";
_io->gain_control()->set_value (slider_position_to_gain (gain_adjustment.get_value()));
cerr << "Set GC OUT\n";
}
show_gain ();
}
@ -382,6 +390,9 @@ GainMeterBase::effective_gain_display ()
{
gfloat value = gain_to_slider_position (_io->effective_gain());
cerr << this << " for " << _io->name() << " EGAIN = " << value << " AGAIN = " << gain_adjustment.get_value () << endl;
// stacktrace (cerr, 20);
if (gain_adjustment.get_value() != value) {
ignore_toggle = true;
gain_adjustment.set_value (value);