From 36ccf8304963a7fb9e80ade61df482f122cea39d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 29 May 2011 17:33:41 +0000 Subject: [PATCH] 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 --- libs/ardour/ardour/audio_port.h | 2 -- libs/ardour/ardour/midi_port.h | 3 +-- libs/ardour/ardour/port.h | 3 --- libs/ardour/audio_port.cc | 6 +----- libs/ardour/audioengine.cc | 6 ------ libs/ardour/midi_port.cc | 12 +++++++----- 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 writer (ports); boost::shared_ptr 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)); } -