cli: small cleanups

Add make cli to start the cli
Only print changes once
Notify of changed objects
This commit is contained in:
Wim Taymans 2017-09-18 22:23:18 +02:00
parent 3b0eec4bf8
commit 6af4f08c6e
3 changed files with 29 additions and 6 deletions

View file

@ -7,24 +7,29 @@ install:
clean: clean:
ninja-build -C build clean ninja-build -C build clean
run: run: all
SPA_PLUGIN_DIR=build/spa/plugins \ SPA_PLUGIN_DIR=build/spa/plugins \
PIPEWIRE_MODULE_DIR=build \ PIPEWIRE_MODULE_DIR=build \
PIPEWIRE_CONFIG_FILE=build/src/daemon/pipewire.conf \ PIPEWIRE_CONFIG_FILE=build/src/daemon/pipewire.conf \
build/src/daemon/pipewire build/src/daemon/pipewire
monitor: monitor: all
SPA_PLUGIN_DIR=build/spa/plugins \ SPA_PLUGIN_DIR=build/spa/plugins \
PIPEWIRE_MODULE_DIR=build/src/modules/ \ PIPEWIRE_MODULE_DIR=build/src/modules/ \
build/src/tools/pipewire-monitor build/src/tools/pipewire-monitor
dist: cli: all
SPA_PLUGIN_DIR=build/spa/plugins \
PIPEWIRE_MODULE_DIR=build/src/modules/ \
build/src/tools/pipewire-cli
dist: all
git archive --prefix=pipewire-@VERSION@/ -o pipewire-@VERSION@.tar.gz @TAG@ git archive --prefix=pipewire-@VERSION@/ -o pipewire-@VERSION@.tar.gz @TAG@
rpm: dist rpm: dist
rpmbuild -ta pipewire-@VERSION@.tar.gz rpmbuild -ta pipewire-@VERSION@.tar.gz
publish: publish: all
git branch -D gh-pages 2>/dev/null || true && \ git branch -D gh-pages 2>/dev/null || true && \
git branch -D draft 2>/dev/null || true && \ git branch -D draft 2>/dev/null || true && \
git checkout -b draft && \ git checkout -b draft && \

View file

@ -229,7 +229,7 @@ impl_init(const struct spa_handle_factory *factory,
spa_ringbuffer_init(&this->trace_rb, TRACE_BUFFER); spa_ringbuffer_init(&this->trace_rb, TRACE_BUFFER);
spa_log_info(&this->log, NAME " %p: initialized", this); spa_log_debug(&this->log, NAME " %p: initialized", this);
return SPA_RESULT_OK; return SPA_RESULT_OK;
} }

View file

@ -505,6 +505,7 @@ static void info_core(struct proxy_data *pd)
fprintf(stdout, "%c\tname: \"%s\"\n", MARK_CHANGE(3), info->name); fprintf(stdout, "%c\tname: \"%s\"\n", MARK_CHANGE(3), info->name);
fprintf(stdout, "%c\tcookie: %u\n", MARK_CHANGE(4), info->cookie); fprintf(stdout, "%c\tcookie: %u\n", MARK_CHANGE(4), info->cookie);
print_properties(info->props, MARK_CHANGE(5)); print_properties(info->props, MARK_CHANGE(5));
info->change_mask = 0;
} }
static void info_module(struct proxy_data *pd) static void info_module(struct proxy_data *pd)
@ -516,6 +517,7 @@ static void info_module(struct proxy_data *pd)
fprintf(stdout, "%c\tfilename: \"%s\"\n", MARK_CHANGE(1), info->filename); fprintf(stdout, "%c\tfilename: \"%s\"\n", MARK_CHANGE(1), info->filename);
fprintf(stdout, "%c\targs: \"%s\"\n", MARK_CHANGE(2), info->args); fprintf(stdout, "%c\targs: \"%s\"\n", MARK_CHANGE(2), info->args);
print_properties(info->props, MARK_CHANGE(3)); print_properties(info->props, MARK_CHANGE(3));
info->change_mask = 0;
} }
static void info_node(struct proxy_data *pd) static void info_node(struct proxy_data *pd)
@ -541,6 +543,7 @@ static void info_node(struct proxy_data *pd)
else else
fprintf(stdout, "\n"); fprintf(stdout, "\n");
print_properties(info->props, MARK_CHANGE(6)); print_properties(info->props, MARK_CHANGE(6));
info->change_mask = 0;
} }
static void info_factory(struct proxy_data *pd) static void info_factory(struct proxy_data *pd)
@ -552,6 +555,7 @@ static void info_factory(struct proxy_data *pd)
fprintf(stdout, "\tname: \"%s\"\n", info->name); fprintf(stdout, "\tname: \"%s\"\n", info->name);
fprintf(stdout, "\tobject-type: %s/%d\n", spa_type_map_get_type(t->map, info->type), info->version); fprintf(stdout, "\tobject-type: %s/%d\n", spa_type_map_get_type(t->map, info->type), info->version);
print_properties(info->props, MARK_CHANGE(0)); print_properties(info->props, MARK_CHANGE(0));
info->change_mask = 0;
} }
static void info_client(struct proxy_data *pd) static void info_client(struct proxy_data *pd)
@ -560,6 +564,7 @@ static void info_client(struct proxy_data *pd)
info_global(pd); info_global(pd);
print_properties(info->props, MARK_CHANGE(0)); print_properties(info->props, MARK_CHANGE(0));
info->change_mask = 0;
} }
static void info_link(struct proxy_data *pd) static void info_link(struct proxy_data *pd)
@ -577,6 +582,7 @@ static void info_link(struct proxy_data *pd)
else else
fprintf(stdout, "\t\tnone\n"); fprintf(stdout, "\t\tnone\n");
print_properties(info->props, MARK_CHANGE(3)); print_properties(info->props, MARK_CHANGE(3));
info->change_mask = 0;
} }
@ -584,6 +590,8 @@ static void core_event_info(void *object, struct pw_core_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d core %d changed\n", rd->id, info->id);
pd->info = pw_core_info_update(pd->info, info); pd->info = pw_core_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -603,6 +611,8 @@ static void module_event_info(void *object, struct pw_module_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d module %d changed\n", rd->id, info->id);
pd->info = pw_module_info_update(pd->info, info); pd->info = pw_module_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -621,6 +631,8 @@ static void node_event_info(void *object, struct pw_node_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d node %d changed\n", rd->id, info->id);
pd->info = pw_node_info_update(pd->info, info); pd->info = pw_node_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -639,6 +651,8 @@ static void factory_event_info(void *object, struct pw_factory_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d factory %d changed\n", rd->id, info->id);
pd->info = pw_factory_info_update(pd->info, info); pd->info = pw_factory_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -657,6 +671,8 @@ static void client_event_info(void *object, struct pw_client_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d client %d changed\n", rd->id, info->id);
pd->info = pw_client_info_update(pd->info, info); pd->info = pw_client_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -675,6 +691,8 @@ static void link_event_info(void *object, struct pw_link_info *info)
{ {
struct proxy_data *pd = object; struct proxy_data *pd = object;
struct remote_data *rd = pd->rd; struct remote_data *rd = pd->rd;
if (pd->info)
fprintf(stdout, "remote $%d link %d changed\n", rd->id, info->id);
pd->info = pw_link_info_update(pd->info, info); pd->info = pw_link_info_update(pd->info, info);
if (pd->global == NULL) if (pd->global == NULL)
pd->global = pw_map_lookup(&rd->globals, info->id); pd->global = pw_map_lookup(&rd->globals, info->id);
@ -991,7 +1009,7 @@ static bool parse(struct data *data, char *buf, size_t size, char **error)
return command_list[i].func(data, cmd, args, error); return command_list[i].func(data, cmd, args, error);
} }
} }
asprintf(error, "Command \"%s\" does not exist", cmd); asprintf(error, "Command \"%s\" does not exist. Type 'help' for usage.", cmd);
return false; return false;
} }