Commit | Line | Data |
---|---|---|
7788b7c7 RK |
1 | /* |
2 | * This file is part of DisOrder. | |
3 | * Copyright (C) 2010 Richard Kettlewell | |
4 | * | |
5 | * This program is free software: you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License as published by | |
7 | * the Free Software Foundation, either version 3 of the License, or | |
8 | * (at your option) any later version. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License | |
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | */ | |
18 | ||
19 | int disorder_adopt(disorder_client *c, const char *id) { | |
20 | return disorder_simple(c, 0, "adopt", id, (char *)0); | |
21 | } | |
22 | ||
23 | int disorder_adduser(disorder_client *c, const char *user, const char *password, const char *rights) { | |
24 | return disorder_simple(c, 0, "adduser", user, password, rights, (char *)0); | |
25 | } | |
26 | ||
3680ef53 RK |
27 | int disorder_allfiles(disorder_client *c, const char *dir, const char *re, char ***filesp, int *nfilesp) { |
28 | return disorder_simple_list(c, filesp, nfilesp, "allfiles", dir, re, (char *)0); | |
29 | } | |
30 | ||
7788b7c7 RK |
31 | int disorder_confirm(disorder_client *c, const char *confirmation) { |
32 | char *u; | |
33 | int rc; | |
34 | if((rc = disorder_simple(c, &u, "confirm", confirmation ))) | |
35 | return rc; | |
36 | c->user = u; | |
37 | return 0; | |
38 | } | |
39 | ||
40 | int disorder_cookie(disorder_client *c, const char *cookie) { | |
41 | char *u; | |
42 | int rc; | |
43 | if((rc = disorder_simple(c, &u, "cookie", cookie ))) | |
44 | return rc; | |
45 | c->user = u; | |
46 | return 0; | |
47 | } | |
48 | ||
49 | int disorder_deluser(disorder_client *c, const char *user) { | |
50 | return disorder_simple(c, 0, "deluser", user, (char *)0); | |
51 | } | |
52 | ||
3680ef53 RK |
53 | int disorder_dirs(disorder_client *c, const char *dir, const char *re, char ***filesp, int *nfilesp) { |
54 | return disorder_simple_list(c, filesp, nfilesp, "dirs", dir, re, (char *)0); | |
55 | } | |
56 | ||
7788b7c7 RK |
57 | int disorder_disable(disorder_client *c) { |
58 | return disorder_simple(c, 0, "disable", (char *)0); | |
59 | } | |
60 | ||
61 | int disorder_edituser(disorder_client *c, const char *username, const char *property, const char *value) { | |
62 | return disorder_simple(c, 0, "edituser", username, property, value, (char *)0); | |
63 | } | |
64 | ||
65 | int disorder_enable(disorder_client *c) { | |
66 | return disorder_simple(c, 0, "enable", (char *)0); | |
67 | } | |
68 | ||
69 | int disorder_enabled(disorder_client *c, int *enabledp) { | |
70 | char *v; | |
71 | int rc; | |
72 | if((rc = disorder_simple(c, &v, "enabled", (char *)0))) | |
73 | return rc; | |
74 | return boolean("enabled", v, enabledp); | |
75 | } | |
76 | ||
77 | int disorder_exists(disorder_client *c, const char *track, int *existsp) { | |
78 | char *v; | |
79 | int rc; | |
80 | if((rc = disorder_simple(c, &v, "exists", track, (char *)0))) | |
81 | return rc; | |
82 | return boolean("exists", v, existsp); | |
83 | } | |
84 | ||
3680ef53 RK |
85 | int disorder_files(disorder_client *c, const char *dir, const char *re, char ***filesp, int *nfilesp) { |
86 | return disorder_simple_list(c, filesp, nfilesp, "files", dir, re, (char *)0); | |
87 | } | |
88 | ||
7788b7c7 RK |
89 | int disorder_get(disorder_client *c, const char *track, const char *pref, char **valuep) { |
90 | return dequote(disorder_simple(c, valuep, "get", track, pref, (char *)0), valuep); | |
91 | } | |
92 | ||
93 | int disorder_get_global(disorder_client *c, const char *pref, char **valuep) { | |
94 | return dequote(disorder_simple(c, valuep, "get-global", pref, (char *)0), valuep); | |
95 | } | |
96 | ||
711a4497 RK |
97 | int disorder_length(disorder_client *c, const char *track, long *lengthp) { |
98 | char *v; | |
99 | int rc; | |
100 | ||
101 | if((rc = disorder_simple(c, &v, "length", track, (char *)0))) | |
102 | return rc; | |
103 | *lengthp = atol(v); | |
104 | xfree(v); | |
105 | return 0; | |
106 | } | |
107 | ||
7788b7c7 RK |
108 | int disorder_make_cookie(disorder_client *c, char **cookiep) { |
109 | return dequote(disorder_simple(c, cookiep, "make-cookie", (char *)0), cookiep); | |
110 | } | |
111 | ||
0bc1d67c RK |
112 | int disorder_move(disorder_client *c, const char *track, long delta) { |
113 | char buf_delta[16]; | |
114 | byte_snprintf(buf_delta, sizeof buf_delta, "%ld", delta); | |
115 | return disorder_simple(c, 0, "move", track, buf_delta, (char *)0); | |
116 | } | |
117 | ||
118 | int disorder_moveafter(disorder_client *c, const char *target, char **ids, int nids) { | |
119 | return disorder_simple(c, 0, "moveafter", target, disorder_list, ids, nids, (char *)0); | |
120 | } | |
121 | ||
7788b7c7 RK |
122 | int disorder_nop(disorder_client *c) { |
123 | return disorder_simple(c, 0, "nop", (char *)0); | |
124 | } | |
125 | ||
126 | int disorder_part(disorder_client *c, const char *track, const char *context, const char *part, char **partp) { | |
127 | return dequote(disorder_simple(c, partp, "part", track, context, part, (char *)0), partp); | |
128 | } | |
129 | ||
130 | int disorder_pause(disorder_client *c) { | |
131 | return disorder_simple(c, 0, "pause", (char *)0); | |
132 | } | |
133 | ||
00861dcb RK |
134 | int disorder_play(disorder_client *c, const char *track, char **idp) { |
135 | return dequote(disorder_simple(c, idp, "play", track, (char *)0), idp); | |
136 | } | |
137 | ||
0bc1d67c RK |
138 | int disorder_playafter(disorder_client *c, const char *target, char **tracks, int ntracks) { |
139 | return disorder_simple(c, 0, "playafter", target, disorder_list, tracks, ntracks, (char *)0); | |
140 | } | |
141 | ||
7788b7c7 RK |
142 | int disorder_playlist_delete(disorder_client *c, const char *playlist) { |
143 | return disorder_simple(c, 0, "playlist-delete", playlist, (char *)0); | |
144 | } | |
145 | ||
3680ef53 RK |
146 | int disorder_playlist_get(disorder_client *c, const char *playlist, char ***tracksp, int *ntracksp) { |
147 | return disorder_simple_list(c, tracksp, ntracksp, "playlist-get", playlist, (char *)0); | |
7788b7c7 RK |
148 | } |
149 | ||
150 | int disorder_playlist_get_share(disorder_client *c, const char *playlist, char **sharep) { | |
151 | return dequote(disorder_simple(c, sharep, "playlist-get-share", playlist, (char *)0), sharep); | |
152 | } | |
153 | ||
3680ef53 RK |
154 | int disorder_playlist_lock(disorder_client *c, const char *playlist) { |
155 | return disorder_simple(c, 0, "playlist-lock", playlist, (char *)0); | |
156 | } | |
157 | ||
08af2413 RK |
158 | int disorder_playlist_set(disorder_client *c, const char *playlist, char **tracks, int ntracks) { |
159 | return disorder_simple(c, 0, "playlist-set", playlist, disorder_body, tracks, ntracks, (char *)0); | |
160 | } | |
161 | ||
7788b7c7 RK |
162 | int disorder_playlist_set_share(disorder_client *c, const char *playlist, const char *share) { |
163 | return disorder_simple(c, 0, "playlist-set-share", playlist, share, (char *)0); | |
164 | } | |
165 | ||
166 | int disorder_playlist_unlock(disorder_client *c) { | |
167 | return disorder_simple(c, 0, "playlist-unlock", (char *)0); | |
168 | } | |
169 | ||
3680ef53 RK |
170 | int disorder_playlists(disorder_client *c, char ***playlistsp, int *nplaylistsp) { |
171 | return disorder_simple_list(c, playlistsp, nplaylistsp, "playlists", (char *)0); | |
172 | } | |
173 | ||
08af2413 RK |
174 | int disorder_queue(disorder_client *c, struct queue_entry **queuep) { |
175 | return disorder_somequeue(c, "queue", queuep); | |
176 | } | |
177 | ||
7788b7c7 RK |
178 | int disorder_random_disable(disorder_client *c) { |
179 | return disorder_simple(c, 0, "random-disable", (char *)0); | |
180 | } | |
181 | ||
182 | int disorder_random_enable(disorder_client *c) { | |
183 | return disorder_simple(c, 0, "random-enable", (char *)0); | |
184 | } | |
185 | ||
186 | int disorder_random_enabled(disorder_client *c, int *enabledp) { | |
187 | char *v; | |
188 | int rc; | |
189 | if((rc = disorder_simple(c, &v, "random-enabled", (char *)0))) | |
190 | return rc; | |
191 | return boolean("random-enabled", v, enabledp); | |
192 | } | |
193 | ||
08af2413 RK |
194 | int disorder_recent(disorder_client *c, struct queue_entry **recentp) { |
195 | return disorder_somequeue(c, "recent", recentp); | |
196 | } | |
197 | ||
7788b7c7 RK |
198 | int disorder_reconfigure(disorder_client *c) { |
199 | return disorder_simple(c, 0, "reconfigure", (char *)0); | |
200 | } | |
201 | ||
202 | int disorder_register(disorder_client *c, const char *username, const char *password, const char *email, char **confirmationp) { | |
203 | return dequote(disorder_simple(c, confirmationp, "register", username, password, email, (char *)0), confirmationp); | |
204 | } | |
205 | ||
206 | int disorder_reminder(disorder_client *c, const char *username) { | |
207 | return disorder_simple(c, 0, "reminder", username, (char *)0); | |
208 | } | |
209 | ||
210 | int disorder_remove(disorder_client *c, const char *id) { | |
211 | return disorder_simple(c, 0, "remove", id, (char *)0); | |
212 | } | |
213 | ||
214 | int disorder_rescan(disorder_client *c) { | |
215 | return disorder_simple(c, 0, "rescan", (char *)0); | |
216 | } | |
217 | ||
218 | int disorder_resolve(disorder_client *c, const char *track, char **resolvedp) { | |
219 | return dequote(disorder_simple(c, resolvedp, "resolve", track, (char *)0), resolvedp); | |
220 | } | |
221 | ||
222 | int disorder_resume(disorder_client *c) { | |
223 | return disorder_simple(c, 0, "resume", (char *)0); | |
224 | } | |
225 | ||
226 | int disorder_revoke(disorder_client *c) { | |
227 | return disorder_simple(c, 0, "revoke", (char *)0); | |
228 | } | |
229 | ||
230 | int disorder_scratch(disorder_client *c, const char *id) { | |
231 | return disorder_simple(c, 0, "scratch", id, (char *)0); | |
232 | } | |
233 | ||
234 | int disorder_schedule_del(disorder_client *c, const char *event) { | |
235 | return disorder_simple(c, 0, "schedule-del", event, (char *)0); | |
236 | } | |
237 | ||
3680ef53 RK |
238 | int disorder_schedule_list(disorder_client *c, char ***idsp, int *nidsp) { |
239 | return disorder_simple_list(c, idsp, nidsp, "schedule-list", (char *)0); | |
240 | } | |
241 | ||
242 | int disorder_search(disorder_client *c, const char *terms, char ***tracksp, int *ntracksp) { | |
243 | return disorder_simple_list(c, tracksp, ntracksp, "search", terms, (char *)0); | |
244 | } | |
245 | ||
7788b7c7 RK |
246 | int disorder_set(disorder_client *c, const char *track, const char *pref, const char *value) { |
247 | return disorder_simple(c, 0, "set", track, pref, value, (char *)0); | |
248 | } | |
249 | ||
250 | int disorder_set_global(disorder_client *c, const char *pref, const char *value) { | |
251 | return disorder_simple(c, 0, "set-global", pref, value, (char *)0); | |
252 | } | |
253 | ||
eea34c08 RK |
254 | int disorder_shutdown(disorder_client *c) { |
255 | return disorder_simple(c, 0, "shutdown", (char *)0); | |
256 | } | |
257 | ||
3680ef53 RK |
258 | int disorder_stats(disorder_client *c, char ***statsp, int *nstatsp) { |
259 | return disorder_simple_list(c, statsp, nstatsp, "stats", (char *)0); | |
260 | } | |
261 | ||
262 | int disorder_tags(disorder_client *c, char ***tagsp, int *ntagsp) { | |
263 | return disorder_simple_list(c, tagsp, ntagsp, "tags", (char *)0); | |
264 | } | |
265 | ||
7788b7c7 RK |
266 | int disorder_unset(disorder_client *c, const char *track, const char *pref) { |
267 | return disorder_simple(c, 0, "unset", track, pref, (char *)0); | |
268 | } | |
269 | ||
270 | int disorder_unset_global(disorder_client *c, const char *pref) { | |
271 | return disorder_simple(c, 0, "unset-global", pref, (char *)0); | |
272 | } | |
273 | ||
274 | int disorder_userinfo(disorder_client *c, const char *username, const char *property, char **valuep) { | |
275 | return dequote(disorder_simple(c, valuep, "userinfo", username, property, (char *)0), valuep); | |
276 | } | |
277 | ||
3680ef53 RK |
278 | int disorder_users(disorder_client *c, char ***usersp, int *nusersp) { |
279 | return disorder_simple_list(c, usersp, nusersp, "users", (char *)0); | |
280 | } | |
281 | ||
7788b7c7 RK |
282 | int disorder_version(disorder_client *c, char **versionp) { |
283 | return dequote(disorder_simple(c, versionp, "version", (char *)0), versionp); | |
284 | } | |
285 |