X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_types.h;h=dafbc858b66d67a6b93385ed89f1799cb8a8e8fd;hb=aabc5108f34058d466d1e7451694193a08379ce2;hp=16fb440ace04087438803d76fba3bcc958988af5;hpb=b2e163a410a62a20e982b3baac0cf65e611acbce;p=ardour.git diff --git a/gtk2_ardour/port_matrix_types.h b/gtk2_ardour/port_matrix_types.h index 16fb440ace..dafbc858b6 100644 --- a/gtk2_ardour/port_matrix_types.h +++ b/gtk2_ardour/port_matrix_types.h @@ -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 @@ -22,46 +22,27 @@ #include "ardour/bundle.h" -struct PortMatrixBundleChannel { - PortMatrixBundleChannel () : channel (0) {} - PortMatrixBundleChannel (boost::shared_ptr b, uint32_t c) - : bundle (b), channel (c) {} - - bool operator== (PortMatrixBundleChannel const& other) const { - return bundle == other.bundle && channel == other.channel; - } - bool operator!= (PortMatrixBundleChannel const& other) const { - return bundle != other.bundle || channel != other.channel; - } - - uint32_t nchannels (ARDOUR::BundleList const& bl) const { - uint32_t n = 0; - ARDOUR::BundleList::const_iterator i = bl.begin(); - while (i != bl.end() && *i != bundle) { - n += (*i)->nchannels (); - ++i; - } - n += channel; - return n; - } - - boost::shared_ptr bundle; - uint32_t channel; -}; - -struct PortMatrixNode { +class PortMatrixNode +{ +public: PortMatrixNode () {} - PortMatrixNode (PortMatrixBundleChannel r, PortMatrixBundleChannel c) : row (r), column (c) {} - + PortMatrixNode (ARDOUR::BundleChannel r, ARDOUR::BundleChannel c) : row (r), column (c) {} + bool operator== (PortMatrixNode const& other) const { return row == other.row && column == other.column; } bool operator!= (PortMatrixNode const& other) const { return row != other.row || column != other.column; } - - PortMatrixBundleChannel row; - PortMatrixBundleChannel column; + + ARDOUR::BundleChannel row; + ARDOUR::BundleChannel column; + + enum State { + ASSOCIATED, ///< the ports are associated + NOT_ASSOCIATED, ///< the ports are not associated + PARTIAL ///< used when we are examining bundles; the bundles are partially associated + }; }; #endif