On Tue, Dec 13, 2011 at 5:53 AM, Paul Davis <span dir="ltr"><<a href="mailto:paul@linuxaudiosystems.com">paul@linuxaudiosystems.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Mon, Dec 12, 2011 at 11:44 PM, Iain Duncan <<a href="mailto:iainduncanlists@gmail.com">iainduncanlists@gmail.com</a>> wrote:<br>
<br>
> Yup, what I'm talking about is being able to put a data structure on to the<br>
> ring buffer. It needs be castable to a  const *char, so the structure needs<br>
> a way to be converted to a string.<br>
<br>
</div>these two statements are not related. in an awful lot of C code,<br>
"pointer to char" means "pointer". in newer better C code, one uses<br>
void*. in newer, better code than that, one doesn't use raw pointers<br>
much at all.<br>
<br>
are you working in C or C++ ?<br></blockquote><div><br></div><div>Thanks Paul. I'm working in C++, but I'm using the jack C api, which from the docs I see has a signature for  </div><div>size_t jack_ringbuffer_write         (       jack_ringbuffer_t *     rb,  const char *       src, size_t     cnt )<br>
</div><div><br></div><div>My DataMessage structure is just a simple C structure for now. Is there a recommended way of writing it to the ringbuffer given that I want to do something like this:</div><div><br></div><div>void MessageQueue::push( DataMessage msg ){<br>
      // write to the ring buffer, converting DataMessage to a string<br>      unsigned int written = jack_ringbuffer_write( mRingBuffer, (char *) &msg , sizeof(DataMessage) );<br>    // etc<br>}<br></div><div><br></div>
<div><br></div><div>Thanks</div><div>Iain</div>