Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <thread.h>
4
#include <bio.h>
5
#include "client.h"
6
#include "playlist.h"
7
#include "../debug.h"
8
 
9
char *srvmount = "/mnt/juke";
10
 
11
char*
12
getroot(void)
13
{
14
	return "root";
15
}
16
 
17
void
18
fillbrowsebot(char *onum)
19
{
20
	char *name, *p, *q;
21
	Biobuf *b, *d;
22
	int c;
23
 
24
	name = smprint("%s/%s/children", srvmount, onum);
25
	b = Bopen(name, OREAD);
26
	if(b == nil)
27
		sysfatal("getchildren: %s: %r", name);
28
	free(name);
29
	while(p = Brdline(b, '\n')){
30
		c = strtol(p, &q, 0);
31
		assert(*q == '\n');
32
		*q = 0;
33
		name = smprint("%s/%d/type", srvmount, c);
34
		d = Bopen(name, OREAD);
35
		if(d == nil)
36
			sysfatal("getchildren: %s: %r", name);
37
		free(name);
38
		q = Brdstr(d, '\n', 1);
39
		if(q == nil){
40
			abort();
41
		}
42
		Bterm(d);
43
		if(strcmp(q, "performance") == 0)
44
			continue;
45
		name = smprint("%s/%d/digest", srvmount, c);
46
		d = Bopen(name, OREAD);
47
		if(d == nil)
48
			sysfatal("getchildren: %s: %r", name);
49
		free(name);
50
		q = Brdstr(d, '\n', 1);
51
		if(q == nil){
52
			Bterm(d);
53
			continue;
54
		}
55
		addchild(strdup(p), q);
56
		Bterm(d);
57
	}
58
	Bterm(b);
59
}
60
 
61
void
62
doplay(char *onum){
63
	char *name, *p, *q;
64
	Biobuf *b;
65
	int m;
66
 
67
	name = smprint("%s/%s/files", srvmount, onum);
68
	b = Bopen(name, OREAD);
69
	if(b == nil)
70
abort();//		sysfatal("doplay: %s: %r", name);
71
	while(p = Brdline(b, '\n')){
72
		m = Blinelen(b);
73
		assert(p[m-1] == '\n');
74
		p[m-1] = '\0';
75
		q = strchr(p, '	');
76
		if(q == nil)
77
			sysfatal("doplay: %s: format", name);
78
		*q++ = '\0';
79
		sendplaylist(strdup(q), strdup(p));
80
	}
81
	free(name);
82
	Bterm(b);
83
}
84
 
85
void
86
fillbrowsetop(char *onum)
87
{
88
	char *name, *p;
89
	Biobuf *b;
90
	int m;
91
 
92
	name = smprint("%s/%s/parentage", srvmount, onum);
93
	b = Bopen(name, OREAD);
94
	if(b == nil)
95
abort();//		sysfatal("gettopwin: %s: %r", name);
96
	free(name);
97
	while(p = Brdline(b, '\n')){
98
		m = Blinelen(b);
99
		assert(p[m-1] == '\n');
100
		p[m-1] = '\0';
101
		addparent(p);
102
	}
103
	Bterm(b);
104
}
105
 
106
void
107
fillplaytext(char *onum)
108
{
109
	char *name, *p;
110
	Biobuf *b;
111
	int m;
112
 
113
	name = smprint("%s/%s/parentage", srvmount, onum);
114
	b = Bopen(name, OREAD);
115
	if(b == nil)
116
		sysfatal("fillplaytext: %s: %r", name);
117
	free(name);
118
	while(p = Brdline(b, '\n')){
119
		m = Blinelen(b);
120
		assert(p[m-1] == '\n');
121
		p[m-1] = '\0';
122
		addplaytext(p);
123
	}
124
	Bterm(b);
125
}
126
 
127
char *
128
getoneliner(char *onum)
129
{
130
	char *name, *p;
131
	Biobuf *b;
132
 
133
	name = smprint("%s/%s/miniparentage", srvmount, onum);
134
	b = Bopen(name, OREAD);
135
	if(b == nil)
136
		sysfatal("gettopwin: %s: %r", name);
137
	free(name);
138
	p = Brdstr(b, '\n', 1);
139
	Bterm(b);
140
	return p;
141
}
142
 
143
char *
144
getparent(char *onum)
145
{
146
	char *name, *p;
147
	Biobuf *b;
148
 
149
	name = smprint("%s/%s/parent", srvmount, onum);
150
	b = Bopen(name, OREAD);
151
	if(b == nil)
152
abort();//		sysfatal("gettopwin: %s: %r", name);
153
	free(name);
154
	p = Brdstr(b, '\n', 1);
155
	Bterm(b);
156
	return p;
157
}