t_buffer / t_buffer_obj

do.while's icon

Hi !
SDK 6.1.4 suggest to use "t_buffer_obj" instead of "t_buffer" .

i would like to understand one difference that consist of accessing buffer data .
If i want to access buffer data in old way , im simply pointing to

b->b_samples
b->b_framess
b->b_nchans
etc

...
now this seems to be different ,and it consist of function call as i understand .
so this is a new way of accessing that data right ?

buffer_getchannelcount(b);
buffer_getframecount(b);

...
so now if i want to access and do operation/modify buffer sample content im not accessing it anymore through "b_samples" member . instead i should return a pointer to its content with :

buffer_locksamples(b);

???

so this is a new way of accessing buffer sample data , through locking buffer object ?
which simply do two operations . Before it would require ATOMIC_INCREMENT , and calling for a member separately . Now its a one function . Do i understand it right ?

I know the reason why i should lock the buffer , but it is always required ? cant i access samples without locking my buffers and compute some data out of it ? simply without modifying any buffer content .

do.while's icon

yes , thanks Nicolas , very informative