diff options
author | sanine <sanine.not@pm.me> | 2022-08-29 00:00:51 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2022-08-29 00:00:51 -0500 |
commit | b9761d521087e23ee7a83b854d356b1fa07fe06e (patch) | |
tree | adf5097346448c30687ba22b3496ef877c3b38e9 /src/channel.c | |
parent | a0e405532e276bc1b2c9cae0e44295b17d987151 (diff) |
add channel_set_volume and channel_set_pan
Diffstat (limited to 'src/channel.c')
-rw-r--r-- | src/channel.c | 18 |
1 files changed, 18 insertions, 0 deletions
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)); |