No change necessary for the callback as the init command does
not have any options. The only information that must travel from the
command handler to the callback is the set of tables to create. The
corresponding bitmask is passed without serializing the parse result.
#include <arpa/inet.h>
#include <sys/un.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/un.h>
#include <netdb.h>
#include "server.cmdline.h"
#include "para.h"
#include "server.cmdline.h"
#include "para.h"
-int com_init(struct command_context *cc)
+static int com_init(struct command_context *cc, struct lls_parse_result *lpr)
{
int i, j, ret;
uint32_t table_mask = (1 << (NUM_AFS_TABLES + 1)) - 1;
struct osl_object query = {.data = &table_mask,
.size = sizeof(table_mask)};
{
int i, j, ret;
uint32_t table_mask = (1 << (NUM_AFS_TABLES + 1)) - 1;
struct osl_object query = {.data = &table_mask,
.size = sizeof(table_mask)};
+ unsigned num_inputs = lls_num_inputs(lpr);
ret = make_database_dir();
if (ret < 0)
return ret;
ret = make_database_dir();
if (ret < 0)
return ret;
- for (i = 1; i < cc->argc; i++) {
+ for (i = 0; i < num_inputs; i++) {
for (j = 0; j < NUM_AFS_TABLES; j++) {
struct afs_table *t = &afs_tables[j];
for (j = 0; j < NUM_AFS_TABLES; j++) {
struct afs_table *t = &afs_tables[j];
- if (strcmp(cc->argv[i], t->name))
+ if (strcmp(lls_input(i, lpr), t->name))
continue;
table_mask |= (1 << j);
break;
continue;
table_mask |= (1 << j);
break;
return send_callback_request(com_init_callback, &query,
afs_cb_result_handler, cc);
}
return send_callback_request(com_init_callback, &query,
afs_cb_result_handler, cc);
}
+EXPORT_SERVER_CMD_HANDLER(init);
/**
* Flags for the check command.
/**
* Flags for the check command.
SN: list of afs commands
TM: mood lyr img pl
---
SN: list of afs commands
TM: mood lyr img pl
---
-N: init
-P: AFS_READ | AFS_WRITE
-D: Initialize the osl tables for the audio file selector.
-U: init [table_name ...]
-H: When invoked without arguments, this command creates all tables. Otherwise
-H: only the tables given by table_name... are created.
----
N: ls
P: AFS_READ
D: List audio files.
N: ls
P: AFS_READ
D: List audio files.
to the server process has the same effect as running this command.
[/description]
to the server process has the same effect as running this command.
[/description]
+[subcommand init]
+ purpose = initialize the database tables for the audio file selector
+ synopsis = [table_name...]
+ aux_info = AFS_READ | AFS_WRITE
+ [description]
+ When invoked without arguments, this command creates all
+ tables: audio_files, attributes, scores, moods, lyrics, images,
+ playlists. Otherwise only the given tables are created.
+ [/description]
+
[subcommand jmp]
purpose = reposition the current stream
non-opts-name = n
[subcommand jmp]
purpose = reposition the current stream
non-opts-name = n