list_hpane.show();
group_display.show();
- auto_rebinding = FALSE;
-
_in_group_rebuild_or_clear = false;
MixerStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::remove_strip, this, _1), gui_context());
_session->sync_order_keys (N_("signal"));
}
- // Resigc::bind all of the midi controls automatically
-
- if (auto_rebinding) {
- auto_rebind_midi_controls ();
- }
-
_group_tabs->set_dirty ();
}
}
-void
-Mixer_UI::set_auto_rebinding( bool val )
-{
- if( val == TRUE )
- {
- auto_rebinding = TRUE;
- Session::AutoBindingOff();
- }
- else
- {
- auto_rebinding = FALSE;
- Session::AutoBindingOn();
- }
-}
-
-void
-Mixer_UI::toggle_auto_rebinding()
-{
- if (auto_rebinding)
- {
- set_auto_rebinding( FALSE );
- }
-
- else
- {
- set_auto_rebinding( TRUE );
- }
-
- auto_rebind_midi_controls();
-}
-
-void
-Mixer_UI::auto_rebind_midi_controls ()
-{
- TreeModel::Children rows = track_model->children();
- TreeModel::Children::iterator i;
- int pos;
-
- // Create bindings for all visible strips and remove those that are not visible
- pos = 1; // 0 is reserved for the master strip
- for (i = rows.begin(); i != rows.end(); ++i) {
- MixerStrip* strip = (*i)[track_columns.strip];
-
- if ( (*i)[track_columns.visible] == true ) { // add bindings for
- // make the actual binding
- //cout<<"Auto Binding: Visible Strip Found: "<<strip->name()<<endl;
-
- int controlValue = pos;
- if( strip->route()->is_master() ) {
- controlValue = 0;
- }
- else {
- pos++;
- }
-
- PBD::Controllable::CreateBinding ( strip->solo_button->get_controllable().get(), controlValue, 0);
- PBD::Controllable::CreateBinding ( strip->mute_button->get_controllable().get(), controlValue, 1);
-
- if( strip->is_audio_track() ) {
- PBD::Controllable::CreateBinding ( strip->rec_enable_button->get_controllable().get(), controlValue, 2);
- }
-
- PBD::Controllable::CreateBinding ( strip->gpm.get_controllable().get(), controlValue, 3);
- PBD::Controllable::CreateBinding ( strip->panners.get_controllable().get(), controlValue, 4);
-
- }
- else { // Remove any existing binding
- PBD::Controllable::DeleteBinding ( strip->solo_button->get_controllable().get() );
- PBD::Controllable::DeleteBinding ( strip->mute_button->get_controllable().get() );
-
- if( strip->is_audio_track() ) {
- PBD::Controllable::DeleteBinding ( strip->rec_enable_button->get_controllable().get() );
- }
-
- PBD::Controllable::DeleteBinding ( strip->gpm.get_controllable().get() );
- PBD::Controllable::DeleteBinding ( strip->panners.get_controllable().get() ); // This only takes the first panner if there are multiples...
- }
-
- } // for
-
-}
-
struct SignalOrderRouteSorter {
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
/* use of ">" forces the correct sort order */
void hide_strip (MixerStrip *);
void ensure_float (Gtk::Window&);
- void toggle_auto_rebinding ();
- void set_auto_rebinding(bool);
MonitorSection* monitor_section() const { return _monitor_section; }
void unselect_all_audiobus_strips ();
void select_all_audiobus_strips ();
- void auto_rebind_midi_controls ();
- bool auto_rebinding;
-
void strip_select_op (bool audiotrack, bool select);
void select_strip_op (MixerStrip*, bool select);
pan_astyle_menu->items().push_back (MenuElem (_("Abs")));
}
-boost::shared_ptr<PBD::Controllable>
-PannerUI::get_controllable()
-{
- assert (!pan_bars.empty());
- return pan_bars[0]->get_controllable();
-}
-
void
PannerUI::on_size_allocate (Allocation& a)
{
PannerUI::~PannerUI ()
{
- for (vector<MonoPanner*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- delete (*i);
- }
-
delete twod_panner;
delete big_window;
delete pan_menu;
_stereo_panner->queue_draw ();
} else if (twod_panner) {
twod_panner->queue_draw ();
- } else {
- for (vector<MonoPanner*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- (*i)->queue_draw ();
- }
- }
+ }
}
void
void effective_pan_display ();
void set_meter_strip_name (std::string name);
- boost::shared_ptr<PBD::Controllable> get_controllable();
void on_size_allocate (Gtk::Allocation &);
Gtk::Button pan_automation_style_button;
Gtk::ToggleButton pan_automation_state_button;
- std::vector<MonoPanner*> pan_bars;
-
void pan_value_changed (uint32_t which);
void build_astate_menu ();
void build_astyle_menu ();