changes to help strp silence
[ardour.git] / gtk2_ardour / global_port_matrix.h
index 845a348efd93c254757eacb8b9ed9e7d858cc695..8e13866f4227d278979e4eb1ad858d558c78c010 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2009 Paul Davis 
+    Copyright (C) 2009 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #ifndef __ardour_gtk_global_port_matrix_h__
 #define __ardour_gtk_global_port_matrix_h__
 
+#include <gtkmm/button.h>
 #include "port_matrix.h"
 #include "port_group.h"
 #include "ardour_dialog.h"
+#include "i18n.h"
 
 class GlobalPortMatrix : public PortMatrix
 {
 public:
-       GlobalPortMatrix (ARDOUR::Session&, ARDOUR::DataType);
-
-       void setup ();
-       
-       void set_state (
-               boost::shared_ptr<ARDOUR::Bundle>,
-               uint32_t,
-               boost::shared_ptr<ARDOUR::Bundle>,
-               uint32_t,
-               bool,
-               uint32_t
-               );
-       
-       State get_state (
-               boost::shared_ptr<ARDOUR::Bundle>,
-               uint32_t,
-               boost::shared_ptr<ARDOUR::Bundle>,
-               uint32_t
-               ) const;
-
-       void add_channel (boost::shared_ptr<ARDOUR::Bundle>) {}
-       void remove_channel (boost::shared_ptr<ARDOUR::Bundle>, uint32_t) {}
-       bool can_rename_channels () const {
-               return false;
+       GlobalPortMatrix (Gtk::Window*, ARDOUR::Session*, ARDOUR::DataType);
+
+       void setup_ports (int);
+
+       void set_state (ARDOUR::BundleChannel c[2], bool);
+       PortMatrixNode::State get_state (ARDOUR::BundleChannel c[2]) const;
+
+       std::string disassociation_verb () const {
+               return _("Disconnect");
        }
 
-private:
-       void group_visibility_changed ();
-       
-       ARDOUR::Session& _session;
-       PortGroupList _our_port_group_list;
+       std::string channel_noun () const {
+               return _("port");
+       }
 
+       bool list_is_global (int) const {
+               return true;
+       }
+
+private:
+       /* see PortMatrix: signal flow from 0 to 1 (out to in) */
+       enum {
+               OUT = 0,
+               IN = 1,
+       };
 };
 
 
-class GlobalPortMatrixWindow : public ArdourDialog
+class GlobalPortMatrixWindow : public Gtk::Window
 {
 public:
-       GlobalPortMatrixWindow (ARDOUR::Session&, ARDOUR::DataType);
+       GlobalPortMatrixWindow (ARDOUR::Session *, ARDOUR::DataType);
 
 private:
-       GlobalPortMatrix _port_matrix;
+       void on_show ();
 
+       GlobalPortMatrix _port_matrix;
+       Gtk::Button _rescan_button;
+       Gtk::CheckButton _show_ports_button;
 };