Hi Hermann,
On Mon, May 18, 2009 8:31 am, hermann meyer wrote:
>> they are totally unrelated.
>
> do I get it right, so, if there is no other thread then the
> process_callback involved in the midi data collection,then there is no
> need to use the ringbuffer ?
A ringbuffer is like an array that never ends. It's like a C++
std::vector<> or std::list<>. It's a container that you can use if you
want a never-ending array where the memory is pre-allocated. The
ringbuffer in jack could be used in any program, anywhere. Here is a
Wikipedia article on the subject:
http://en.wikipedia.org/wiki/Circular_buffer
You would use a ringbuffer when you have an audio (real-time) thread that
MUST NOT wait... but you need to share data with a GUI thread or some
other thread that will do heavy processing.
JACK does not require, nor does it even expect, that you will have a
ringbuffer anywhere in your application... even if you have more than one
thread. If you use an normal array/buffer for transferring data, that
will be just fine as long as you have appropriate read/write controls.
On the other hand, a port_buffer is just the interface you use from JACK
to read/write data from/to the JACK bus. It is owned and operated by
JACK, so you don't have to allocate it, nor worry about whether it's a
ring buffer or some other kind of buffer.
Hope this helps,
Gabriel
-- G a b r i e l M B e d d i n g f i e l d _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@email-addr-hidden http://lists.linuxaudio.org/mailman/listinfo/linux-audio-devReceived on Mon May 18 20:15:03 2009
This archive was generated by hypermail 2.1.8 : Mon May 18 2009 - 20:15:03 EEST