ardour-button-ize zoom buttons; move MIDI panic button to transport bar
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Nov 2011 18:04:34 +0000 (18:04 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Nov 2011 18:04:34 +0000 (18:04 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@10528 d708f5d6-7413-0410-9779-e7cbd77b26cf

14 files changed:
gtk2_ardour/ardour3_ui_default.conf
gtk2_ardour/ardour_button.cc
gtk2_ardour/ardour_button.h
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui2.cc
gtk2_ardour/ardour_ui_ed.cc
gtk2_ardour/canvas_vars.h
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_actions.cc
gtk2_ardour/icons/midi_panic.png [new file with mode: 0644]
gtk2_ardour/monitor_section.cc
icons/midi_panic.svg [new file with mode: 0644]

index f0267215f7a41214dc24bb50247715478cc3ed58..4b0643b3b59cf640718c53ff7b33914825cfd819 100644 (file)
     <Option name="mouse mode button: text" value="c7c7d8ff"/>
     <Option name="mouse mode button: text active" value="000000ff"/>
     <Option name="mouse mode button: text mid" value="000000ff"/>
+    <Option name="zoom button: border start" value="32baaeff"/>
+    <Option name="zoom button: border end" value="22827aff"/>
+    <Option name="zoom button: border start selected" value="9a908eff"/>
+    <Option name="zoom button: border end selected" value="675c5bff"/>
+    <Option name="zoom button: fill start" value="21847bff"/>
+    <Option name="zoom button: fill end" value="0c3330ff"/>
+    <Option name="zoom button: fill start active" value="9dfc3dff"/>
+    <Option name="zoom button: fill end active" value="90f927ff"/>
+    <Option name="zoom button: fill start mid" value="5d5856ff"/>
+    <Option name="zoom button: fill end mid" value="564d48ff"/>
+    <Option name="zoom button: led" value="4f3300ff"/>
+    <Option name="zoom button: led active" value="ffa500ff"/>
+    <Option name="zoom button: led mid" value="b87700ff"/>
+    <Option name="zoom button: text" value="c7c7d8ff"/>
+    <Option name="zoom button: text active" value="000000ff"/>
+    <Option name="zoom button: text mid" value="000000ff"/>
   </Canvas>
 </Ardour>
index 1ba4de7535a26303c441e0b1dc7b3fc3747d40bc..5f6e1f8dc0ea3e756a23206c54d4291b5dc2175d 100644 (file)
@@ -481,6 +481,7 @@ ArdourButton::on_button_release_event (GdkEventButton *ev)
                }
        }
 
+
        return false;
 }
 
@@ -543,10 +544,22 @@ ArdourButton::set_related_action (RefPtr<Action> act)
 {
        _action = act;
 
-       Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (_action);
-       if (tact) {
-               tact->signal_toggled().connect (sigc::mem_fun (*this, &ArdourButton::action_toggled));
-       } 
+       if (_action) {
+
+               string str = _action->property_tooltip().get_value();
+               if (!str.empty()) {
+                       ARDOUR_UI::instance()->set_tip (*this, str);
+               }
+
+               Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (_action);
+               if (tact) {
+                       tact->signal_toggled().connect (sigc::mem_fun (*this, &ArdourButton::action_toggled));
+               } 
+
+               _action->connect_property_changed ("sensitive", sigc::mem_fun (*this, &ArdourButton::action_sensitivity_changed));
+               _action->connect_property_changed ("visible", sigc::mem_fun (*this, &ArdourButton::action_visibility_changed));
+               _action->connect_property_changed ("tooltip", sigc::mem_fun (*this, &ArdourButton::action_tooltip_changed));
+       }
 }
 
 void
@@ -677,3 +690,33 @@ ArdourButton::set_tweaks (Tweaks t)
                queue_draw ();
        }
 }
+
+void
+ArdourButton::action_sensitivity_changed ()
+{
+       if (_action->property_sensitive ()) {
+               set_visual_state (Gtkmm2ext::VisualState (visual_state() & ~Gtkmm2ext::Insensitive));
+       } else {
+               set_visual_state (Gtkmm2ext::VisualState (visual_state() | Gtkmm2ext::Insensitive));
+       }
+       
+}
+
+
+void
+ArdourButton::action_visibility_changed ()
+{
+       if (_action->property_visible ()) {
+               show ();
+       } else {
+               hide ();
+       }
+}
+
+void
+ArdourButton::action_tooltip_changed ()
+{
+       string str = _action->property_tooltip().get_value();
+       ARDOUR_UI::instance()->set_tip (*this, str);
+}
+
index 9157cc81fdf0c18c885bc25787fa5d93333e02dc..892c98cbffe38109ba256b36717ef19fec204947 100644 (file)
@@ -143,6 +143,10 @@ class ArdourButton : public CairoWidget
        Glib::RefPtr<Gtk::Action> _action;
        void action_activated ();
        void action_toggled ();
+
+       void action_sensitivity_changed ();
+       void action_visibility_changed ();
+       void action_tooltip_changed ();
 };
 
 #endif /* __gtk2_ardour_ardour_button_h__ */
index 0ebf07afe502b3bfa56f7a54fae48ac139583464..9c534c406a2c748cdf05548a57ceb36d1d6a9ef8 100644 (file)
@@ -157,6 +157,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
        , auto_play_button (ArdourButton::led_default_elements)
        , auto_input_button (ArdourButton::led_default_elements)
 
+       , time_master_button (ArdourButton::led_default_elements)
+
        , auditioning_alert_button (_("AUDITION"))
        , solo_alert_button (_("SOLO"))
 
@@ -234,9 +236,11 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
        play_selection_button.set_name ("transport button");
        rec_button.set_name ("transport recenable button");
        join_play_range_button.set_name ("transport button");
+       midi_panic_button.set_name ("transport button");
 
        goto_start_button.set_tweaks (ArdourButton::ShowClick);
        goto_end_button.set_tweaks (ArdourButton::ShowClick);
+       midi_panic_button.set_tweaks (ArdourButton::ShowClick);
        
        last_configure_time= 0;
        last_peak_grab = 0;
@@ -3884,3 +3888,11 @@ ARDOUR_UI::feedback_detected ()
 
        d.run ();
 }
+
+void
+ARDOUR_UI::midi_panic ()
+{
+       if (_session) {
+               _session->midi_panic();
+       }
+}
index 2f1ded27cd85fb95a87d6914a856cb97a26180c6..15975f29cf65c23ad119149cf760fa9e151f3923 100644 (file)
@@ -731,6 +731,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        ARDOUR::ProcessThread* _process_thread;
 
        void feedback_detected ();
+
+       ArdourButton             midi_panic_button;
+       void                     midi_panic ();
 };
 
 #endif /* __ardour_gui_h__ */
index 76794d3e619696e2b971866ad2d581dc8d7feff8..e7cac302f7051888e0ae1dc03db91a30575d8936 100644 (file)
@@ -132,6 +132,7 @@ ARDOUR_UI::setup_tooltips ()
        set_tip (goto_start_button, _("Go to start of session"));
        set_tip (goto_end_button, _("Go to end of session"));
        set_tip (auto_loop_button, _("Play loop range"));
+       set_tip (midi_panic_button, _("MIDI Panic\nSend note off and reset controller messages on all MIDI channels"));
 
        set_tip (auto_return_button, _("Return to last playback start when stopped"));
        set_tip (auto_play_button, _("Start playback after any locate"));
@@ -253,11 +254,11 @@ ARDOUR_UI::setup_transport ()
        auto_return_button.set_name ("transport option button");
        auto_play_button.set_name ("transport option button");
        auto_input_button.set_name ("transport option button");
+       time_master_button.set_name ("transport option button");
 
        /* these have to provide a clear indication of active state */
 
        click_button.set_name ("transport active option button");
-       time_master_button.set_name ("transport active option button");
        sync_button.set_name ("transport active option button");
 
        time_master_button.set_text (_("time master"));
@@ -273,6 +274,10 @@ ARDOUR_UI::setup_transport ()
        auto_loop_button.set_image (get_icon (X_("transport_loop")));
        join_play_range_button.set_image (get_icon (X_("tool_object_range")));
 
+       midi_panic_button.set_image (get_icon (X_("midi_panic")));
+       /* the icon for this has an odd aspect ratio, so fatten up the button */
+       midi_panic_button.set_size_request (25, -1);
+       
        act = ActionManager::get_action (X_("Transport"), X_("Stop"));
        stop_button.set_related_action (act);
        act = ActionManager::get_action (X_("Transport"), X_("Roll"));
@@ -287,7 +292,8 @@ ARDOUR_UI::setup_transport ()
        auto_loop_button.set_related_action (act);
        act = ActionManager::get_action (X_("Transport"), X_("PlaySelection"));
        play_selection_button.set_related_action (act);
-
+       act = ActionManager::get_action (X_("MIDI"), X_("panic"));
+       midi_panic_button.set_related_action (act);
 
        act = ActionManager::get_action (X_("Transport"), X_("ToggleTimeMaster"));
        time_master_button.set_related_action (act);
@@ -325,6 +331,7 @@ ARDOUR_UI::setup_transport ()
        HBox* tbox = manage (new HBox);
        tbox->set_spacing (2);
 
+       tbox->pack_start (midi_panic_button, false, false);
        tbox->pack_start (goto_start_button, false, false);
        tbox->pack_start (goto_end_button, false, false);
 
index e3cf8a20086d49aaa3867815818dbca682173c04..d31e348cc9dc25b31d9225aeb65487a670e7617b 100644 (file)
@@ -444,12 +444,18 @@ ARDOUR_UI::install_actions ()
                }
        }
 
+       /* MIDI */
+
+       Glib::RefPtr<ActionGroup> midi_actions = ActionGroup::create (X_("MIDI"));
+       ActionManager::register_action (midi_actions, X_("panic"), _("Panic"), sigc::mem_fun(*this, &ARDOUR_UI::midi_panic));
+
        ActionManager::add_action_group (shuttle_actions);
        ActionManager::add_action_group (option_actions);
        ActionManager::add_action_group (jack_actions);
        ActionManager::add_action_group (transport_actions);
        ActionManager::add_action_group (main_actions);
        ActionManager::add_action_group (common_actions);
+       ActionManager::add_action_group (midi_actions);
 }
 
 void
index b186c8bf4b6b9bad94acf563b070d79889a3b4ea..d35c8cad49294cc157ceb3c0c3587b359e6eab7e 100644 (file)
@@ -184,4 +184,5 @@ BUTTON_VARS(TransportActiveOptionButton, "transport active option button")
 BUTTON_VARS(PluginBypassButton, "plugin bypass button")
 BUTTON_VARS(PunchButton, "punch button")
 BUTTON_VARS(MouseModeButton, "mouse mode button")
+BUTTON_VARS(ZoomButton, "zoom button")
 
index 05108eaf0882a2ec472a34bd9f0282339ee18227..194a63a163620d5e0dc93ae9932f727d9cd2794b 100644 (file)
@@ -268,7 +268,6 @@ Editor::Editor ()
        , automation_mode_button (_("mode"))
 
        , _toolbar_viewport (*manage (new Gtk::Adjustment (0, 0, 1e10)), *manage (new Gtk::Adjustment (0, 0, 1e10)))
-       , midi_panic_button (_("Panic"))
 
 #ifdef WITH_CMT
        , image_socket_listener(0)
@@ -2814,17 +2813,25 @@ Editor::setup_toolbar ()
        _zoom_box.set_spacing (1);
        _zoom_box.set_border_width (0);
 
-       zoom_in_button.set_name ("EditorTimeButton");
-       zoom_in_button.set_image (*(manage (new Image (::get_icon ("zoom_in")))));
-       zoom_in_button.signal_clicked().connect (sigc::bind (sigc::mem_fun(*this, &Editor::temporal_zoom_step), false));
+       RefPtr<Action> act;
+
+       zoom_in_button.set_name ("zoom button");
+       zoom_in_button.set_image (::get_icon ("zoom_in"));
+       zoom_in_button.set_tweaks (ArdourButton::ShowClick);
+       act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-in"));
+       zoom_in_button.set_related_action (act);
 
-       zoom_out_button.set_name ("EditorTimeButton");
-       zoom_out_button.set_image (*(manage (new Image (::get_icon ("zoom_out")))));
-       zoom_out_button.signal_clicked().connect (sigc::bind (sigc::mem_fun(*this, &Editor::temporal_zoom_step), true));
+       zoom_out_button.set_name ("zoom button");
+       zoom_out_button.set_image (::get_icon ("zoom_out"));
+       zoom_out_button.set_tweaks (ArdourButton::ShowClick);
+       act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-out"));
+       zoom_out_button.set_related_action (act);
 
-       zoom_out_full_button.set_name ("EditorTimeButton");
-       zoom_out_full_button.set_image (*(manage (new Image (::get_icon ("zoom_full")))));
-       zoom_out_full_button.signal_clicked().connect (sigc::mem_fun(*this, &Editor::temporal_zoom_session));
+       zoom_out_full_button.set_name ("zoom button");
+       zoom_out_full_button.set_image (::get_icon ("zoom_full"));
+       zoom_out_full_button.set_tweaks (ArdourButton::ShowClick);
+       act = ActionManager::get_action (X_("Editor"), X_("zoom-to-session"));
+       zoom_out_full_button.set_related_action (act);
 
        zoom_focus_selector.set_name ("ZoomFocusSelector");
        set_popdown_strings (zoom_focus_selector, zoom_focus_strings, true);
@@ -2840,7 +2847,7 @@ Editor::setup_toolbar ()
        tav_expand_button.set_name ("TrackHeightButton");
        tav_expand_button.set_size_request (-1, 20);
        tav_expand_button.add (*(manage (new Image (::get_icon ("tav_exp")))));
-       RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("expand-tracks"));
+       act = ActionManager::get_action (X_("Editor"), X_("expand-tracks"));
        act->connect_proxy (tav_expand_button);
 
        tav_shrink_button.set_name ("TrackHeightButton");
@@ -2972,19 +2979,9 @@ Editor::setup_tooltips ()
        ARDOUR_UI::instance()->set_tip (snap_mode_selector, _("Snap/Grid Mode"));
        ARDOUR_UI::instance()->set_tip (edit_point_selector, _("Edit point"));
        ARDOUR_UI::instance()->set_tip (midi_sound_notes, _("Sound Notes"));
-       ARDOUR_UI::instance()->set_tip (midi_panic_button, _("Send note off and reset controller messages on all MIDI channels"));
        ARDOUR_UI::instance()->set_tip (edit_mode_selector, _("Edit Mode"));
 }
 
-void
-Editor::midi_panic ()
-{
-       cerr << "MIDI panic\n";
-
-       if (_session) {
-               _session->midi_panic();
-       }
-}
 
 void
 Editor::setup_midi_toolbar ()
@@ -2998,12 +2995,8 @@ Editor::setup_midi_toolbar ()
 
        /* Panic */
 
-       act = ActionManager::get_action (X_("MIDI"), X_("panic"));
-       midi_panic_button.set_name("MidiPanicButton");
-       act->connect_proxy (midi_panic_button);
-
        panic_box.pack_start (midi_sound_notes , true, true);
-       panic_box.pack_start (midi_panic_button, true, true);
+       // panic_box.pack_start (midi_panic_button, true, true);
 }
 
 int
index f76a19ac0b6239b130b485615fb1769bd98a11da..683cdc037a88a0dfe648c8ec074d1604a90a47e0 100644 (file)
@@ -1519,10 +1519,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void editor_list_button_toggled ();
 
        AudioClock*               zoom_range_clock;
-       Gtk::Button              zoom_in_button;
-       Gtk::Button              zoom_out_button;
-       Gtk::Button              zoom_out_full_button;
-       Gtk::Button              zoom_onetoone_button;
+       ArdourButton              zoom_in_button;
+       ArdourButton              zoom_out_button;
+       ArdourButton              zoom_out_full_button;
 
        Gtk::Button              tav_expand_button;
        Gtk::Button              tav_shrink_button;
@@ -1603,9 +1602,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        /* midi toolbar */
 
        Gtk::HBox                panic_box;
-       Gtk::Button              midi_panic_button;
        Gtkmm2ext::StatefulToggleButton midi_sound_notes;
-       void                     midi_panic ();
        bool                     sound_notes () const { return midi_sound_notes.get_active(); }
 
        void setup_midi_toolbar ();
index 321cb81b88135c4250591435b649812833f9d4f6..6cf215f76df24b071de76cb8003c69486c526f63 100644 (file)
@@ -608,18 +608,12 @@ Editor::register_actions ()
        Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
        tact->set_active (true);
 
-       /* MIDI */
-
-       Glib::RefPtr<ActionGroup> midi_actions = ActionGroup::create (X_("MIDI"));
-       ActionManager::register_action (midi_actions, X_("panic"), _("Panic"), sigc::mem_fun(*this, &Editor::midi_panic));
-
        ActionManager::add_action_group (rl_actions);
        ActionManager::add_action_group (ruler_actions);
        ActionManager::add_action_group (zoom_actions);
        ActionManager::add_action_group (mouse_mode_actions);
        ActionManager::add_action_group (snap_actions);
        ActionManager::add_action_group (editor_actions);
-       ActionManager::add_action_group (midi_actions);
 }
 
 void
diff --git a/gtk2_ardour/icons/midi_panic.png b/gtk2_ardour/icons/midi_panic.png
new file mode 100644 (file)
index 0000000..9d0b9ef
Binary files /dev/null and b/gtk2_ardour/icons/midi_panic.png differ
index 0926794175befd7b0322c64ae5ed28f70dc50a99..8a7e8ada928ba4eeb5fcd4e2cd4d82f24ad21471 100644 (file)
@@ -43,9 +43,6 @@ MonitorSection::MonitorSection (Session* s)
         , solo_in_place_button (_("SiP"), ArdourButton::led_default_elements)
         , afl_button (_("AFL"), ArdourButton::led_default_elements)
        , pfl_button (_("PFL"), ArdourButton::led_default_elements)
-       , cut_all_button (ArdourButton::led_default_elements)
-       , dim_all_button (ArdourButton::led_default_elements)
-       , mono_button (ArdourButton::led_default_elements)
        , exclusive_solo_button (ArdourButton::led_default_elements)
        , solo_mute_override_button (ArdourButton::led_default_elements)
 {
@@ -404,10 +401,6 @@ MonitorSection::set_session (Session* s)
 }
 
 MonitorSection::ChannelButtonSet::ChannelButtonSet ()
-       : cut (ArdourButton::just_led_default_elements)
-       , dim (ArdourButton::just_led_default_elements)
-       , solo (ArdourButton::just_led_default_elements)
-       , invert (ArdourButton::just_led_default_elements)
 {
        cut.set_diameter (3);
        dim.set_diameter (3);
diff --git a/icons/midi_panic.svg b/icons/midi_panic.svg
new file mode 100644 (file)
index 0000000..5c894da
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   inkscape:export-filename="midi_panic.png"
+   inkscape:export-xdpi="3.3178849"
+   inkscape:export-ydpi="3.3178849"
+   sodipodi:docname="midi_panic.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="-727.85714"
+     inkscape:cy="502.85714"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1436"
+     inkscape:window-height="949"
+     inkscape:window-x="137"
+     inkscape:window-y="86"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="opacity:0;color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000500;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect2816"
+       width="74.285728"
+       height="448.57144"
+       x="242.85715"
+       y="118.07647" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.61851852"
+       id="path3600"
+       sodipodi:cx="121.42857"
+       sodipodi:cy="768.07648"
+       sodipodi:rx="38.57143"
+       sodipodi:ry="38.57143"
+       d="m 160,768.07648 a 38.57143,38.57143 0 1 1 -77.142857,0 38.57143,38.57143 0 1 1 77.142857,0 z"
+       transform="matrix(2.5060478,0,0,2.3125359,-112.56833,-836.59512)"
+       inkscape:export-filename="/usr/local/music/src/ardour/3.0/gtk2_ardour/icons/midi_panic.png"
+       inkscape:export-xdpi="2.6415093"
+       inkscape:export-ydpi="2.6415093" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.26678240000000009px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.61851852"
+       d="m 82.984333,281.07273 9.74369,328.04567 58.462137,220.48971 82.82135,0 48.71844,-223.1786 -4.87182,-322.66789 0,0 -194.873797,-2.68889 z"
+       id="path3602"
+       inkscape:export-xdpi="2.6415093"
+       inkscape:export-ydpi="2.6415093"
+       inkscape:export-filename="/usr/local/music/src/ardour/3.0/gtk2_ardour/icons/midi_panic.png" />
+  </g>
+</svg>