aboutsummaryrefslogtreecommitdiff
path: root/include/pcm.h
diff options
context:
space:
mode:
authorTimo Wischer <twischer@de.adit-jv.com>2018-03-13 09:34:43 +0100
committerTakashi Iwai <tiwai@suse.de>2018-03-13 22:13:15 +0100
commit22618077e78a04120f19582700127b6456e21932 (patch)
tree2b58869c667fb3f02cff53ffc9db90ec9d7f396b /include/pcm.h
parentdf2452cc6a35baacb6126869f74c6f7ad913736d (diff)
pcm: Provide areas_copy function which handles buffer wrap around
The already existing areas_copy functions do not care about the end of the source and destination buffer. Therefore the caller has to take care that the requested offset+size is not exceeding any buffer limit. This additional function will take care about the end of an buffer and will continue at the beginning of the buffer. For example this is required when copying between buffers with different sizes (not multiple of). This is often the case in IO plugins like the JACK plugin. Signed-off-by: Timo Wischer <twischer@de.adit-jv.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/pcm.h')
-rw-r--r--include/pcm.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/pcm.h b/include/pcm.h
index 2619c8cd..e2a53435 100644
--- a/include/pcm.h
+++ b/include/pcm.h
@@ -1147,6 +1147,15 @@ int snd_pcm_area_copy(const snd_pcm_channel_area_t *dst_channel, snd_pcm_uframes
int snd_pcm_areas_copy(const snd_pcm_channel_area_t *dst_channels, snd_pcm_uframes_t dst_offset,
const snd_pcm_channel_area_t *src_channels, snd_pcm_uframes_t src_offset,
unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format);
+int snd_pcm_areas_copy_wrap(const snd_pcm_channel_area_t *dst_channels,
+ snd_pcm_uframes_t dst_offset,
+ const snd_pcm_uframes_t dst_size,
+ const snd_pcm_channel_area_t *src_channels,
+ snd_pcm_uframes_t src_offset,
+ const snd_pcm_uframes_t src_size,
+ const unsigned int channels,
+ snd_pcm_uframes_t frames,
+ const snd_pcm_format_t format);
/** \} */