summaryrefslogtreecommitdiff
path: root/sys/src/cmd/audio
diff options
context:
space:
mode:
authorSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-11-03 16:52:29 +0000
committerSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-11-03 16:52:29 +0000
commit540a67e96f5874963880c4cbdbee65eacfb58857 (patch)
treef3cb301a025256f1a74e54ff39b32d71140bf326 /sys/src/cmd/audio
parent09ef6ef8ad39f846530675ecf70c59542fda8cd5 (diff)
audio/zuke: fix -s not drawing properly and track being off by one; more OCLOSE
Diffstat (limited to 'sys/src/cmd/audio')
-rw-r--r--sys/src/cmd/audio/zuke/zuke.c35
1 files changed, 16 insertions, 19 deletions
diff --git a/sys/src/cmd/audio/zuke/zuke.c b/sys/src/cmd/audio/zuke/zuke.c
index 189c14c36..359f5a274 100644
--- a/sys/src/cmd/audio/zuke/zuke.c
+++ b/sys/src/cmd/audio/zuke/zuke.c
@@ -520,11 +520,11 @@ coverload(void *player_)
*s = 0;
for(i = 0; i < nelem(covers) && prog == nil; i++){
- if((s = smprint("%s/%s.jpg", path, covers[i])) != nil && (fd = open(s, OREAD)) >= 0)
+ if((s = smprint("%s/%s.jpg", path, covers[i])) != nil && (fd = open(s, OREAD|OCEXEC)) >= 0)
prog = "jpg";
free(s);
s = nil;
- if(fd < 0 && (s = smprint("%s/%s.png", path, covers[i])) != nil && (fd = open(s, OREAD)) >= 0)
+ if(fd < 0 && (s = smprint("%s/%s.png", path, covers[i])) != nil && (fd = open(s, OREAD|OCEXEC)) >= 0)
prog = "png";
free(s);
}
@@ -536,7 +536,7 @@ coverload(void *player_)
goto done;
if(fd < 0){
- fd = open(m->path, OREAD);
+ fd = open(m->path, OREAD|OCEXEC);
seek(fd, m->imageoffset, 0);
}
pipe(p);
@@ -564,8 +564,7 @@ done:
sendp(ch, nil);
chanclose(ch);
chanfree(ch);
- if(pid >= 0)
- postnote(PNGROUP, pid, "interrupt");
+ postnote(PNGROUP, pid, "die");
threadexits(nil);
}
@@ -1203,7 +1202,7 @@ plumbaudio(void *kbd)
if(*s != '/' && m->wdir != nil)
s = smprint("%s/%.*s", m->wdir, m->ndata, m->data);
- if((e = strrchr(s, '.')) != nil && strcmp(e, ".plist") == 0 && (pf = open(s, OREAD)) >= 0){
+ if((e = strrchr(s, '.')) != nil && strcmp(e, ".plist") == 0 && (pf = open(s, OREAD|OCEXEC)) >= 0){
p = readplist(pf, mcw);
close(pf);
if(p == nil)
@@ -1395,23 +1394,25 @@ threadmain(int argc, char **argv)
sysfatal("playlist error");
}
close(0);
- adjustcolumns();
-
- if(shuffled){
- pcur = nrand(pl->n);
- toggleshuffle();
- recenter();
- }
- updatescrollsz();
- redraw(1);
m.buttons = 0;
scrolling = 0;
seekmx = 0;
+ adjustcolumns();
proccreate(plumbaudio, kctl.c, 4096);
+ if(shuffled){
+ pcur = nrand(pl->n);
+ toggleshuffle();
+ }
+ full = 1;
+
for(;;){
+ updatescrollsz();
+ scroll = CLAMP(scroll, 0, pl->n - scrollsz);
+ redraw(full);
+
oldpcur = pcur;
full = 0;
if(seekmx != newseekmx){
@@ -1633,9 +1634,5 @@ playcur:
else if(pcur > scroll + scrollsz)
scroll = pcur - scrollsz;
}
-
- updatescrollsz();
- scroll = CLAMP(scroll, 0, pl->n - scrollsz);
- redraw(full);
}
}