-AudioRegionEditor::region_changed (Change what_changed)
-{
- if (what_changed & NameChanged) {
- name_changed ();
- }
- if (what_changed & BoundsChanged) {
- bounds_changed (what_changed);
- }
-
- if (what_changed & Region::OpacityChanged) {
- opacity_changed ();
- }
- if (what_changed & Region::MuteChanged) {
- mute_changed ();
- }
- if (what_changed & Region::LockChanged) {
- lock_changed ();
- }
- if (what_changed & Region::LayerChanged) {
- layer_changed ();
- }
-
- if (what_changed & AudioRegion::EnvelopeActiveChanged) {
- envelope_active_changed ();
- }
- if (what_changed & AudioRegion::FadeInChanged) {
- fade_in_changed ();
- }
- if (what_changed & AudioRegion::FadeOutChanged) {
- fade_out_changed ();
- }
- if (what_changed & AudioRegion::FadeInActiveChanged) {
- fade_in_active_changed ();
- }
- if (what_changed & AudioRegion::FadeOutActiveChanged) {
- fade_out_active_changed ();
- }
-}
-
-void
-AudioRegionEditor::fade_in_realized ()
-{
- fade_in_changed ();
-}
-
-void
-AudioRegionEditor::fade_out_realized ()
-{
- fade_out_changed ();
-}
-
-gint
-AudioRegionEditor::bpressed (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)())
-{
- switch (ev->button) {
- case 1:
- case 2:
- case 3:
- if (ev->type == GDK_BUTTON_PRESS) { /* no double clicks here */
- if (!spin_arrow_grab) {
- // GTK2FIX probably nuke the region editor
- // if ((ev->window == but->gobj()->panel)) {
- // spin_arrow_grab = true;
- // (this->*pmf)();
- // }
- }
- }
- break;
- default:
- break;
- }
- return FALSE;
-}
-
-gint
-AudioRegionEditor::breleased (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)())
-{
- if (spin_arrow_grab) {
- (this->*pmf)();
- spin_arrow_grab = false;
- }
- return FALSE;
-}
-
-void
-AudioRegionEditor::start_editing_fade_in ()
-{
- _region->freeze ();
-}
-
-void
-AudioRegionEditor::stop_editing_fade_in ()
-{
- _region->thaw (_("fade in edit"));
-}
-
-void
-AudioRegionEditor::start_editing_fade_out ()
-{
- _region->freeze ();
-}
-
-void
-AudioRegionEditor::stop_editing_fade_out ()
-{
- _region->thaw (_("fade out edit"));
-}
-
-void
-AudioRegionEditor::connect_editor_events ()
-{
- name_entry.signal_changed().connect (mem_fun(*this, &AudioRegionEditor::name_entry_changed));
-
- start_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::start_clock_changed));
- end_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::end_clock_changed));
- length_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::length_clock_changed));
-
- fade_in_length_spinner.signal_button_press_event().connect (bind (mem_fun(*this, &AudioRegionEditor::bpressed), &fade_in_length_spinner,
- &AudioRegionEditor::start_editing_fade_in));
- fade_in_length_spinner.signal_button_release_event().connect (bind (mem_fun (*this, &AudioRegionEditor::breleased), &fade_in_length_spinner,
- &AudioRegionEditor::stop_editing_fade_in));
-
- fade_out_length_spinner.signal_button_press_event().connect (bind (mem_fun(*this, &AudioRegionEditor::bpressed), &fade_out_length_spinner,
- &AudioRegionEditor::start_editing_fade_out));
- fade_out_length_spinner.signal_button_release_event().connect (bind (mem_fun (*this, &AudioRegionEditor::breleased), &fade_out_length_spinner,
- &AudioRegionEditor::stop_editing_fade_out));
-
- fade_in_length_adjustment.signal_value_changed().connect (mem_fun(*this, &AudioRegionEditor::fade_in_length_adjustment_changed));
- fade_out_length_adjustment.signal_value_changed().connect (mem_fun(*this, &AudioRegionEditor::fade_out_length_adjustment_changed));
-
- fade_in_active_button.signal_toggled().connect (mem_fun(*this, &AudioRegionEditor::fade_in_active_toggled));
- fade_out_active_button.signal_toggled().connect (mem_fun(*this, &AudioRegionEditor::fade_out_active_toggled));
-
- envelope_active_button.signal_button_press_event().connect (mem_fun(*this, &AudioRegionEditor::envelope_active_button_press));
- envelope_active_button.signal_button_release_event().connect (mem_fun(*this, &AudioRegionEditor::envelope_active_button_release));
- audition_button.signal_toggled().connect (mem_fun(*this, &AudioRegionEditor::audition_button_toggled));
- envelope_view_button.signal_toggled().connect (mem_fun(*this, &AudioRegionEditor::envelope_view_button_toggled));
- lock_button.signal_clicked().connect (mem_fun(*this, &AudioRegionEditor::lock_button_clicked));
- mute_button.signal_clicked().connect (mem_fun(*this, &AudioRegionEditor::mute_button_clicked));
- opaque_button.signal_clicked().connect (mem_fun(*this, &AudioRegionEditor::opaque_button_clicked));
- raise_button.signal_clicked().connect (mem_fun(*this, &AudioRegionEditor::raise_button_clicked));
- lower_button.signal_clicked().connect (mem_fun(*this, &AudioRegionEditor::lower_button_clicked));
- _session.AuditionActive.connect (mem_fun(*this, &AudioRegionEditor::audition_state_changed));
-}
-
-void
-AudioRegionEditor::start_clock_changed ()
-{
- _region->set_position (start_clock.current_time(), this);
-}
-
-void
-AudioRegionEditor::end_clock_changed ()
-{
- _region->trim_end (end_clock.current_time(), this);
-
- end_clock.set (_region->position() + _region->length(), true);
-}
-
-void
-AudioRegionEditor::length_clock_changed ()
-{
- jack_nframes_t frames = length_clock.current_time();
- _region->trim_end (_region->position() + frames, this);
-
- length_clock.set (_region->length());
-}
-
-gint
-AudioRegionEditor::envelope_active_button_press(GdkEventButton *ev)
-{
- return stop_signal (envelope_active_button, "button_press_event");
-}
-
-gint
-AudioRegionEditor::envelope_active_button_release (GdkEventButton *ev)
-{
- _region->set_envelope_active (!_region->envelope_active());
- return stop_signal (envelope_active_button, "button_release_event");
-}
-
-void
-AudioRegionEditor::envelope_view_button_toggled ()
-{
- bool visible = envelope_view_button.get_active ();
-
- _region_view.set_envelope_visible (visible);
-}
-
-void
-AudioRegionEditor::audition_button_toggled ()
-{
- if (audition_button.get_active()) {
- _session.audition_region (_region);
- } else {
- _session.cancel_audition ();
- }
-}
-
-void
-AudioRegionEditor::raise_button_clicked ()
-{
- _region->raise ();
-}
-
-void
-AudioRegionEditor::lower_button_clicked ()
-{
- _region->lower ();
-}
-
-void
-AudioRegionEditor::opaque_button_clicked ()
-{
- bool ractive = _region->opaque();
-
- if (opaque_button.get_active() != ractive) {
- _region->set_opaque (!ractive);
- }
-}
-
-void
-AudioRegionEditor::mute_button_clicked ()
-{
- bool ractive = _region->muted();
-
- if (mute_button.get_active() != ractive) {
- _region->set_muted (!ractive);
- }
-}
-
-void
-AudioRegionEditor::lock_button_clicked ()
-{
- bool ractive = _region->locked();
-
- if (lock_button.get_active() != ractive) {
- _region->set_locked (!ractive);
- }
-}
-
-void
-AudioRegionEditor::layer_changed ()
-{
- char buf[8];
- snprintf (buf, sizeof(buf), "%d", (int) _region->layer() + 1);
- layer_value_label.set_text (buf);
-}
-
-void
-AudioRegionEditor::name_changed ()
-{
- if (name_entry.get_text() != _region->name()) {
- name_entry.set_text (_region->name());
- }
-}
-
-void
-AudioRegionEditor::lock_changed ()
-{
- bool yn;
-
- if ((yn = _region->locked()) != lock_button.get_active()) {
- lock_button.set_active (yn);
- }
-
- start_clock.set_sensitive (!yn);
- end_clock.set_sensitive (!yn);
- length_clock.set_sensitive (!yn);
-}
-
-void
-AudioRegionEditor::envelope_active_changed ()
-{
- bool yn;
-
- if ((yn = _region->envelope_active()) != envelope_active_button.get_active()) {
- envelope_active_button.set_active (yn);
- }
-}
-
-void
-AudioRegionEditor::opacity_changed ()
-{
- bool yn;
- if ((yn = _region->opaque()) != opaque_button.get_active()) {
- opaque_button.set_active (yn);
- }
-}
-
-void
-AudioRegionEditor::mute_changed ()
-{
- bool yn;
- if ((yn = _region->muted()) != mute_button.get_active()) {
- mute_button.set_active (yn);
- }
-}
-
-void
-AudioRegionEditor::bounds_changed (Change what_changed)
-{
- if (what_changed & Change ((PositionChanged|LengthChanged))) {
- start_clock.set (_region->position(), true);
- end_clock.set (_region->position() + _region->length(), true);
- length_clock.set (_region->length(), true);
- }
-}
-
-void
-AudioRegionEditor::activation ()