static void logentry_playlist_created(disorder_eclient *c, int nvec, char **vec);
static void logentry_playlist_deleted(disorder_eclient *c, int nvec, char **vec);
static void logentry_playlist_modified(disorder_eclient *c, int nvec, char **vec);
+static void logentry_global_pref(disorder_eclient *c, int nvec, char **vec);
/* Tables ********************************************************************/
LE(adopted, 2, 2),
LE(completed, 1, 1),
LE(failed, 2, 2),
+ LE(global_pref, 1, 2),
LE(moved, 1, 1),
LE(playing, 1, 2),
LE(playlist_created, 2, 2),
&& line[1] >= '0' && line[1] <= '9'
&& line[2] >= '0' && line[2] <= '9'
&& line[3] == ' '))
- fatal(0, "invalid response from server: %s", line);
+ disorder_fatal(0, "invalid response from server: %s", line);
c->rc = (line[0] * 10 + line[1]) * 10 + line[2] - 111 * '0';
c->line = line;
switch(c->rc % 10) {
= (disorder_eclient_string_response *)op->completed;
D(("string_response_callback"));
- if(c->rc / 100 == 2 || c->rc == 555) {
- if(op->completed) {
+ if(completed) {
+ if(c->rc / 100 == 2 || c->rc == 555) {
if(c->rc == 555)
completed(op->v, NULL, NULL);
else if(c->protocol >= 2) {
completed(op->v, "error parsing response", NULL);
} else
completed(op->v, NULL, c->line + 4);
- }
- } else
- completed(op->v, errorstring(c), NULL);
+ } else
+ completed(op->v, errorstring(c), NULL);
+ }
}
/* for commands with a simple integer response */
= (disorder_eclient_no_response *)op->completed;
D(("no_response_callback"));
- if(c->rc / 100 == 2)
- completed(op->v, NULL);
- else
- completed(op->v, errorstring(c));
+ if(completed) {
+ if(c->rc / 100 == 2)
+ completed(op->v, NULL);
+ else
+ completed(op->v, errorstring(c));
+ }
}
/* error callback for queue_unmarshall */
"nop", (char *)0);
}
+int disorder_eclient_get_global(disorder_eclient *c,
+ disorder_eclient_string_response *completed,
+ const char *pref,
+ void *v) {
+ return simple(c, string_response_opcallback, (void (*)())completed, v,
+ "get-global", pref, (char *)0);
+}
+
+int disorder_eclient_set_global(disorder_eclient *c,
+ disorder_eclient_no_response *completed,
+ const char *pref,
+ const char *value,
+ void *v) {
+ return simple(c, no_response_opcallback, (void (*)())completed, v,
+ "set-global", pref, value, (char *)0);
+}
+
+int disorder_eclient_unset_global(disorder_eclient *c,
+ disorder_eclient_no_response *completed,
+ const char *pref,
+ void *v) {
+ return simple(c, no_response_opcallback, (void (*)())completed, v,
+ "unset-global", pref, (char *)0);
+}
+
/** @brief Get the last @p max added tracks
* @param c Client
* @param completed Called with list
c->log_callbacks->adopted(c->log_v, vec[0], vec[1]);
}
+static void logentry_global_pref(disorder_eclient *c,
+ int nvec, char **vec) {
+ if(c->log_callbacks->global_pref)
+ c->log_callbacks->global_pref(c->log_v, vec[0], nvec > 1 ? vec[1] : 0);
+}
+
/*
Local Variables:
c-basic-offset:2