wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
output_tracker.c File Reference
#include "output_tracker.h"
#include <libbase/libbase.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h>
#include "test.h"
#include "util.h"
Include dependency graph for output_tracker.c:

Classes

struct  _wlmtk_output_tracker_t
 
struct  wlmtk_output_tracker_output_t
 
struct  wlmtk_output_tracker_update_arg
 
struct  _wlmtk_output_tracker_test_state
 

Functions

static void _wlmtk_output_tracker_tree_node_destroy (bs_avltree_node_t *avlnode_ptr)
 
static int _wlmtk_output_tracker_tree_node_cmp (const bs_avltree_node_t *avlnode_ptr, const void *key_ptr)
 
static void _wlmtk_output_tracker_handle_output_layout_change (struct wl_listener *listener_ptr, void *data_ptr)
 
static bool _wlmtk_output_tracker_output_handle_change (struct wl_list *link_ptr, void *ud_ptr)
 
wlmtk_output_tracker_twlmtk_output_tracker_create (struct wlr_output_layout *wlr_output_layout_ptr, void *userdata_ptr, wlmtk_output_tracker_output_create_callback_t create_fn, wlmtk_output_tracker_output_update_callback_t update_fn, wlmtk_output_tracker_output_destroy_callback_t destroy_fn)
 
void wlmtk_output_tracker_destroy (wlmtk_output_tracker_t *tracker_ptr)
 
void * wlmtk_output_tracker_get_output (wlmtk_output_tracker_t *tracker_ptr, struct wlr_output *wlr_output_ptr)
 
struct wlr_output_layout * wlmtk_output_tracker_get_layout (wlmtk_output_tracker_t *tracker_ptr)
 
wlmtk_output_tracker_output_twlmtk_output_tracker_output_create (wlmtk_output_tracker_t *tracker_ptr, struct wlr_output *wlr_output_ptr)
 
static void _wlmtk_output_tracker_test (bs_test_t *test_ptr)
 
static void * _wlmtk_output_tracker_test_create_output (struct wlr_output *wlr_output_ptr, void *ud_ptr)
 
static void _wlmtk_output_tracker_test_update_output (struct wlr_output *wlr_output_ptr, void *ud_ptr, void *output_ptr)
 
static void _wlmtk_output_tracker_test_destroy_output (struct wlr_output *wlr_output_ptr, void *ud_ptr, void *output_ptr)
 

Variables

const bs_test_case_t wlmtk_output_tracker_test_cases []
 

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

◆ _wlmtk_output_tracker_handle_output_layout_change()

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

Output layout changed: Iterate over all outputs.

◆ _wlmtk_output_tracker_output_handle_change()

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

Handles change for one output of the layout: Calls create or update.

◆ _wlmtk_output_tracker_test()

void _wlmtk_output_tracker_test ( bs_test_t *  test_ptr)
static

Tests output tracker.

◆ _wlmtk_output_tracker_test_create_output()

static void * _wlmtk_output_tracker_test_create_output ( struct wlr_output *  wlr_output_ptr,
void *  ud_ptr 
)
static

For tests: Creates a tracked output.

◆ _wlmtk_output_tracker_test_destroy_output()

static void _wlmtk_output_tracker_test_destroy_output ( struct wlr_output *  wlr_output_ptr,
void *  ud_ptr,
void *  output_ptr 
)
static

For tests: Destroys a tracked output.

◆ _wlmtk_output_tracker_test_update_output()

static void _wlmtk_output_tracker_test_update_output ( struct wlr_output *  wlr_output_ptr,
void *  ud_ptr,
void *  output_ptr 
)
static

For tests: Update to a tracked output.

◆ _wlmtk_output_tracker_tree_node_cmp()

int _wlmtk_output_tracker_tree_node_cmp ( const bs_avltree_node_t *  avlnode_ptr,
const void *  key_ptr 
)
static

◆ _wlmtk_output_tracker_tree_node_destroy()

void _wlmtk_output_tracker_tree_node_destroy ( bs_avltree_node_t *  avlnode_ptr)
static

Destroys the tracker state for an output, by the tree node.

◆ wlmtk_output_tracker_create()

wlmtk_output_tracker_t * wlmtk_output_tracker_create ( struct wlr_output_layout *  wlr_output_layout_ptr,
void *  userdata_ptr,
wlmtk_output_tracker_output_create_callback_t  create_fn,
wlmtk_output_tracker_output_update_callback_t  update_fn,
wlmtk_output_tracker_output_destroy_callback_t  destroy_fn 
)

Creates an output tracker.

Parameters
wlr_output_layout_ptr
userdata_ptrWill be passed to the callbacks below.
create_fn
update_fn
destroy_fn
Returns
A tracker handle, or NULL on error.

◆ wlmtk_output_tracker_destroy()

void wlmtk_output_tracker_destroy ( wlmtk_output_tracker_t tracker_ptr)

Destroys the output tracker.

wlmtk_output_tracker_output_destroy_callback_t will be called for any yet-remaining output.

Parameters
tracker_ptr

◆ wlmtk_output_tracker_get_layout()

struct wlr_output_layout * wlmtk_output_tracker_get_layout ( wlmtk_output_tracker_t tracker_ptr)

◆ wlmtk_output_tracker_get_output()

void * wlmtk_output_tracker_get_output ( wlmtk_output_tracker_t tracker_ptr,
struct wlr_output *  wlr_output_ptr 
)

Returns the "created output" for wlr_output_ptr.

Parameters
tracker_ptr
wlr_output_ptr
Returns
Return value of wlmtk_output_tracker_output_create_callback_t that was called for the value of wlr_output_ptr. Or NULL, if wlr_output_ptr is not tracked.

◆ wlmtk_output_tracker_output_create()

wlmtk_output_tracker_output_t * wlmtk_output_tracker_output_create ( wlmtk_output_tracker_t tracker_ptr,
struct wlr_output *  wlr_output_ptr 
)

Creates state for tracking an output.

Variable Documentation

◆ wlmtk_output_tracker_test_cases

const bs_test_case_t wlmtk_output_tracker_test_cases[]
Initial value:
= {
{ 0, NULL, NULL }
}
static void _wlmtk_output_tracker_test(bs_test_t *test_ptr)
Definition output_tracker.c:354

Output tracker unit test.