ref: 7c06cf764b2d7de70ea225ead0e913b5785ddf3b
parent: fc0d38552e53914b7f638be23cb09eda488ce25e
author: Jacob Moody <moody@posixcafe.org>
date: Mon Jan 17 16:50:21 EST 2022
cleanup
--- a/Make.linux
+++ b/Make.linux
@@ -1,5 +1,4 @@
-# Unix
-#PTHREAD= # for Mac
+# Linux
PTHREAD=-pthread
AR=ar
AS=as
--- a/gui-wl/wl-cb.c
+++ b/gui-wl/wl-cb.c
@@ -129,11 +129,12 @@
}
void
-repeatproc(void*)
+repeatproc(void *_dummy)
{
int ms;
long keytime;
+ USED(_dummy);
for(;;){
ksleep(&repeatstate.z, isactive, 0);
qlock(&repeatstate.lk);
--- a/kern/devaudio-pipewire.c
+++ b/kern/devaudio-pipewire.c
@@ -6,6 +6,7 @@
#include "devaudio.h"
#undef long
+#undef ulong
#include <pipewire/pipewire.h>
#include <spa/param/audio/format-utils.h>
@@ -36,15 +37,9 @@
return;
}
b = pw_stream_dequeue_buffer(pwstate.output);
- if(b == NULL)
- sysfatal("pipewire ran out of buffers");
buf = b->buffer;
dst = buf->datas[0].data;
- if(dst == NULL)
- sysfatal("can't write anywhere");
- if(buf->datas[0].maxsize < pwstate.written)
- sysfatal("we buffered too much, or pipewire has comically low output rate");
memcpy(dst, pwstate.buf, pwstate.written);
buf->datas[0].chunk->offset = 0;
@@ -101,8 +96,11 @@
&stream_events,
NULL);
- if(pwstate.output == NULL)
- sysfatal("could not create output");
+ if(pwstate.output == NULL){
+ unlock(&pwstate.lk);
+ error("could not create pipewire output");
+ return;
+ }
params[0] = spa_format_audio_raw_build(&b, SPA_PARAM_EnumFormat,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16_LE,
@@ -117,10 +115,12 @@
PW_STREAM_FLAG_RT_PROCESS,
params, 1);
- if(err < 0)
- sysfatal("failed to connect");
-
unlock(&pwstate.lk);
+ if(err < 0){
+ error("could not connect pipewire stream");
+ return;
+ }
+
kproc("pipewire main loop", pwproc, pwstate.loop);
}
@@ -149,8 +149,8 @@
audiodevwrite(void *a, int n)
{
if(n > sizeof(pwstate.buf)){
- sysfatal("write too large of size:", n);
- n = sizeof(pwstate.buf);
+ error("write too large");
+ return -1;
}
lock(&pwstate.lk);
if(pwstate.written != 0){
@@ -167,12 +167,12 @@
void
audiodevsetvol(int what, int left, int right)
{
- error("no audio support");
+ error("no volume support");
}
void
audiodevgetvol(int what, int *left, int *right)
{
- error("no audio support");
+ error("no volume support");
}