#include "ardour/auditioner.h"
#include "ardour/audioengine.h"
#include "ardour/port.h"
+
+#include "gui_thread.h"
#include "session_option_editor.h"
#include "port_matrix.h"
#include "i18n.h"
using namespace std;
-using namespace sigc;
using namespace ARDOUR;
class OptionsPortMatrix : public PortMatrix
{
public:
- OptionsPortMatrix (Gtk::Window* parent, ARDOUR::Session& session)
+ OptionsPortMatrix (Gtk::Window* parent, ARDOUR::Session* session)
: PortMatrix (parent, session, DataType::AUDIO)
{
_port_group.reset (new PortGroup (""));
void setup_ports (int dim)
{
- cerr << _session.the_auditioner()->output()->n_ports() << "\n";
-
if (dim == OURS) {
_port_group->clear ();
- _port_group->add_bundle (_session.click_io()->bundle());
- _port_group->add_bundle (_session.the_auditioner()->output()->bundle());
+ _port_group->add_bundle (_session->click_io()->bundle());
+ _port_group->add_bundle (_session->the_auditioner()->output()->bundle());
} else {
_ports[OTHER].gather (_session, true, false);
}
Bundle::PortList const & our_ports = c[OURS].bundle->channel_ports (c[OURS].channel);
Bundle::PortList const & other_ports = c[OTHER].bundle->channel_ports (c[OTHER].channel);
- if (c[OURS].bundle == _session.click_io()->bundle()) {
+ if (c[OURS].bundle == _session->click_io()->bundle()) {
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);
assert (f);
if (s) {
- _session.click_io()->connect (f, *j, 0);
+ _session->click_io()->connect (f, *j, 0);
} else {
- _session.click_io()->disconnect (f, *j, 0);
+ _session->click_io()->disconnect (f, *j, 0);
}
}
}
Bundle::PortList const & our_ports = c[OURS].bundle->channel_ports (c[OURS].channel);
Bundle::PortList const & other_ports = c[OTHER].bundle->channel_ports (c[OTHER].channel);
- if (c[OURS].bundle == _session.click_io()->bundle()) {
+ if (c[OURS].bundle == _session->click_io()->bundle()) {
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);
assert (f);
if (f->connected_to (*j)) {
{
public:
ConnectionOptions (Gtk::Window* parent, ARDOUR::Session* s)
- : _port_matrix (parent, *s)
+ : _port_matrix (parent, s)
{
_box->pack_start (_port_matrix);
}
ComboOption<uint32_t>* spf = new ComboOption<uint32_t> (
"subframes-per-frame",
_("Subframes per frame"),
- mem_fun (*_session_config, &SessionConfiguration::get_subframes_per_frame),
- mem_fun (*_session_config, &SessionConfiguration::set_subframes_per_frame)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_subframes_per_frame),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_subframes_per_frame)
);
spf->add (80, _("80"));
ComboOption<SyncSource>* ssrc = new ComboOption<SyncSource> (
"sync-source",
_("External sync source"),
- mem_fun (*_session_config, &SessionConfiguration::get_sync_source),
- mem_fun (*_session_config, &SessionConfiguration::set_sync_source)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_sync_source),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_sync_source)
);
- s->MTC_PortChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::populate_sync_options), s, ssrc));
- s->MIDIClock_PortChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::populate_sync_options), s, ssrc));
- s->config.ParameterChanged.connect (bind (mem_fun (*this, &SessionOptionEditor::follow_sync_state), s, ssrc));
+ s->MTC_PortChanged.connect (_session_connections, invalidator (*this), boost::bind (&SessionOptionEditor::populate_sync_options, this, s, ssrc), gui_context());
+ s->MIDIClock_PortChanged.connect (_session_connections, invalidator (*this), boost::bind (&SessionOptionEditor::populate_sync_options, this, s, ssrc), gui_context());
+ s->config.ParameterChanged.connect (_session_connections, invalidator (*this), ui_bind (&SessionOptionEditor::follow_sync_state, this, _1, s, ssrc), gui_context());
populate_sync_options (s, ssrc);
follow_sync_state (string ("external-sync"), s, ssrc);
ComboOption<TimecodeFormat>* smf = new ComboOption<TimecodeFormat> (
"timecode-format",
_("Timecode frames-per-second"),
- mem_fun (*_session_config, &SessionConfiguration::get_timecode_format),
- mem_fun (*_session_config, &SessionConfiguration::set_timecode_format)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_timecode_format),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_timecode_format)
);
smf->add (timecode_23976, _("23.976"));
add_option (_("Sync"), new BoolOption (
"timecode-source-is-synced",
- _("Timecode source is synced"),
- mem_fun (*_session_config, &SessionConfiguration::get_timecode_source_is_synced),
- mem_fun (*_session_config, &SessionConfiguration::set_timecode_source_is_synced)
+ _("Timecode source shares sample clock with audio interface"),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_timecode_source_is_synced),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_timecode_source_is_synced)
));
ComboOption<float>* vpu = new ComboOption<float> (
"video-pullup",
_("Pull-up / pull-down"),
- mem_fun (*_session_config, &SessionConfiguration::get_video_pullup),
- mem_fun (*_session_config, &SessionConfiguration::set_video_pullup)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_video_pullup),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_video_pullup)
);
vpu->add (4.1667 + 0.1, _("4.1667 + 0.1%"));
ComboOption<CrossfadeModel>* cfm = new ComboOption<CrossfadeModel> (
"xfade-model",
_("Crossfades are created"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfade_model),
- mem_fun (*_session_config, &SessionConfiguration::set_xfade_model)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_xfade_model),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_xfade_model)
);
cfm->add (FullCrossfade, _("to span entire overlap"));
add_option (_("Fades"), new SpinOption<float> (
_("short-xfade-seconds"),
_("Short crossfade length"),
- mem_fun (*_session_config, &SessionConfiguration::get_short_xfade_seconds),
- mem_fun (*_session_config, &SessionConfiguration::set_short_xfade_seconds),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_short_xfade_seconds),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_short_xfade_seconds),
0, 1000, 1, 10,
_("ms"), 0.001
));
add_option (_("Fades"), new SpinOption<float> (
_("destructive-xfade-seconds"),
_("Destructive crossfade length"),
- mem_fun (*_session_config, &SessionConfiguration::get_destructive_xfade_msecs),
- mem_fun (*_session_config, &SessionConfiguration::set_destructive_xfade_msecs),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_destructive_xfade_msecs),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_destructive_xfade_msecs),
0, 1000, 1, 10,
_("ms")
));
add_option (_("Fades"), new BoolOption (
"auto-xfade",
_("Create crossfades automatically"),
- mem_fun (*_session_config, &SessionConfiguration::get_auto_xfade),
- mem_fun (*_session_config, &SessionConfiguration::set_auto_xfade)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_auto_xfade),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_auto_xfade)
));
add_option (_("Fades"), new BoolOption (
"xfades-active",
_("Crossfades active"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfades_active),
- mem_fun (*_session_config, &SessionConfiguration::set_xfades_active)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_xfades_active),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_xfades_active)
));
add_option (_("Fades"), new BoolOption (
"xfades-visible",
_("Crossfades visible"),
- mem_fun (*_session_config, &SessionConfiguration::get_xfades_visible),
- mem_fun (*_session_config, &SessionConfiguration::set_xfades_visible)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_xfades_visible),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_xfades_visible)
));
add_option (_("Fades"), new BoolOption (
"use-region-fades",
_("Region fades active"),
- mem_fun (*_session_config, &SessionConfiguration::get_use_region_fades),
- mem_fun (*_session_config, &SessionConfiguration::set_use_region_fades)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_use_region_fades),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_use_region_fades)
));
add_option (_("Fades"), new BoolOption (
"show-region-fades",
_("Region fades visible"),
- mem_fun (*_session_config, &SessionConfiguration::get_show_region_fades),
- mem_fun (*_session_config, &SessionConfiguration::set_show_region_fades)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_show_region_fades),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_region_fades)
));
/* MISC */
ComboOption<SampleFormat>* sf = new ComboOption<SampleFormat> (
"native-file-data-format",
_("Sample format"),
- mem_fun (*_session_config, &SessionConfiguration::get_native_file_data_format),
- mem_fun (*_session_config, &SessionConfiguration::set_native_file_data_format)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_native_file_data_format),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_native_file_data_format)
);
sf->add (FormatFloat, _("32-bit floating point"));
ComboOption<HeaderFormat>* hf = new ComboOption<HeaderFormat> (
"native-file-header-format",
_("File type"),
- mem_fun (*_session_config, &SessionConfiguration::get_native_file_header_format),
- mem_fun (*_session_config, &SessionConfiguration::set_native_file_header_format)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_native_file_header_format),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_native_file_header_format)
);
hf->add (BWF, _("Broadcast WAVE"));
ComboOption<LayerModel>* lm = new ComboOption<LayerModel> (
"layer-model",
_("Layering model in overlaid mode"),
- mem_fun (*_session_config, &SessionConfiguration::get_layer_model),
- mem_fun (*_session_config, &SessionConfiguration::set_layer_model)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_layer_model),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_layer_model)
);
lm->add (LaterHigher, _("later is higher"));
add_option (_("Misc"), new EntryOption (
"bwf-country-code",
_("Country code"),
- mem_fun (*_session_config, &SessionConfiguration::get_bwf_country_code),
- mem_fun (*_session_config, &SessionConfiguration::set_bwf_country_code)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_bwf_country_code),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_bwf_country_code)
));
add_option (_("Misc"), new EntryOption (
"bwf-organization-code",
_("Organization code"),
- mem_fun (*_session_config, &SessionConfiguration::get_bwf_organization_code),
- mem_fun (*_session_config, &SessionConfiguration::set_bwf_organization_code)
+ sigc::mem_fun (*_session_config, &SessionConfiguration::get_bwf_organization_code),
+ sigc::mem_fun (*_session_config, &SessionConfiguration::set_bwf_organization_code)
));
add_option (_("Connections"), new ConnectionOptions (this, s));