summaryrefslogtreecommitdiff
path: root/firmware/export/pcm_mixer.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/pcm_mixer.h')
-rw-r--r--firmware/export/pcm_mixer.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/firmware/export/pcm_mixer.h b/firmware/export/pcm_mixer.h
index 69d2b894df..d424083002 100644
--- a/firmware/export/pcm_mixer.h
+++ b/firmware/export/pcm_mixer.h
@@ -106,7 +106,8 @@ enum channel_status mixer_channel_status(enum pcm_mixer_channel channel);
106size_t mixer_channel_get_bytes_waiting(enum pcm_mixer_channel channel); 106size_t mixer_channel_get_bytes_waiting(enum pcm_mixer_channel channel);
107 107
108/* Return pointer to channel's playing audio data and the size remaining */ 108/* Return pointer to channel's playing audio data and the size remaining */
109const void * mixer_channel_get_buffer(enum pcm_mixer_channel channel, int *count); 109const void * mixer_channel_get_buffer(enum pcm_mixer_channel channel,
110 int *count);
110 111
111/* Calculate peak values for channel */ 112/* Calculate peak values for channel */
112void mixer_channel_calculate_peaks(enum pcm_mixer_channel channel, 113void mixer_channel_calculate_peaks(enum pcm_mixer_channel channel,
@@ -116,6 +117,13 @@ void mixer_channel_calculate_peaks(enum pcm_mixer_channel channel,
116void mixer_adjust_channel_address(enum pcm_mixer_channel channel, 117void mixer_adjust_channel_address(enum pcm_mixer_channel channel,
117 off_t offset); 118 off_t offset);
118 119
120/* Set a hook that is called upon getting a new source buffer for a channel
121 NOTE: Called for each buffer, not each mixer chunk */
122typedef void (*chan_buffer_hook_fn_type)(const void *start, size_t size);
123
124void mixer_channel_set_buffer_hook(enum pcm_mixer_channel channel,
125 chan_buffer_hook_fn_type fn);
126
119/* Stop ALL channels and PCM and reset state */ 127/* Stop ALL channels and PCM and reset state */
120void mixer_reset(void); 128void mixer_reset(void);
121 129