From 5bd1fad1beefe6b08e171fb7c8de415191aa9c4f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 30 Sep 2014 16:27:15 -0400 Subject: [PATCH] add members and methods for use displaying MIDI scene change activity --- gtk2_ardour/editor.cc | 8 +++++++- gtk2_ardour/editor.h | 13 +++++++++++++ gtk2_ardour/editor_markers.cc | 28 ++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 11cd4ac77c..f07b1c386d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -319,7 +319,13 @@ Editor::Editor () , _stepping_axis_view (0) , current_mixer_strip (0) , _master_bus_ui (0) - , _set_session_in_progress(false) + , _set_session_in_progress(false) + , midi_marker_input_activity_image (get_image ("midi_input_activity_indicator")) + , midi_marker_output_activity_image (get_image ("midi_output_activity_indicator")) + , midi_marker_input_enabled_image (get_image ("midi_input_enabled_indicator")) + , midi_marker_input_disabled_image (get_image ("midi_input_disabled_indicator")) + , midi_marker_output_enabled_image (get_image ("midi_output_enabled_indicator")) + , midi_marker_output_disabled_image (get_image ("midi_output_disabled_indicator")) { constructed = false; diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 183e06f125..9b42214a46 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2146,6 +2146,19 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void update_bring_in_message (Gtk::Label* label, uint32_t n, uint32_t total, std::string name); void bring_all_sources_into_session (); + /* members and methods associated with MIDI + markers */ + Gtk::Image& midi_marker_input_activity_image; + Gtk::Image& midi_marker_output_activity_image; + Gtk::Image& midi_marker_input_enabled_image; + Gtk::Image& midi_marker_input_disabled_image; + Gtk::Image& midi_marker_output_enabled_image; + Gtk::Image& midi_marker_output_disabled_image; + + void marker_midi_input_activity (); + void marker_midi_output_activity (); + bool hide_marker_midi_image (Gtk::Widget*); + void display_marker_midi_port_status (); + friend class Drag; friend class RegionDrag; friend class RegionMoveDrag; diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index 40166ad6cf..623424b38b 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -1322,3 +1322,31 @@ Editor::find_marker_from_location_id (PBD::ID const & id, bool is_start) const return 0; } + +void +Editor::marker_midi_input_activity () +{ + if (!midi_marker_input_activity_image.is_visible ()) { + midi_marker_input_activity_image.show (); + /* hide the image again in 1/2 second */ + Glib::signal_timeout().connect (sigc::bind (sigc::mem_fun (*this, &Editor::hide_marker_midi_image), &midi_marker_input_activity_image), 500); + } +} + +void +Editor::marker_midi_output_activity () +{ + if (!midi_marker_output_activity_image.is_visible ()) { + midi_marker_output_activity_image.show (); + /* hide the image again in 1/2 second */ + Glib::signal_timeout().connect (sigc::bind (sigc::mem_fun (*this, &Editor::hide_marker_midi_image), &midi_marker_output_activity_image), 500); + } +} + +bool +Editor::hide_marker_midi_image (Gtk::Widget* img) +{ + img->hide (); + return false; /* do not call again */ +} +