/*
- Copyright (C) 2004 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
#ifndef __ardour_click_h__
#define __ardour_click_h__
+#include <list>
+
+#include "pbd/pool.h"
+#include "ardour/types.h"
#include "ardour/io.h"
namespace ARDOUR {
-class ClickIO : public IO
-{
- public:
- ClickIO (Session& s, const string& name,
+struct Click {
+ nframes_t start;
+ nframes_t duration;
+ nframes_t offset;
+ const Sample *data;
- int input_min = -1, int input_max = -1,
+ Click (nframes_t s, nframes_t d, const Sample *b) : start (s), duration (d), offset (0), data (b) {}
+
+ void *operator new (size_t) {
+ return pool.alloc ();
+ };
+
+ void operator delete(void *ptr, size_t /*size*/) {
+ pool.release (ptr);
+ }
+
+private:
+ static Pool pool;
+};
- int output_min = -1, int output_max = -1)
- : IO (s, name, input_min, input_max, output_min, output_max) {}
+typedef std::list<Click*> Clicks;
+class ClickIO : public IO
+{
+ public:
+ ClickIO (Session& s, const std::string& name) : IO (s, name, IO::Output) {}
~ClickIO() {}
-
+
protected:
uint32_t pans_required () const { return 1; }
};