summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aux
diff options
context:
space:
mode:
authorSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-08-20 17:05:20 +0000
committerSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-08-20 17:05:20 +0000
commit3e58068cc5f07ae3306630aaa1448fa87643c170 (patch)
tree3bb6a3f5ea7e4bb43bdb7f614aa0f30f51563f7e /sys/src/cmd/aux
parentf05b00e7be50dfbcf698a0d9c3b1f2fdbea98adc (diff)
aux/wm8960: relative volume adjustment through the fs interface
Diffstat (limited to 'sys/src/cmd/aux')
-rw-r--r--sys/src/cmd/aux/wm8960.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/src/cmd/aux/wm8960.c b/sys/src/cmd/aux/wm8960.c
index adb554d47..0250d05bf 100644
--- a/sys/src/cmd/aux/wm8960.c
+++ b/sys/src/cmd/aux/wm8960.c
@@ -240,6 +240,18 @@ fsread(Req *r)
respond(r, nil);
}
+static int
+setoradd(int x, char *s)
+{
+ int d;
+
+ d = atoi(s);
+ if(*s == '+' || *s == '-')
+ return x + d;
+
+ return d;
+}
+
static void
fswrite(Req *r)
{
@@ -287,8 +299,8 @@ Emsg:
goto Emsg;
toggle(o, on);
}else if(r->fid->file->aux == (void*)Vol){
- vl = atoi(f[1]);
- vr = nf < 3 ? vl : atoi(f[2]);
+ vl = setoradd(o->vol[0], f[1]);
+ vr = setoradd(o->vol[1], nf < 3 ? f[1] : f[2]);
setvol(o, vl, vr);
}