summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-05-29 17:33:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-05-29 17:33:41 +0000
commit36ccf8304963a7fb9e80ade61df482f122cea39d (patch)
tree232cb633f088617a3fa0701eca1bd3a772ad2e86
parent489d2ba1a76c64a935808591571ca63a053172c8 (diff)
clarify some confusion about how "raw" port buffer sizes are defined
git-svn-id: svn://localhost/ardour2/branches/3.0@9628 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/ardour/audio_port.h2
-rw-r--r--libs/ardour/ardour/midi_port.h3
-rw-r--r--libs/ardour/ardour/port.h3
-rw-r--r--libs/ardour/audio_port.cc6
-rw-r--r--libs/ardour/audioengine.cc6
-rw-r--r--libs/ardour/midi_port.cc12
6 files changed, 9 insertions, 23 deletions
diff --git a/libs/ardour/ardour/audio_port.h b/libs/ardour/ardour/audio_port.h
index 1d107dfe73..6b534afe62 100644
--- a/libs/ardour/ardour/audio_port.h
+++ b/libs/ardour/ardour/audio_port.h
@@ -39,8 +39,6 @@ class AudioPort : public Port
void cycle_end (pframes_t);
void cycle_split ();
- size_t raw_buffer_size (pframes_t nframes) const;
-
Buffer& get_buffer (pframes_t nframes) {
return get_audio_buffer (nframes);
}
diff --git a/libs/ardour/ardour/midi_port.h b/libs/ardour/ardour/midi_port.h
index d95296ef76..9a685be4e4 100644
--- a/libs/ardour/ardour/midi_port.h
+++ b/libs/ardour/ardour/midi_port.h
@@ -43,8 +43,7 @@ class MidiPort : public Port {
void flush_buffers (pframes_t nframes, framepos_t time);
void transport_stopped ();
-
- size_t raw_buffer_size (pframes_t nframes) const;
+ void reset ();
Buffer& get_buffer (pframes_t nframes) {
return get_midi_buffer (nframes);
diff --git a/libs/ardour/ardour/port.h b/libs/ardour/ardour/port.h
index fe6fc9139d..15085ec47b 100644
--- a/libs/ardour/ardour/port.h
+++ b/libs/ardour/ardour/port.h
@@ -111,9 +111,6 @@ public:
virtual void reset ();
- /** @return the size of the raw buffer (bytes) for duration @a nframes (audio frames) */
- virtual size_t raw_buffer_size (pframes_t nframes) const = 0;
-
virtual DataType type () const = 0;
virtual void cycle_start (pframes_t);
virtual void cycle_end (pframes_t) = 0;
diff --git a/libs/ardour/audio_port.cc b/libs/ardour/audio_port.cc
index 987d99e25a..b0c8d45221 100644
--- a/libs/ardour/audio_port.cc
+++ b/libs/ardour/audio_port.cc
@@ -79,9 +79,5 @@ AudioPort::get_audio_buffer (pframes_t nframes)
return *_buffer;
}
-size_t
-AudioPort::raw_buffer_size (pframes_t nframes) const
-{
- return nframes * sizeof (Sample);
-}
+
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 4a17bd6f4c..d6d3b45d18 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -815,12 +815,6 @@ AudioEngine::register_port (DataType dtype, const string& portname, bool input)
throw PortRegistrationFailure("unable to create port (unknown type)");
}
- size_t& old_buffer_size = _raw_buffer_sizes[newport->type()];
- size_t port_buffer_size = newport->raw_buffer_size(0);
- if (port_buffer_size > old_buffer_size) {
- old_buffer_size = port_buffer_size;
- }
-
RCUWriter<Ports> writer (ports);
boost::shared_ptr<Ports> ps = writer.get_copy ();
ps->insert (ps->begin(), newport);
diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc
index 1ebc1de3fa..39f43eeef9 100644
--- a/libs/ardour/midi_port.cc
+++ b/libs/ardour/midi_port.cc
@@ -21,6 +21,7 @@
#include "ardour/midi_port.h"
#include "ardour/data_type.h"
+#include "ardour/audioengine.h"
using namespace ARDOUR;
using namespace std;
@@ -30,7 +31,7 @@ MidiPort::MidiPort (const std::string& name, Flags flags)
, _has_been_mixed_down (false)
, _resolve_in_process (false)
{
- _buffer = new MidiBuffer (raw_buffer_size(0));
+ _buffer = new MidiBuffer (AudioEngine::instance()->raw_buffer_size (DataType::MIDI));
}
MidiPort::~MidiPort()
@@ -162,9 +163,10 @@ MidiPort::transport_stopped ()
_resolve_in_process = true;
}
-size_t
-MidiPort::raw_buffer_size (pframes_t nframes) const
+void
+MidiPort::reset ()
{
- return jack_midi_max_event_size (jack_port_get_buffer (_jack_port, nframes));
+ Port::reset ();
+ delete _buffer;
+ _buffer = new MidiBuffer (AudioEngine::instance()->raw_buffer_size (DataType::MIDI));
}
-