diff options
author | David Robillard <d@drobilla.net> | 2011-10-03 02:18:42 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-10-03 02:18:42 +0000 |
commit | 8768c927968c2541bcac763d9a4f237081eaca4b (patch) | |
tree | 214b29607be379f4cab4d254562a9949677c5848 /include/ingen/PortType.hpp | |
parent | af70d4f1e0927ea3e89b78fdf0de4247a32a39b4 (diff) | |
download | ingen-8768c927968c2541bcac763d9a4f237081eaca4b.tar.gz ingen-8768c927968c2541bcac763d9a4f237081eaca4b.tar.bz2 ingen-8768c927968c2541bcac763d9a4f237081eaca4b.zip |
Remove static PortType enumeration from public/client side interface.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3523 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'include/ingen/PortType.hpp')
-rw-r--r-- | include/ingen/PortType.hpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/include/ingen/PortType.hpp b/include/ingen/PortType.hpp deleted file mode 100644 index 1fc9f995..00000000 --- a/include/ingen/PortType.hpp +++ /dev/null @@ -1,96 +0,0 @@ -/* This file is part of Ingen. - * Copyright 2007-2011 David Robillard <http://drobilla.net> - * - * Ingen 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. - * - * Ingen 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 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., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef INGEN_INTERFACE_PORTTYPE_HPP -#define INGEN_INTERFACE_PORTTYPE_HPP - -#include "raul/URI.hpp" - -namespace Ingen { - -/** The type of a port. - * - * This type refers to the type of the port itself (not necessarily the type - * of its contents). Ports with different types can contain the same type of - * data, but may e.g. have different access semantics. - */ -class PortType { -public: - enum Symbol { - UNKNOWN = 0, - AUDIO = 1, - CONTROL = 2, - EVENTS = 3, - VALUE = 4, - MESSAGE = 5, - }; - - PortType(const Raul::URI& uri) - : _symbol(UNKNOWN) - { - if (uri == type_uri(AUDIO)) { - _symbol = AUDIO; - } else if (uri == type_uri(CONTROL)) { - _symbol = CONTROL; - } else if (uri == type_uri(EVENTS)) { - _symbol = EVENTS; - } else if (uri == type_uri(VALUE)) { - _symbol = VALUE; - } else if (uri == type_uri(MESSAGE)) { - _symbol = MESSAGE; - } - } - - PortType(Symbol symbol) - : _symbol(symbol) - {} - - inline const Raul::URI& uri() const { return type_uri(_symbol); } - inline Symbol symbol() const { return _symbol; } - - inline bool operator==(const Symbol& symbol) const { return (_symbol == symbol); } - inline bool operator!=(const Symbol& symbol) const { return (_symbol != symbol); } - inline bool operator==(const PortType& type) const { return (_symbol == type._symbol); } - inline bool operator!=(const PortType& type) const { return (_symbol != type._symbol); } - inline bool operator<(const PortType& type) const { return (_symbol < type._symbol); } - - inline bool is_audio() { return _symbol == AUDIO; } - inline bool is_control() { return _symbol == CONTROL; } - inline bool is_events() { return _symbol == EVENTS; } - inline bool is_value() { return _symbol == VALUE; } - inline bool is_message() { return _symbol == MESSAGE; } - -private: - static inline const Raul::URI& type_uri(unsigned symbol_num) { - assert(symbol_num <= MESSAGE); - static const Raul::URI uris[] = { - "http://drobilla.net/ns/ingen#nil", - "http://lv2plug.in/ns/lv2core#AudioPort", - "http://lv2plug.in/ns/lv2core#ControlPort", - "http://lv2plug.in/ns/ext/event#EventPort", - "http://lv2plug.in/ns/ext/atom#ValuePort", - "http://lv2plug.in/ns/ext/atom#MessagePort" - }; - return uris[symbol_num]; - } - - Symbol _symbol; -}; - -} // namespace Ingen - -#endif // INGEN_INTERFACE_PORTTYPE_HPP |