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);
}
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);
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;
return *_buffer;
}
-size_t
-AudioPort::raw_buffer_size (pframes_t nframes) const
-{
- return nframes * sizeof (Sample);
-}
+
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);
#include "ardour/midi_port.h"
#include "ardour/data_type.h"
+#include "ardour/audioengine.h"
using namespace ARDOUR;
using namespace std;
, _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()
_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));
}
-