-/*
- * Copyright (C) 2005 Andre Noll <maan@tuebingen.mpg.de>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2005 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
/** \file audiod_command.c Commands for para_audiod. */
#include "audiod.lsg.h"
#include "para.h"
+#include "lsu.h"
#include "audiod_cmd.lsg.h"
#include "list.h"
#include "sched.h"
static int num_clients;
/** The list of all status items used by para_{server,audiod,gui}. */
-const char *status_item_list[] = {STATUS_ITEM_ARRAY};
+const char *status_item_list[] = {STATUS_ITEMS};
static void dump_stat_client_list(void)
{
return para_strdup(status);
}
-static int dump_commands(int fd)
-{
- char *buf = para_strdup(""), *tmp = NULL;
- int i;
- ssize_t ret;
- const struct lls_command *cmd;
-
- for (i = 1; (cmd = lls_cmd(i, audiod_cmd_suite)); i++) {
- tmp = make_message("%s%s\t%s\n", buf, lls_command_name(cmd),
- lls_purpose(cmd));
- free(buf);
- buf = tmp;
- }
- ret = client_write(fd, buf);
- free(buf);
- return ret;
-}
-
static int com_help(int fd, struct lls_parse_result *lpr)
{
+ char *buf;
int ret;
- char *buf, *errctx;
- const struct lls_command *cmd;
+ const struct lls_opt_result *r =
+ lls_opt_result(LSG_AUDIOD_CMD_HELP_OPT_LONG, lpr);
+ bool long_help = lls_opt_given(r);
- ret = lls(lls_check_arg_count(lpr, 0, 1, &errctx));
- if (ret < 0) {
- if (errctx) {
- buf = make_message("%s\n", errctx);
- client_write(fd, buf);
- free(buf);
- free(errctx);
- }
- return ret;
- }
- if (lls_num_inputs(lpr) == 0)
- return dump_commands(fd);
- ret = lls(lls_lookup_subcmd(lls_input(0, lpr), audiod_cmd_suite,
- &errctx));
- if (ret < 0) {
- buf = make_message("%s: %s\nAvailable commands:\n", errctx?
- errctx : lls_input(0, lpr), para_strerror(-ret));
- if (client_write(fd, buf) >= 0)
- dump_commands(fd);
- free(errctx);
- free(buf);
- goto out;
- }
- cmd = lls_cmd(ret, audiod_cmd_suite);
- buf = lls_long_help(cmd);
- assert(buf);
+ lsu_com_help(long_help, lpr, audiod_cmd_suite, NULL, &buf, NULL);
ret = client_write(fd, buf);
free(buf);
-out:
return ret < 0? ret : 0;
}
EXPORT_AUDIOD_CMD_HANDLER(help)
{
char *old, *new;
- old = stat_item_values[SI_PLAY_TIME];
+ old = stat_item_values[SI_play_time];
new = get_time_string();
if (new) {
if (force || !old || strcmp(old, new)) {
free(old);
- stat_item_values[SI_PLAY_TIME] = new;
- stat_client_write_item(SI_PLAY_TIME);
+ stat_item_values[SI_play_time] = new;
+ stat_client_write_item(SI_play_time);
} else
free(new);
}
new = daemon_get_uptime_str(now);
- old = stat_item_values[SI_AUDIOD_UPTIME];
+ old = stat_item_values[SI_audiod_uptime];
if (force || !old || strcmp(old, new)) {
free(old);
- stat_item_values[SI_AUDIOD_UPTIME] = new;
- stat_client_write_item(SI_AUDIOD_UPTIME);
+ stat_item_values[SI_audiod_uptime] = new;
+ stat_client_write_item(SI_audiod_uptime);
} else
free(new);
- old = stat_item_values[SI_AUDIOD_STATUS];
+ old = stat_item_values[SI_audiod_status];
new = audiod_status_string();
if (force || !old || strcmp(old, new)) {
free(old);
- stat_item_values[SI_AUDIOD_STATUS] = new;
- stat_client_write_item(SI_AUDIOD_STATUS);
+ stat_item_values[SI_audiod_status] = new;
+ stat_client_write_item(SI_audiod_status);
} else
free(new);
- old = stat_item_values[SI_DECODER_FLAGS];
+ old = stat_item_values[SI_decoder_flags];
new = audiod_get_decoder_flags();
if (force || !old || strcmp(old, new)) {
free(old);
- stat_item_values[SI_DECODER_FLAGS] = new;
- stat_client_write_item(SI_DECODER_FLAGS);
+ stat_item_values[SI_decoder_flags] = new;
+ stat_client_write_item(SI_decoder_flags);
} else
free(new);
}