Re: [PATCH 1/2] ALSA: aloop: Add support for the non-interleaved access mode

From: Ivan Orlov
Date: Fri Oct 06 2023 - 14:03:04 EST


On 10/5/23 08:23, Jaroslav Kysela wrote:
On 27. 09. 23 13:35, Ivan Orlov wrote:
The current version of the loopback driver supports interleaved access
mode only. This patch introduces support for the non-interleaved
access mode.

When in the interleaved mode, the 'copy_play_buf' function copies data
from the playback to the capture buffer using one memcpy call. This call
copies samples for multiple, interleaved channels.

In the non-interleaved mode we have multiple channel buffers, so we have
to perform multiple memcpy calls to copy samples channel after channel.

Add new function called 'copy_play_buf_part_n', which copies a part of
each channel buffer from playback to capture. Modify the 'copy_play_buf'
to use the corresponding memory copy function(just memcpy /
copy_play_buf_part_n) depending on the access mode.

Signed-off-by: Ivan Orlov <ivan.orlov0322@xxxxxxxxx>

Nice extension. Thank you.

+static void copy_play_buf_part_n(struct loopback_pcm *play, struct loopback_pcm *capt,
+                 unsigned int size, unsigned int src_off, unsigned int dst_off)

I would probably prefer to have dst,src,size arguments to follow memcpy, but it's really nitpicking.

Reviewed-by: Jaroslav Kysela <perex@xxxxxxxx>

                    Jaroslav


Hi Jaroslav,

Thank you for the review!

I agree that parameters similar to the memcpy would look better than that, I'll keep it in mind when I send the next patch :)

--
Kind regards,
Ivan Orlov