summaryrefslogtreecommitdiff
path: root/src/channel.c
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-08-29 00:00:51 -0500
committersanine <sanine.not@pm.me>2022-08-29 00:00:51 -0500
commitb9761d521087e23ee7a83b854d356b1fa07fe06e (patch)
treeadf5097346448c30687ba22b3496ef877c3b38e9 /src/channel.c
parenta0e405532e276bc1b2c9cae0e44295b17d987151 (diff)
add channel_set_volume and channel_set_pan
Diffstat (limited to 'src/channel.c')
-rw-r--r--src/channel.c18
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));