diff options
author | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2022-11-03 16:52:29 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2022-11-03 16:52:29 +0000 |
commit | 540a67e96f5874963880c4cbdbee65eacfb58857 (patch) | |
tree | f3cb301a025256f1a74e54ff39b32d71140bf326 /sys/src/cmd/audio | |
parent | 09ef6ef8ad39f846530675ecf70c59542fda8cd5 (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.c | 35 |
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); } } |