wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions
output_manager.c File Reference
#include "output_manager.h"
#include <libbase/libbase.h>
#include <stdbool.h>
#include <stdlib.h>
#include <toolkit/toolkit.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
#include <wlr/render/allocator.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_output_management_v1.h>
#include <wlr/types/wlr_xdg_output_v1.h>
#include "output.h"
#include "output_config.h"
Include dependency graph for output_manager.c:

Classes

struct  _wlmbe_output_manager_t
 
struct  _wlmaker_output_manager_config_head_apply_arg_t
 

Functions

static bool _wlmbe_output_manager_update_output_configuration (struct wl_list *link_ptr, void *ud_ptr)
 
static bool _wlmaker_output_manager_config_head_apply (struct wl_list *link_ptr, void *ud_ptr)
 
static bool _wlmbe_output_manager_apply (wlmbe_output_manager_t *output_manager_ptr, struct wlr_output_configuration_v1 *wlr_output_configuration_v1_ptr, bool really)
 
static void _wlmbe_output_manager_handle_wlr_om_destroy (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmbe_output_manager_handle_apply (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmbe_output_manager_handle_test (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmbe_output_manager_handle_xdg_om_destroy (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmbe_output_manager_handle_output_layout_destroy (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmbe_output_manager_handle_output_layout_change (struct wl_listener *listener_ptr, void *data_ptr)
 
wlmbe_output_manager_twlmbe_output_manager_create (struct wl_display *wl_display_ptr, struct wlr_scene *wlr_scene_ptr, struct wlr_output_layout *wlr_output_layout_ptr, struct wlr_backend *wlr_backend_ptr)
 
void wlmbe_output_manager_destroy (wlmbe_output_manager_t *output_manager_ptr)
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ _wlmaker_output_manager_config_head_apply()

static bool _wlmaker_output_manager_config_head_apply ( struct wl_list *  link_ptr,
void *  ud_ptr 
)
static

Applies the heads's output configuration.

Callback for wlmtk_util_wl_list_for_each.

Parameters
link_ptr
ud_ptr
Returns
true if the tests & apply methods succeeded.

◆ _wlmbe_output_manager_apply()

bool _wlmbe_output_manager_apply ( wlmbe_output_manager_t output_manager_ptr,
struct wlr_output_configuration_v1 *  wlr_output_configuration_v1_ptr,
bool  really 
)
static

Tests and applies an output configuration.

Parameters
output_manager_ptr
wlr_output_configuration_v1_ptr
reallyWhether to not just test, but also apply it.
Returns
true on success.

◆ _wlmbe_output_manager_handle_apply()

void _wlmbe_output_manager_handle_apply ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for wlr_output_manager_v1::events.apply. Cleans up.

◆ _wlmbe_output_manager_handle_output_layout_change()

void _wlmbe_output_manager_handle_output_layout_change ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handles layout change events.

◆ _wlmbe_output_manager_handle_output_layout_destroy()

void _wlmbe_output_manager_handle_output_layout_destroy ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

◆ _wlmbe_output_manager_handle_test()

void _wlmbe_output_manager_handle_test ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for wlr_output_manager_v1::events.test.

◆ _wlmbe_output_manager_handle_wlr_om_destroy()

void _wlmbe_output_manager_handle_wlr_om_destroy ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for wlr_output_manager_v1::events.destroy. Detaches.

◆ _wlmbe_output_manager_handle_xdg_om_destroy()

void _wlmbe_output_manager_handle_xdg_om_destroy ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for wlr_xdg_output_manager_v1::events.destroy. Detaches.

◆ _wlmbe_output_manager_update_output_configuration()

bool _wlmbe_output_manager_update_output_configuration ( struct wl_list *  link_ptr,
void *  ud_ptr 
)
static

Iterator for the struct wlr_output_layout_output referenced from struct wlr_output_layout::outputs.

Adds the configuration head for the given output to the provided output configuration.

Parameters
link_ptrstruct wlr_output_layout_output::link.
ud_ptrThe output configuration, a pointer to struct wlr_output_configuration_v1.
Returns
true on success.

◆ wlmbe_output_manager_create()

wlmbe_output_manager_t * wlmbe_output_manager_create ( struct wl_display *  wl_display_ptr,
struct wlr_scene *  wlr_scene_ptr,
struct wlr_output_layout *  wlr_output_layout_ptr,
struct wlr_backend *  wlr_backend_ptr 
)

Instantiates output managers for both wlr-output-management-unstable-v1 and xdg-output-unstable-v1. Both will listen for output changes in wlr_output_layout_ptr and update the respective output configurations is requested so.

Parameters
wl_display_ptr
wlr_scene_ptr
wlr_output_layout_ptr
wlr_backend_ptr
Returns
Handle for the output managers, or NULL on error. Must be destroyed by wlmbe_output_manager_destroy.

◆ wlmbe_output_manager_destroy()

void wlmbe_output_manager_destroy ( wlmbe_output_manager_t output_manager_ptr)

Destroy the output manager, returned from wlmbe_output_manager_create.

Parameters
output_manager_ptr