using namespace ARDOUR;
using namespace Gtk;
-IOSelector::IOSelector (Gtk::Window* p, ARDOUR::Session& session, boost::shared_ptr<ARDOUR::IO> io)
+IOSelector::IOSelector (Gtk::Window* p, ARDOUR::Session* session, boost::shared_ptr<ARDOUR::IO> io)
: PortMatrix (p, session, io->default_type())
, _io (io)
{
void
IOSelector::setup_ports (int dim)
{
+ if (!_session) {
+ return;
+ }
+
_ports[dim].suspend_signals ();
if (dim == _other) {
for (ARDOUR::Bundle::PortList::const_iterator i = our_ports.begin(); i != our_ports.end(); ++i) {
for (ARDOUR::Bundle::PortList::const_iterator j = other_ports.begin(); j != other_ports.end(); ++j) {
- Port* f = _session.engine().get_port_by_name (*i);
+ Port* f = _session->engine().get_port_by_name (*i);
if (!f) {
return;
}
for (ARDOUR::Bundle::PortList::const_iterator i = our_ports.begin(); i != our_ports.end(); ++i) {
for (ARDOUR::Bundle::PortList::const_iterator j = other_ports.begin(); j != other_ports.end(); ++j) {
- Port* f = _session.engine().get_port_by_name (*i);
+ Port* f = _session->engine().get_port_by_name (*i);
/* since we are talking about an IO, our ports should all have an associated Port *,
so the above call should never fail */
return (dim == _other);
}
-IOSelectorWindow::IOSelectorWindow (ARDOUR::Session& session, boost::shared_ptr<ARDOUR::IO> io, bool /*can_cancel*/)
+IOSelectorWindow::IOSelectorWindow (ARDOUR::Session* session, boost::shared_ptr<ARDOUR::IO> io, bool /*can_cancel*/)
: _selector (this, session, io)
{
set_name ("IOSelectorWindow2");
set_title (_("I/O selector"));
- add (_selector);
+ Gtk::Alignment* alignment = manage(new Gtk::Alignment(0.5, 0.5, 0.0, 0.0));
+ alignment->add (_selector);
+ add (*alignment);
set_position (Gtk::WIN_POS_MOUSE);
show_all ();
- signal_delete_event().connect (mem_fun (*this, &IOSelectorWindow::wm_delete));
+ signal_delete_event().connect (sigc::mem_fun (*this, &IOSelectorWindow::wm_delete));
}
bool
void
IOSelectorWindow::io_name_changed (void* src)
{
- ENSURE_GUI_THREAD(bind (mem_fun(*this, &IOSelectorWindow::io_name_changed), src));
+ ENSURE_GUI_THREAD (*this, &IOSelectorWindow::io_name_changed, src)
string title;
set_title (title);
}
-PortInsertUI::PortInsertUI (Gtk::Window* parent, ARDOUR::Session& sess, boost::shared_ptr<ARDOUR::PortInsert> pi)
+PortInsertUI::PortInsertUI (Gtk::Window* parent, ARDOUR::Session* sess, boost::shared_ptr<ARDOUR::PortInsert> pi)
: input_selector (parent, sess, pi->input())
, output_selector (parent, sess, pi->output())
{
}
-PortInsertWindow::PortInsertWindow (ARDOUR::Session& sess, boost::shared_ptr<ARDOUR::PortInsert> pi, bool can_cancel)
+PortInsertWindow::PortInsertWindow (ARDOUR::Session* sess, boost::shared_ptr<ARDOUR::PortInsert> pi, bool can_cancel)
: ArdourDialog ("port insert dialog"),
_portinsertui (this, sess, pi),
ok_button (can_cancel ? _("OK"): _("Close")),
get_vbox()->pack_start (_portinsertui);
- ok_button.signal_clicked().connect (mem_fun (*this, &PortInsertWindow::accept));
- cancel_button.signal_clicked().connect (mem_fun (*this, &PortInsertWindow::cancel));
+ ok_button.signal_clicked().connect (sigc::mem_fun (*this, &PortInsertWindow::accept));
+ cancel_button.signal_clicked().connect (sigc::mem_fun (*this, &PortInsertWindow::cancel));
- signal_delete_event().connect (mem_fun (*this, &PortInsertWindow::wm_delete), false);
+ signal_delete_event().connect (sigc::mem_fun (*this, &PortInsertWindow::wm_delete), false);
- going_away_connection = pi->GoingAway.connect (mem_fun (*this, &PortInsertWindow::plugin_going_away));
+ pi->DropReferences.connect (going_away_connection, boost::bind (&PortInsertWindow::plugin_going_away, this), gui_context());
}
bool
void
PortInsertWindow::plugin_going_away ()
{
- ENSURE_GUI_THREAD (mem_fun (*this, &PortInsertWindow::plugin_going_away));
+ ENSURE_GUI_THREAD (*this, &PortInsertWindow::plugin_going_away)
going_away_connection.disconnect ();
delete_when_idle (this);