1 /* 2 * Copyright (C) 2009-2010 Carl Hetherington <carl@carlh.net> 3 * Copyright (C) 2009-2011 David Robillard <d@drobilla.net> 4 * Copyright (C) 2010-2013 Paul Davis <paul@linuxaudiosystems.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program; if not, write to the Free Software Foundation, Inc., 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 */ 20 21 #ifndef __ardour_gtk_global_port_matrix_h__ 22 #define __ardour_gtk_global_port_matrix_h__ 23 24 #include <gtkmm/button.h> 25 #include "port_matrix.h" 26 #include "port_group.h" 27 #include "ardour_window.h" 28 29 class GlobalPortMatrix : public PortMatrix 30 { 31 public: 32 GlobalPortMatrix (Gtk::Window*, ARDOUR::Session*, ARDOUR::DataType); 33 34 void setup_ports (int); 35 void set_session (ARDOUR::Session* s); 36 37 void set_state (ARDOUR::BundleChannel c[2], bool); 38 PortMatrixNode::State get_state (ARDOUR::BundleChannel c[2]) const; 39 40 std::string disassociation_verb () const; 41 std::string channel_noun () const; 42 list_is_global(int)43 bool list_is_global (int) const { 44 return true; 45 } 46 47 private: 48 /* see PortMatrix: signal flow from 0 to 1 (out to in) */ 49 enum { 50 FLOW_OUT = 0, 51 FLOW_IN = 1, 52 }; 53 }; 54 55 class GlobalPortMatrixWindow : public ArdourWindow 56 { 57 public: 58 GlobalPortMatrixWindow (ARDOUR::Session *, ARDOUR::DataType); 59 60 void set_session (ARDOUR::Session *); 61 62 private: 63 void on_show (); 64 65 GlobalPortMatrix _port_matrix; 66 Gtk::Button _rescan_button; 67 Gtk::CheckButton _show_ports_button; 68 }; 69 70 71 #endif 72