mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	tools: add getopt argument parsing
Add some help, version, remote options for tools Add option for output filename in pw-profiler Add option to start pw-cli as daemon or not, make it connect to the default PipeWire instance by default (instead of local instance)
This commit is contained in:
		
							parent
							
								
									a1846c9780
								
							
						
					
					
						commit
						646088b90c
					
				
					 4 changed files with 158 additions and 25 deletions
				
			
		| 
						 | 
					@ -29,6 +29,7 @@
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
#include <alloca.h>
 | 
					#include <alloca.h>
 | 
				
			||||||
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <spa/utils/result.h>
 | 
					#include <spa/utils/result.h>
 | 
				
			||||||
#include <spa/debug/pod.h>
 | 
					#include <spa/debug/pod.h>
 | 
				
			||||||
| 
						 | 
					@ -434,7 +435,7 @@ static bool do_connect(struct data *data, const char *cmd, char *args, char **er
 | 
				
			||||||
	struct pw_core *core;
 | 
						struct pw_core *core;
 | 
				
			||||||
	struct remote_data *rd;
 | 
						struct remote_data *rd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	n = pw_split_ip(args, WHITESPACE, 1, a);
 | 
						n = args ? pw_split_ip(args, WHITESPACE, 1, a) : 0;
 | 
				
			||||||
	if (n == 1) {
 | 
						if (n == 1) {
 | 
				
			||||||
		props = pw_properties_new(PW_KEY_REMOTE_NAME, a[0], NULL);
 | 
							props = pw_properties_new(PW_KEY_REMOTE_NAME, a[0], NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -2722,14 +2723,58 @@ static void do_quit(void *data, int signal_number)
 | 
				
			||||||
	pw_main_loop_quit(d->loop);
 | 
						pw_main_loop_quit(d->loop);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void show_help(const char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        fprintf(stdout, "%s [options]\n"
 | 
				
			||||||
 | 
					             "  -h, --help                            Show this help\n"
 | 
				
			||||||
 | 
					             "  -v, --version                         Show version\n"
 | 
				
			||||||
 | 
					             "  -d, --daemon                          Start as daemon (Default false)\n"
 | 
				
			||||||
 | 
					             "  -r, --remote                          Remote daemon name\n",
 | 
				
			||||||
 | 
						     name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[])
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct data data = { 0 };
 | 
						struct data data = { 0 };
 | 
				
			||||||
	struct pw_loop *l;
 | 
						struct pw_loop *l;
 | 
				
			||||||
 | 
						char *opt_remote = NULL;
 | 
				
			||||||
	char *error;
 | 
						char *error;
 | 
				
			||||||
 | 
						bool daemon = false;
 | 
				
			||||||
 | 
						static const struct option long_options[] = {
 | 
				
			||||||
 | 
							{"help",	0, NULL, 'h'},
 | 
				
			||||||
 | 
							{"version",	0, NULL, 'v'},
 | 
				
			||||||
 | 
							{"daemon",	0, NULL, 'd'},
 | 
				
			||||||
 | 
							{"remote",	1, NULL, 'r'},
 | 
				
			||||||
 | 
							{NULL,		0, NULL, 0}
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						int c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_init(&argc, &argv);
 | 
						pw_init(&argc, &argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while ((c = getopt_long(argc, argv, "hvdr:", long_options, NULL)) != -1) {
 | 
				
			||||||
 | 
							switch (c) {
 | 
				
			||||||
 | 
							case 'h':
 | 
				
			||||||
 | 
								show_help(argv[0]);
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'v':
 | 
				
			||||||
 | 
								fprintf(stdout, "%s\n"
 | 
				
			||||||
 | 
									"Compiled with libpipewire %s\n"
 | 
				
			||||||
 | 
									"Linked with libpipewire %s\n",
 | 
				
			||||||
 | 
									argv[0],
 | 
				
			||||||
 | 
									pw_get_headers_version(),
 | 
				
			||||||
 | 
									pw_get_library_version());
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'd':
 | 
				
			||||||
 | 
								daemon = true;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case 'r':
 | 
				
			||||||
 | 
								opt_remote = optarg;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								return -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.loop = pw_main_loop_new(NULL);
 | 
						data.loop = pw_main_loop_new(NULL);
 | 
				
			||||||
	l = pw_main_loop_get_loop(data.loop);
 | 
						l = pw_main_loop_get_loop(data.loop);
 | 
				
			||||||
	pw_loop_add_signal(l, SIGINT, do_quit, &data);
 | 
						pw_loop_add_signal(l, SIGINT, do_quit, &data);
 | 
				
			||||||
| 
						 | 
					@ -2738,7 +2783,11 @@ int main(int argc, char *argv[])
 | 
				
			||||||
	spa_list_init(&data.remotes);
 | 
						spa_list_init(&data.remotes);
 | 
				
			||||||
	pw_map_init(&data.vars, 64, 16);
 | 
						pw_map_init(&data.vars, 64, 16);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.context = pw_context_new(l, pw_properties_new(PW_KEY_CORE_DAEMON, "true", NULL), 0);
 | 
						data.context = pw_context_new(l,
 | 
				
			||||||
 | 
								pw_properties_new(
 | 
				
			||||||
 | 
									PW_KEY_CORE_DAEMON, daemon ? "true" : NULL,
 | 
				
			||||||
 | 
									NULL),
 | 
				
			||||||
 | 
								0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_context_load_module(data.context, "libpipewire-module-link-factory", NULL, NULL);
 | 
						pw_context_load_module(data.context, "libpipewire-module-link-factory", NULL, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2747,7 +2796,7 @@ int main(int argc, char *argv[])
 | 
				
			||||||
	fprintf(stdout, "Welcome to PipeWire version %s. Type 'help' for usage.\n",
 | 
						fprintf(stdout, "Welcome to PipeWire version %s. Type 'help' for usage.\n",
 | 
				
			||||||
			pw_get_library_version());
 | 
								pw_get_library_version());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	do_connect(&data, "connect", "internal", &error);
 | 
						do_connect(&data, "connect", opt_remote, &error);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_main_loop_run(data.loop);
 | 
						pw_main_loop_run(data.loop);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -761,8 +761,7 @@ int main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct data data = { 0 };
 | 
						struct data data = { 0 };
 | 
				
			||||||
	struct pw_loop *l;
 | 
						struct pw_loop *l;
 | 
				
			||||||
	struct pw_properties *props = NULL;
 | 
						const char *opt_remote = NULL;
 | 
				
			||||||
	const char *remote_name = NULL;
 | 
					 | 
				
			||||||
	const char *dot_path = DEFAULT_DOT_PATH;
 | 
						const char *dot_path = DEFAULT_DOT_PATH;
 | 
				
			||||||
	static const struct option long_options[] = {
 | 
						static const struct option long_options[] = {
 | 
				
			||||||
		{"help",	0, NULL, 'h'},
 | 
							{"help",	0, NULL, 'h'},
 | 
				
			||||||
| 
						 | 
					@ -804,8 +803,8 @@ int main(int argc, char *argv[])
 | 
				
			||||||
			fprintf(stdout, "detail option enabled\n");
 | 
								fprintf(stdout, "detail option enabled\n");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 'r' :
 | 
							case 'r' :
 | 
				
			||||||
			remote_name = optarg;
 | 
								opt_remote = optarg;
 | 
				
			||||||
			fprintf(stdout, "set remote to %s\n", remote_name);
 | 
								fprintf(stdout, "set remote to %s\n", opt_remote);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 'o' :
 | 
							case 'o' :
 | 
				
			||||||
			dot_path = optarg;
 | 
								dot_path = optarg;
 | 
				
			||||||
| 
						 | 
					@ -828,10 +827,11 @@ int main(int argc, char *argv[])
 | 
				
			||||||
	if (data.context == NULL)
 | 
						if (data.context == NULL)
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (remote_name)
 | 
						data.core = pw_context_connect(data.context,
 | 
				
			||||||
		props = pw_properties_new(PW_KEY_REMOTE_NAME, remote_name, NULL);
 | 
								pw_properties_new(
 | 
				
			||||||
 | 
									PW_KEY_REMOTE_NAME, opt_remote,
 | 
				
			||||||
	data.core = pw_context_connect(data.context, props, 0);
 | 
									NULL),
 | 
				
			||||||
 | 
								0);
 | 
				
			||||||
	if (data.core == NULL)
 | 
						if (data.core == NULL)
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <signal.h>
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <spa/utils/result.h>
 | 
					#include <spa/utils/result.h>
 | 
				
			||||||
#include <spa/debug/pod.h>
 | 
					#include <spa/debug/pod.h>
 | 
				
			||||||
| 
						 | 
					@ -678,14 +679,51 @@ static void do_quit(void *data, int signal_number)
 | 
				
			||||||
	pw_main_loop_quit(d->loop);
 | 
						pw_main_loop_quit(d->loop);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void show_help(const char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        fprintf(stdout, "%s [options]\n"
 | 
				
			||||||
 | 
					             "  -h, --help                            Show this help\n"
 | 
				
			||||||
 | 
					             "  -v, --version                         Show version\n"
 | 
				
			||||||
 | 
					             "  -r, --remote                          Remote daemon name\n",
 | 
				
			||||||
 | 
						     name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[])
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct data data = { 0 };
 | 
						struct data data = { 0 };
 | 
				
			||||||
	struct pw_loop *l;
 | 
						struct pw_loop *l;
 | 
				
			||||||
	struct pw_properties *props = NULL;
 | 
						const char *opt_remote = NULL;
 | 
				
			||||||
 | 
						static const struct option long_options[] = {
 | 
				
			||||||
 | 
							{"help",	0, NULL, 'h'},
 | 
				
			||||||
 | 
							{"version",	0, NULL, 'v'},
 | 
				
			||||||
 | 
							{"remote",	1, NULL, 'r'},
 | 
				
			||||||
 | 
							{NULL,		0, NULL, 0}
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						int c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_init(&argc, &argv);
 | 
						pw_init(&argc, &argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while ((c = getopt_long(argc, argv, "hvr:", long_options, NULL)) != -1) {
 | 
				
			||||||
 | 
							switch (c) {
 | 
				
			||||||
 | 
							case 'h':
 | 
				
			||||||
 | 
								show_help(argv[0]);
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'v':
 | 
				
			||||||
 | 
								fprintf(stdout, "%s\n"
 | 
				
			||||||
 | 
									"Compiled with libpipewire %s\n"
 | 
				
			||||||
 | 
									"Linked with libpipewire %s\n",
 | 
				
			||||||
 | 
									argv[0],
 | 
				
			||||||
 | 
									pw_get_headers_version(),
 | 
				
			||||||
 | 
									pw_get_library_version());
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'r':
 | 
				
			||||||
 | 
								opt_remote = optarg;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								return -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.loop = pw_main_loop_new(NULL);
 | 
						data.loop = pw_main_loop_new(NULL);
 | 
				
			||||||
	if (data.loop == NULL)
 | 
						if (data.loop == NULL)
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
| 
						 | 
					@ -698,12 +736,13 @@ int main(int argc, char *argv[])
 | 
				
			||||||
	if (data.context == NULL)
 | 
						if (data.context == NULL)
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (argc > 1)
 | 
					 | 
				
			||||||
		props = pw_properties_new(PW_KEY_REMOTE_NAME, argv[1], NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	spa_list_init(&data.pending_list);
 | 
						spa_list_init(&data.pending_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.core = pw_context_connect(data.context, props, 0);
 | 
						data.core = pw_context_connect(data.context,
 | 
				
			||||||
 | 
								pw_properties_new(
 | 
				
			||||||
 | 
									PW_KEY_REMOTE_NAME, opt_remote,
 | 
				
			||||||
 | 
									NULL),
 | 
				
			||||||
 | 
								0);
 | 
				
			||||||
	if (data.core == NULL)
 | 
						if (data.core == NULL)
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <signal.h>
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <spa/utils/result.h>
 | 
					#include <spa/utils/result.h>
 | 
				
			||||||
#include <spa/pod/parser.h>
 | 
					#include <spa/pod/parser.h>
 | 
				
			||||||
| 
						 | 
					@ -507,10 +508,10 @@ static void on_core_error(void *_data, uint32_t id, int seq, int res, const char
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_log_error("error id:%u seq:%d res:%d (%s): %s",
 | 
						pw_log_error("error id:%u seq:%d res:%d (%s): %s",
 | 
				
			||||||
			id, seq, res, spa_strerror(res), message);
 | 
								id, seq, res, spa_strerror(res), message);
 | 
				
			||||||
	if (id == 0) {
 | 
					
 | 
				
			||||||
 | 
						if (id == PW_ID_CORE)
 | 
				
			||||||
		pw_main_loop_quit(data->loop);
 | 
							pw_main_loop_quit(data->loop);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void on_core_done(void *_data, uint32_t id, int seq)
 | 
					static void on_core_done(void *_data, uint32_t id, int seq)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -537,14 +538,58 @@ static void do_quit(void *data, int signal_number)
 | 
				
			||||||
	pw_main_loop_quit(d->loop);
 | 
						pw_main_loop_quit(d->loop);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void show_help(const char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        fprintf(stdout, "%s [options]\n"
 | 
				
			||||||
 | 
					             "  -h, --help                            Show this help\n"
 | 
				
			||||||
 | 
					             "  -v, --version                         Show version\n"
 | 
				
			||||||
 | 
					             "  -r, --remote                          Remote daemon name\n"
 | 
				
			||||||
 | 
					             "  -o, --output                          Profiler output name (default \"%s\")\n",
 | 
				
			||||||
 | 
						     name,
 | 
				
			||||||
 | 
						     DEFAULT_FILENAME);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[])
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct data data = { 0 };
 | 
						struct data data = { 0 };
 | 
				
			||||||
	struct pw_loop *l;
 | 
						struct pw_loop *l;
 | 
				
			||||||
	struct pw_properties *props = NULL;
 | 
						const char *opt_remote = NULL;
 | 
				
			||||||
 | 
						const char *opt_output = DEFAULT_FILENAME;
 | 
				
			||||||
 | 
						static const struct option long_options[] = {
 | 
				
			||||||
 | 
							{"help",	0, NULL, 'h'},
 | 
				
			||||||
 | 
							{"version",	0, NULL, 'v'},
 | 
				
			||||||
 | 
							{"remote",	1, NULL, 'r'},
 | 
				
			||||||
 | 
							{"output",	1, NULL, 'o'},
 | 
				
			||||||
 | 
							{NULL,		0, NULL, 0}
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						int c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_init(&argc, &argv);
 | 
						pw_init(&argc, &argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while ((c = getopt_long(argc, argv, "hvr:o:", long_options, NULL)) != -1) {
 | 
				
			||||||
 | 
							switch (c) {
 | 
				
			||||||
 | 
							case 'h':
 | 
				
			||||||
 | 
								show_help(argv[0]);
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'v':
 | 
				
			||||||
 | 
								fprintf(stdout, "%s\n"
 | 
				
			||||||
 | 
									"Compiled with libpipewire %s\n"
 | 
				
			||||||
 | 
									"Linked with libpipewire %s\n",
 | 
				
			||||||
 | 
									argv[0],
 | 
				
			||||||
 | 
									pw_get_headers_version(),
 | 
				
			||||||
 | 
									pw_get_library_version());
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
 | 
							case 'o':
 | 
				
			||||||
 | 
								opt_output = optarg;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case 'r':
 | 
				
			||||||
 | 
								opt_remote = optarg;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								return -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.loop = pw_main_loop_new(NULL);
 | 
						data.loop = pw_main_loop_new(NULL);
 | 
				
			||||||
	if (data.loop == NULL) {
 | 
						if (data.loop == NULL) {
 | 
				
			||||||
		fprintf(stderr, "Can't create data loop: %m");
 | 
							fprintf(stderr, "Can't create data loop: %m");
 | 
				
			||||||
| 
						 | 
					@ -563,16 +608,17 @@ int main(int argc, char *argv[])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_context_load_module(data.context, PW_EXTENSION_MODULE_PROFILER, NULL, NULL);
 | 
						pw_context_load_module(data.context, PW_EXTENSION_MODULE_PROFILER, NULL, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (argc > 1)
 | 
						data.core = pw_context_connect(data.context,
 | 
				
			||||||
		props = pw_properties_new(PW_KEY_REMOTE_NAME, argv[1], NULL);
 | 
								pw_properties_new(
 | 
				
			||||||
 | 
									PW_KEY_REMOTE_NAME, opt_remote,
 | 
				
			||||||
	data.core = pw_context_connect(data.context, props, 0);
 | 
									NULL),
 | 
				
			||||||
 | 
								0);
 | 
				
			||||||
	if (data.core == NULL) {
 | 
						if (data.core == NULL) {
 | 
				
			||||||
		fprintf(stderr, "Can't connect: %m");
 | 
							fprintf(stderr, "Can't connect: %m");
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.filename = DEFAULT_FILENAME;
 | 
						data.filename = opt_output;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	data.output = fopen(data.filename, "w");
 | 
						data.output = fopen(data.filename, "w");
 | 
				
			||||||
	if (data.output == NULL) {
 | 
						if (data.output == NULL) {
 | 
				
			||||||
| 
						 | 
					@ -591,7 +637,6 @@ int main(int argc, char *argv[])
 | 
				
			||||||
				       &data.registry_listener,
 | 
									       &data.registry_listener,
 | 
				
			||||||
				       ®istry_events, &data);
 | 
									       ®istry_events, &data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
	data.check_profiler = pw_core_sync(data.core, 0, 0);
 | 
						data.check_profiler = pw_core_sync(data.core, 0, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_main_loop_run(data.loop);
 | 
						pw_main_loop_run(data.loop);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue