summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/Driver.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-04-08 06:04:32 +0000
committerDavid Robillard <d@drobilla.net>2007-04-08 06:04:32 +0000
commite96c36c1a7abb062e36efc0ac95c35fedcef922e (patch)
tree826d5caa0392201472d12c02a1c3df4cf7b275be /src/libs/engine/Driver.h
parent7d69e89f22304e37fa325ce4f39a374a02072a69 (diff)
downloadingen-e96c36c1a7abb062e36efc0ac95c35fedcef922e.tar.gz
ingen-e96c36c1a7abb062e36efc0ac95c35fedcef922e.tar.bz2
ingen-e96c36c1a7abb062e36efc0ac95c35fedcef922e.zip
De-template-ification of port types (req. for LV2 MIDI, but nice code size reduction).
LV2 MIDI patching support (LV2 style MIDI throughout, inc. internal plugins). git-svn-id: http://svn.drobilla.net/lad/ingen@415 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/Driver.h')
-rw-r--r--src/libs/engine/Driver.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/libs/engine/Driver.h b/src/libs/engine/Driver.h
index 6cbfbdff..fbddc828 100644
--- a/src/libs/engine/Driver.h
+++ b/src/libs/engine/Driver.h
@@ -21,10 +21,11 @@
#include <string>
#include <boost/utility.hpp>
#include "raul/Path.h"
+#include "DataType.h"
namespace Ingen {
-template <typename T> class DuplexPort;
+class DuplexPort;
/** Representation of a "system" (eg outside Ingen) port.
@@ -58,15 +59,15 @@ protected:
* interface for managing system ports. An implementation of Driver basically
* needs to manage DriverPorts, and handle writing/reading data to/from them.
*
- * The template parameter T is the type of data this driver manages (ie the
- * data type of the bridge ports it will handle).
- *
* \ingroup engine
*/
-template <typename T>
class Driver : boost::noncopyable
{
public:
+ Driver(DataType type)
+ : _type(type)
+ {}
+
virtual ~Driver() {}
virtual void activate() = 0;
@@ -78,10 +79,13 @@ public:
*
* May return NULL if the Driver can not drive the port for some reason.
*/
- virtual DriverPort* create_port(DuplexPort<T>* patch_port) = 0;
+ virtual DriverPort* create_port(DuplexPort* patch_port) = 0;
virtual void add_port(DriverPort* port) = 0;
virtual DriverPort* remove_port(const Raul::Path& path) = 0;
+
+protected:
+ DataType _type;
};