#include "remote.h"
#endif
-#ifdef HAVE_WALTHAM
-#include <waltham-transmitter/transmitter_api.h>
-#endif
-
static int cached_tm_mday = -1;
static struct weston_log_scope *log_scope;
return -1;
}
-static int
+int
parse_activation_area(const char *geometry, struct ivi_output *output)
{
int n;
}
}
-#ifdef HAVE_WALTHAM
-static int
-load_waltham_plugin(struct ivi_compositor *ivi, struct weston_config *config)
-{
- struct weston_compositor *compositor = ivi->compositor;
- int (*module_init)(struct weston_compositor *wc);
-
- module_init = weston_load_module("waltham-transmitter.so",
- "wet_module_init");
- if (!module_init)
- return -1;
-
- if (module_init(compositor) < 0)
- return -1;
-
- ivi->waltham_transmitter_api = weston_get_transmitter_api(compositor);
- if (!ivi->waltham_transmitter_api) {
- weston_log("Failed to load waltham-transmitter plugin.\n");
- return -1;
- }
-
- weston_log("waltham-transmitter plug-in loaded\n");
- return 0;
-}
-#else
-static int
-load_waltham_plugin(struct ivi_compositor *ivi, struct weston_config *config)
-{
- return -1;
-}
-#endif
-
#ifdef HAVE_REMOTING
static int
drm_backend_remoted_output_configure(struct weston_output *output,
}
}
-static void
-ivi_enable_waltham_outputs(struct ivi_compositor *ivi)
-{
- struct weston_config_section *transmitter_section = NULL;
- const char *sect_name;
- struct weston_config *config = ivi->config;
-
- while (weston_config_next_section(config, &transmitter_section, §_name)) {
- if (strcmp(sect_name, "transmitter-output"))
- continue;
-
- struct ivi_output *ivi_output = NULL;
- bool output_found = false;
- char *_name = NULL;
-
- weston_config_section_get_string(transmitter_section,
- "name", &_name, NULL);
- wl_list_for_each(ivi_output, &ivi->outputs, link) {
- if (!strcmp(ivi_output->name, _name)) {
- output_found = true;
- break;
- }
- }
-
- if (output_found) {
- free(_name);
- continue;
- }
-
- ivi_output = zalloc(sizeof(*ivi_output));
- if (!ivi_output) {
- free(_name);
- continue;
- }
-
- ivi_output->ivi = ivi;
- ivi_output->name = _name;
- ivi_output->config = transmitter_section;
-
- if (remote_output_init(ivi_output, ivi->compositor,
- transmitter_section, ivi->remoting_api)) {
- free(ivi_output->name);
- free(ivi_output);
- continue;
- }
-
- ivi_output->type = OUTPUT_WALTHAM;
- ivi_output->output_destroy.notify = handle_output_destroy;
- weston_output_add_destroy_listener(ivi_output->output,
- &ivi_output->output_destroy);
-
- wl_list_insert(&ivi->outputs, &ivi_output->link);
- ivi_output_configure_app_id(ivi_output);
- }
-}
-
static int
load_remoting_plugin(struct ivi_compositor *ivi, struct weston_config *config)
{
}
load_remoting_plugin(ivi, ivi->config);
- load_waltham_plugin(ivi, ivi->config);
error:
free(config.gbm_format);
snprintf(buffer, sizeof buffer, "%.*s", (int) (end - p), p);
if (strstr(buffer, "xwayland.so")) {
- weston_log("Xwayland plug-in not supported!\n");
- p = end;
- while (*p == ',')
- p++;
- continue;
- }
-
- if (strstr(buffer, "systemd-notify.so")) {
+ *xwayland = true;
+ } else if (strstr(buffer, "systemd-notify.so")) {
weston_log("systemd-notify plug-in already loaded!\n");
- p = end;
- while (*p == ',')
- p++;
- continue;
- }
+ } else {
+ module_init = weston_load_module(buffer, "wet_module_init");
+ if (!module_init)
+ return -1;
- module_init = weston_load_module(buffer, "wet_module_init");
- if (!module_init)
- return -1;
+ if (module_init(ivi->compositor, *argc, argv) < 0)
+ return -1;
- if (module_init(ivi->compositor, *argc, argv) < 0)
- return -1;
+ }
p = end;
while (*p == ',')
return str;
}
+#if !defined(BUILD_XWAYLAND)
+int
+wet_load_xwayland(struct weston_compositor *comp)
+{
+ weston_log("Attempted to load xwayland library but compositor "
+ "was *not* built with xwayland support!\n");
+ return -1;
+}
+#endif
+
static void
weston_log_setup_scopes(struct weston_log_context *log_ctx,
struct weston_log_subscriber *subscriber,
weston_log_subscribe(log_ctx, logger, "log");
}
-
WL_EXPORT
int wet_main(int argc, char *argv[], const struct weston_testsuite_data *test_data)
{
if (load_modules(&ivi, option_modules, &argc, argv, &xwayland) < 0)
goto error_compositor;
- if (ivi_policy_init(&ivi) < 0)
- goto error_compositor;
+ if (!xwayland) {
+ weston_config_section_get_bool(section, "xwayland", &xwayland,
+ false);
+ }
if (ivi_shell_init(&ivi) < 0)
goto error_compositor;
+ if (xwayland) {
+ if (wet_load_xwayland(ivi.compositor) < 0)
+ goto error_compositor;
+ }
+
+ if (ivi_policy_init(&ivi) < 0)
+ goto error_compositor;
+
+
if (list_debug_scopes) {
struct weston_log_scope *nscope = NULL;
if (ivi.remoting_api)
ivi_enable_remote_outputs(&ivi);
- if (ivi.waltham_transmitter_api)
- ivi_enable_waltham_outputs(&ivi);
-
if (create_listening_socket(display, socket_name) < 0)
goto error_compositor;