ref: 1791bae9029685d63bf022ae1cb06093dbce598e
parent: ba4b0723d9e6d6ec72ca54016a932e72fbae46f7
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Wed Jan 15 21:50:25 EST 2025
sdl2 mixer: use play(1) instead of games/midi (thanks qwx)
--- a/libnpe_sdl2/mixer.c
+++ b/libnpe_sdl2/mixer.c
@@ -2,14 +2,8 @@
#include <SDL2/SDL_mixer.h>
-int audiofd = -1;
-int musicpipe[2] = {-1, -1};-
static int forkerpid = -1;
-static int audiopid = -1;
-void musicproc(void *);
-
static int musicvol = 128;
static int musicpaused = 0;
@@ -124,9 +118,6 @@
void
Mix_CloseAudio(void)
{- if(audiopid > 0)
- postnote(PNPROC, audiopid, "quit");
- audiopid = -1;
}
int
@@ -142,11 +133,6 @@
sysfatal("exec: %r\n");}
waitpid();
- pipe(musicpipe);
- if(fork() == 0){- musicproc(nil);
- sysfatal("exec musicproc: %r");- }
return flags;
}
@@ -209,12 +195,9 @@
n = loops;
while(loops == -1 || n-- > 0){- switch(rfork(RFPROC|RFFDG)){+ switch(rfork(RFPROC|RFCFDG)){case 0:
- dup(musicpipe[1], 1);
- close(musicpipe[1]);
- close(musicpipe[0]);
- execl("/bin/games/midi", "midi", "-c", music->loc, nil);+ execl("/bin/play", "play", music->loc, nil); sysfatal("exec: %r");break;
default:
@@ -260,25 +243,4 @@
if(freesrc)
SDL_RWclose(src);
return m;
-}
-
-void
-musicproc(void *)
-{- int fd;
- static char buf[8192];
- int n;
-
- fd = open("/dev/audio", OWRITE);- if(fd < 0)
- sysfatal("musicproc: %r");-
- close(musicpipe[1]);
- threadsetname("musicproc");- for(;;){- n = read(musicpipe[0], buf, sizeof buf);
- if(n < 0)
- threadexits(nil);
- write(fd, buf, n);
- }
}
--
⑨