diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-05-23 13:51:10 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-05-23 13:51:10 +0200 |
| commit | c45004b73bb045328a724d1d860df6d1515af6d4 (patch) | |
| tree | 4ce448eeb947e87f0447e9be20d90151a26421c9 /lib/include/turns-turn-order.h | |
| parent | 14db127b26bc47861b6c41f144fe6e3b4ce283a0 (diff) | |
| download | turns-c45004b73bb045328a724d1d860df6d1515af6d4.tar.xz turns-c45004b73bb045328a724d1d860df6d1515af6d4.zip | |
lib: split out header files
Diffstat (limited to 'lib/include/turns-turn-order.h')
| -rw-r--r-- | lib/include/turns-turn-order.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/lib/include/turns-turn-order.h b/lib/include/turns-turn-order.h new file mode 100644 index 0000000..5e34405 --- /dev/null +++ b/lib/include/turns-turn-order.h @@ -0,0 +1,125 @@ +/* + * SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com> + * SPDX-License-Identifier: LGPL-2.1-only + */ + +#ifndef TURNS_TURN_ORDER_H +#define TURNS_TURN_ORDER_H + +#include "turns-participant.h" + +#include <glib-object.h> +#include <glib.h> + +G_BEGIN_DECLS + +/** + * TurnsTurnOrderSortMode: + * @TURNS_TURN_ORDER_SORT_MODE_DESCENDING: Sort higher priorities before lower ones + * @TURNS_TURN_ORDER_SORT_MODE_ASCENDING: Sort higher priorities after lower ones + * + * Orderings that can be applied to the turn order. + * + * See [property@Turns.TurnOrder.sort-mode] + */ +typedef enum +{ + TURNS_TURN_ORDER_SORT_MODE_DESCENDING, + TURNS_TURN_ORDER_SORT_MODE_ASCENDING, +} TurnsTurnOrderSortMode; + +GType turns_turn_order_sort_mode_get_type(void) G_GNUC_CONST; +#define TURNS_TYPE_TURN_ORDER_SORT_MODE (turns_turn_order_sort_mode_get_type()) + +#define TURNS_TYPE_TURN_ORDER turns_turn_order_get_type() +G_DECLARE_FINAL_TYPE(TurnsTurnOrder, turns_turn_order, TURNS, TURN_ORDER, GObject) + +/** + * TurnsTurnOrder: + * + * Manages the order of turns for a given set of `TurnsParticipant`s. + */ + +/** + * turns_turn_order_new: + * + * Creates a new turn order. + * + * Returns: (transfer full): a new `TurnsTurnOrder`. + */ +G_GNUC_WARN_UNUSED_RESULT +TurnsTurnOrder * turns_turn_order_new(void); + +/** + * turns_turn_order_add: + * @self: a turn order. + * @participant: (transfer full): A participant to be added. + * + * Adds a participant to a turn-order. + */ +void turns_turn_order_add(TurnsTurnOrder * self, TurnsParticipant * participant); + +/** + * turns_turn_order_clear: + * @self: a turn order + * + * Removes all participants from a turn order. + */ +void turns_turn_order_clear(TurnsTurnOrder * self); + +/** + * turns_turn_order_remove_at: + * @self: a turn order + * + * Removes the participant at the given position. + */ +void turns_turn_order_remove_at(TurnsTurnOrder * self, guint position); + +/** + * turns_turn_order_get_empty: (get-property empty): + * @self: a turn order. + * + * Gets whether the turn order is empty. + */ +G_GNUC_WARN_UNUSED_RESULT +gboolean turns_turn_order_get_empty(TurnsTurnOrder const * self); + +/** + * turns_turn_order_get_participant_count: + * @self: a turn order. + * + * Gets the number of participants in the turn order. + */ +G_GNUC_WARN_UNUSED_RESULT +gsize turns_turn_order_get_participant_count(TurnsTurnOrder const * self); + +/** + * turns_turn_order_get_running: (get-property running): + * @self: a turn order. + * + * Gets whether the turn order is currently running. + */ +G_GNUC_WARN_UNUSED_RESULT +gboolean turns_turn_order_get_running(TurnsTurnOrder const * self); + +/** + * turns_turn_order_get_sort_mode: (get-property sort-mode): + * @self: a turn order. + * + * Gets whether higher priority values are sorted before or after lower ones. + */ +G_GNUC_WARN_UNUSED_RESULT +TurnsTurnOrderSortMode turns_turn_order_get_sort_mode(TurnsTurnOrder const * self); + +/** + * turns_turn_order_set_sort_mode: (set-property sort-mode): + * @self: a turn order. + * @sort_mode: whether higher priorities should be sorted before or after lower ones. + * + * Sets whether higher priority values are sorted before or after lower ones. + */ +void turns_turn_order_set_sort_mode(TurnsTurnOrder * self, TurnsTurnOrderSortMode sort_mode); + +G_END_DECLS + +#endif |
