#include <libweston/windowed-output-api.h>
#include <libweston/config-parser.h>
#include <libweston/weston-log.h>
-#include <weston/weston.h>
+#include <weston.h>
#include "shared/os-compatibility.h"
#include "shared/helpers.h"
goto err;
}
- if (weston_output_enable(ivi_output->output) < 0) {
+ if ((ret = weston_output_enable(ivi_output->output)) < 0) {
weston_log("Enabling remoted output \"%s\" failed.\n",
output_name);
goto err;
return str;
}
+static void
+weston_log_setup_scopes(struct weston_log_context *log_ctx,
+ struct weston_log_subscriber *subscriber,
+ const char *names)
+{
+ assert(log_ctx);
+ assert(subscriber);
+
+ char *tokenize = strdup(names);
+ char *token = strtok(tokenize, ",");
+ while (token) {
+ weston_log_subscribe(log_ctx, subscriber, token);
+ token = strtok(NULL, ",");
+ }
+ free(tokenize);
+}
+
+static void
+weston_log_subscribe_to_scopes(struct weston_log_context *log_ctx,
+ struct weston_log_subscriber *logger,
+ const char *debug_scopes)
+{
+ if (logger && debug_scopes)
+ weston_log_setup_scopes(log_ctx, logger, debug_scopes);
+ else
+ weston_log_subscribe(log_ctx, logger, "log");
+}
+
+
WL_EXPORT
int wet_main(int argc, char *argv[], const struct weston_testsuite_data *test_data)
{
char *log = NULL;
char *modules = NULL;
char *option_modules = NULL;
+ char *debug_scopes = NULL;
int help = 0;
int version = 0;
int no_config = 0;
int debug = 0;
+ bool list_debug_scopes = false;
char *config_file = NULL;
struct weston_log_context *log_ctx = NULL;
struct weston_log_subscriber *logger;
{ WESTON_OPTION_BOOLEAN, "debug", 0, &debug },
{ WESTON_OPTION_STRING, "config", 'c', &config_file },
{ WESTON_OPTION_STRING, "modules", 0, &option_modules },
+ { WESTON_OPTION_STRING, "debug-scopes", 'l', &debug_scopes },
+ { WESTON_OPTION_STRING, "list-debug-scopes", 'L', &list_debug_scopes },
};
wl_list_init(&ivi.outputs);
weston_log_set_handler(vlog, vlog_continue);
logger = weston_log_subscriber_create_log(logfile);
- weston_log_subscribe(log_ctx, logger, "log");
+ weston_log_subscribe_to_scopes(log_ctx, logger, debug_scopes);
weston_log("Command line: %s\n", cmdline);
free(cmdline);
if (ivi_shell_init(&ivi) < 0)
goto error_compositor;
+ if (list_debug_scopes) {
+ struct weston_log_scope *nscope = NULL;
+
+ weston_log("Printing available debug scopes:\n");
+
+ while ((nscope = weston_log_scopes_iterate(ivi.compositor, nscope))) {
+ weston_log("\tscope name: %s, desc: %s",
+ weston_log_scope_get_name(nscope),
+ weston_log_scope_get_description(nscope));
+ }
+
+ weston_log("\n");
+
+ goto error_compositor;
+ }
+
add_bindings(ivi.compositor);
weston_compositor_flush_heads_changed(ivi.compositor);