summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/chan_count.h
diff options
context:
space:
mode:
authorDoug McLain <doug@nostar.net>2008-06-02 05:02:28 +0000
committerDoug McLain <doug@nostar.net>2008-06-02 05:02:28 +0000
commit9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch)
tree96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/ardour/ardour/chan_count.h
parent2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (diff)
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/chan_count.h')
-rw-r--r--libs/ardour/ardour/chan_count.h126
1 files changed, 0 insertions, 126 deletions
diff --git a/libs/ardour/ardour/chan_count.h b/libs/ardour/ardour/chan_count.h
deleted file mode 100644
index 986ef76e25..0000000000
--- a/libs/ardour/ardour/chan_count.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- Copyright (C) 2006 Paul Davis
- Author: Dave Robillard
-
- 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
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef __ardour_chan_count_h__
-#define __ardour_chan_count_h__
-
-#include <ardour/data_type.h>
-#include <cassert>
-
-namespace ARDOUR {
-
-
-/** A count of channels, possibly with many types.
- *
- * Operators are defined so this may safely be used as if it were a simple
- * (single-typed) integer count of channels.
- */
-class ChanCount {
-public:
- ChanCount() { reset(); }
-
- // Convenience constructor for making single-typed streams (stereo, mono, etc)
- ChanCount(DataType type, uint32_t channels)
- {
- reset();
- set(type, channels);
- }
-
- void reset()
- {
- for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
- _counts[*t] = 0;
- }
- }
-
- void set(DataType t, uint32_t count) { assert(t != DataType::NIL); _counts[t] = count; }
- uint32_t get(DataType t) const { assert(t != DataType::NIL); return _counts[t]; }
-
- inline uint32_t n_audio() const { return _counts[DataType::AUDIO]; }
- inline void set_audio(uint32_t a) { _counts[DataType::AUDIO] = a; }
-
- inline uint32_t n_midi() const { return _counts[DataType::MIDI]; }
- inline void set_midi(uint32_t m) { _counts[DataType::MIDI] = m; }
-
- uint32_t n_total() const
- {
- uint32_t ret = 0;
- for (uint32_t i=0; i < DataType::num_types; ++i)
- ret += _counts[i];
-
- return ret;
- }
-
- bool operator==(const ChanCount& other) const
- {
- for (uint32_t i=0; i < DataType::num_types; ++i)
- if (_counts[i] != other._counts[i])
- return false;
-
- return true;
- }
-
- bool operator!=(const ChanCount& other) const
- {
- return ! (*this == other);
- }
-
- bool operator<(const ChanCount& other) const
- {
- for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
- if (_counts[*t] > other._counts[*t]) {
- return false;
- }
- }
- return (*this != other);
- }
-
- bool operator<=(const ChanCount& other) const
- {
- return ( (*this < other) || (*this == other) );
- }
-
- bool operator>(const ChanCount& other) const
- {
- for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
- if (_counts[*t] < other._counts[*t]) {
- return false;
- }
- }
- return (*this != other);
- }
-
- bool operator>=(const ChanCount& other) const
- {
- return ( (*this > other) || (*this == other) );
- }
-
- static const ChanCount INFINITE;
- static const ChanCount ZERO;
-
-private:
-
- uint32_t _counts[DataType::num_types];
-};
-
-
-} // namespace ARDOUR
-
-#endif // __ardour_chan_count_h__
-