From b9761d521087e23ee7a83b854d356b1fa07fe06e Mon Sep 17 00:00:00 2001 From: sanine Date: Mon, 29 Aug 2022 00:00:51 -0500 Subject: add channel_set_volume and channel_set_pan --- src/channel.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/channel.c') diff --git a/src/channel.c b/src/channel.c index 0141569..603a980 100644 --- a/src/channel.c +++ b/src/channel.c @@ -40,6 +40,24 @@ void channel_resume(struct channel_t *chan) } +void channel_set_volume(struct channel_t *chan, float volume) +{ + if (volume > 1.0f) volume = 1.0f; + if (volume < 0.0f) volume = 0.0f; + + p_atomic_int_set(&(chan->volume), 255*volume); +} + + +void channel_set_pan(struct channel_t *chan, float pan) +{ + if (pan > 1.0f) pan = 1.0f; + if (pan < -1.0f) pan = -1.0f; + + p_atomic_int_set(&(chan->pan), 128*pan); +} + + void channel_get_next_sample(float *left, float *right, struct channel_t *chan) { bool active = p_atomic_int_get(&(chan->active)); -- cgit v1.2.1