@@ 25,6 25,7 @@ static Channel *audiosync;
static Channel *audiofinished;
static char info[256];
static int showinfo;
+static int paused;
static uvlong dispdelay;
static int framedrop;
static uvlong late;
@@ 43,7 44,7 @@ audioproc(void *x)
fprint(2, "runaudio: %r\n");
}else{
for(s = x; Sread(s, &f) == 0 && f.sz > 0;){
- if(!synced){
+ if(!synced || paused){
recvp(audiosync);
chanclose(audiosync);
synced = 1;
@@ 381,7 382,16 @@ threadmain(int argc, char **argv)
case Ckeyboard:
end = key == 'q' || key == Kdel;
done = key == '\n';
- showinfo = key == 'i' ? !showinfo : showinfo;
+ showinfo ^= key == 'i';
+ if(key == 'p'){
+ if(!paused){
+ audiosync = chancreate(sizeof(void*), 1);
+ a[Cframe].op = CHANNOP;
+ }else{
+ a[Cframe].op = CHANRCV;
+ }
+ paused ^= 1;
+ }
forced = 1;
break;