📄 client.c
字号:
#include <u.h>#include <libc.h>#include <thread.h>#include <bio.h>#include "client.h"#include "playlist.h"#include "../debug.h"char *srvmount = "/mnt/juke";char*getroot(void){ return "root";}voidfillbrowsebot(char *onum){ char *name, *p, *q; Biobuf *b, *d; int c; name = smprint("%s/%s/children", srvmount, onum); b = Bopen(name, OREAD); if(b == nil) sysfatal("getchildren: %s: %r", name); free(name); while(p = Brdline(b, '\n')){ c = strtol(p, &q, 0); assert(*q == '\n'); *q = 0; name = smprint("%s/%d/type", srvmount, c); d = Bopen(name, OREAD); if(d == nil) sysfatal("getchildren: %s: %r", name); free(name); q = Brdstr(d, '\n', 1); if(q == nil){ abort(); } Bterm(d); if(strcmp(q, "performance") == 0) continue; name = smprint("%s/%d/digest", srvmount, c); d = Bopen(name, OREAD); if(d == nil) sysfatal("getchildren: %s: %r", name); free(name); q = Brdstr(d, '\n', 1); if(q == nil){ Bterm(d); continue; } addchild(strdup(p), q); Bterm(d); } Bterm(b);}voiddoplay(char *onum){ char *name, *p, *q; Biobuf *b; int m; name = smprint("%s/%s/files", srvmount, onum); b = Bopen(name, OREAD); if(b == nil)abort();// sysfatal("doplay: %s: %r", name); while(p = Brdline(b, '\n')){ m = Blinelen(b); assert(p[m-1] == '\n'); p[m-1] = '\0'; q = strchr(p, ' '); if(q == nil) sysfatal("doplay: %s: format", name); *q++ = '\0'; sendplaylist(strdup(q), strdup(p)); } free(name); Bterm(b);}voidfillbrowsetop(char *onum){ char *name, *p; Biobuf *b; int m; name = smprint("%s/%s/parentage", srvmount, onum); b = Bopen(name, OREAD); if(b == nil)abort();// sysfatal("gettopwin: %s: %r", name); free(name); while(p = Brdline(b, '\n')){ m = Blinelen(b); assert(p[m-1] == '\n'); p[m-1] = '\0'; addparent(p); } Bterm(b);}voidfillplaytext(char *onum){ char *name, *p; Biobuf *b; int m; name = smprint("%s/%s/parentage", srvmount, onum); b = Bopen(name, OREAD); if(b == nil) sysfatal("fillplaytext: %s: %r", name); free(name); while(p = Brdline(b, '\n')){ m = Blinelen(b); assert(p[m-1] == '\n'); p[m-1] = '\0'; addplaytext(p); } Bterm(b);}char *getoneliner(char *onum){ char *name, *p; Biobuf *b; name = smprint("%s/%s/miniparentage", srvmount, onum); b = Bopen(name, OREAD); if(b == nil) sysfatal("gettopwin: %s: %r", name); free(name); p = Brdstr(b, '\n', 1); Bterm(b); return p;}char *getparent(char *onum){ char *name, *p; Biobuf *b; name = smprint("%s/%s/parent", srvmount, onum); b = Bopen(name, OREAD); if(b == nil)abort();// sysfatal("gettopwin: %s: %r", name); free(name); p = Brdstr(b, '\n', 1); Bterm(b); return p;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -