ref: 39fa000535052d34d481f6484a5df1adcfa30948
parent: 3ef22d5f5699f64f6d89fea1eaeb75b892633af5
author: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun Feb 21 06:11:40 EST 2016
higher prio; raise relbuf size; resize cover; place cover on bottom right
--- a/zuke.c
+++ b/zuke.c
@@ -15,7 +15,7 @@
Cstop,
Ctoggle,
- Relbufsz = 8192,
+ Relbufsz = 32768,
};
static Meta *pl;
@@ -47,7 +47,7 @@
{char tmp[256];
Point p, sp;
- Rectangle sel;
+ Rectangle sel, r;
int i;
if(new && getwindow(display, Refnone) < 0)
@@ -56,9 +56,6 @@
draw(screen, screen->r, cola, nil, ZP);
sp.x = sp.y = 0;
- if(cover != nil)
- draw(screen, screen->r, cover, nil, ZP);
-
p.x = screen->r.min.x + 2;
p.y = screen->r.min.y + 2;
scrollsz = Dy(screen->r) / f->height - 1;
@@ -89,6 +86,18 @@
p.y += f->height;
}
+ if(cover != nil){+ r = screen->r;
+ r.min.x = r.max.x - cover->r.max.x - 8;
+ r.min.y = r.max.y - cover->r.max.y - 8;
+ draw(screen, r, display->black, nil, ZP);
+ r.min.x += 4;
+ r.min.y += 4;
+ r.max.x -= 4;
+ r.max.y -= 4;
+ draw(screen, r, cover, nil, ZP);
+ }
+
flushimage(display, 1);
}
@@ -95,7 +104,7 @@
static void
coverload(void *m_)
{- int p[2], fd, pid;
+ int p[2], p2[2], fd, pid, pid2;
char *prog;
Meta *m;
@@ -122,10 +131,8 @@
pipe(p);
if((pid = rfork(RFPROC|RFFDG|RFREND|RFNOTEG)) == 0){- dup(fd, 0);
- dup(p[0], 1);
- close(fd);
- close(p[0]);
+ dup(fd, 0); close(fd);
+ dup(p[0], 1); close(p[0]);
close(p[1]);
execl(prog, prog, "-9t", nil);
sysfatal("execl: %r");@@ -132,12 +139,25 @@
}
close(fd);
close(p[0]);
- if(pid > 0){- cover = readimage(display, p[1], 0);
- postnote(PNGROUP, pid, "kill");
- redraw(screen, 0);
+
+ pipe(p2);
+ if((pid2 = rfork(RFPROC|RFFDG|RFREND|RFNOTEG)) == 0){+ dup(p[1], 0); close(p[1]);
+ dup(p2[0], 1); close(p2[0]);
+ close(p2[1]);
+ execl("/bin/resize", "/bin/resize", "-x128", nil);+ sysfatal("execl: %r");}
close(p[1]);
+ close(p2[0]);
+
+ if(pid > 0 && pid2 > 0){+ cover = readimage(display, p2[1], 0);
+ redraw(screen, 0);
+ }
+ postnote(PNGROUP, pid, "kill");
+ postnote(PNGROUP, pid2, "kill");
+ close(p2[1]);
}
static void
@@ -183,9 +203,9 @@
pcurplaying = player->pcur;
redraw(screen, 0);
- threadcreate(coverload, &pl[pcurplaying], 4096);
+ proccreate(coverload, &pl[pcurplaying], 4096);
- while((n = readn(p[1], buf, Relbufsz)) > 0){+ while((n = read(p[1], buf, Relbufsz)) > 0){c = nbrecvul(player->ctl);
if(c == Cstop)
goto stop;
@@ -381,7 +401,7 @@
void
threadmain(int argc, char **argv)
{- int inv, oldpcur;
+ int inv, fd, oldpcur;
Player *player;
Rune key;
Mouse m;
@@ -392,6 +412,7 @@
{ nil, &key, CHANRCV }, { nil, nil, CHANEND },};
+ char tmp[256];
inv = 0;
ARGBEGIN{@@ -430,6 +451,12 @@
pcurplaying = -1;
player = nil;
threadsetname("zuke");+
+ snprint(tmp, sizeof(tmp), "/proc/%d/ctl", getpid());
+ if((fd = open(tmp, OWRITE)) >= 0){+ fprint(fd, "pri 13\n");
+ close(fd);
+ }
redraw(screen, 1);
--
⑨