From b4eab85b199bef044cc33cff20c9bf44ee9d8c53 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sat, 12 Apr 2025 19:29:10 +0200 Subject: [PATCH] translate announce example --- example/Makefile | 31 +++++++++++++++-------------- example/announce.c | 32 ++++++++++++++++++++++++++++++ example/{main.c => random_stuff.c} | 0 include/servicepoint.h | 2 ++ 4 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 example/announce.c rename example/{main.c => random_stuff.c} (100%) diff --git a/example/Makefile b/example/Makefile index d3f346f..91083d4 100644 --- a/example/Makefile +++ b/example/Makefile @@ -4,6 +4,7 @@ CARGO := rustup run nightly cargo THIS_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) REPO_ROOT := $(THIS_DIR)/.. RUST_TARGET_DIR := $(REPO_ROOT)/target/x86_64-unknown-linux-musl/size-optimized +export SERVICEPOINT_HEADER_OUT := $(REPO_ROOT)/include RUSTFLAGS := -Zlocation-detail=none \ -Zfmt-debug=none \ @@ -41,34 +42,34 @@ CCFLAGS := -static -Os \ -fno-exceptions #-Wl,--icf=all \ -export SERVICEPOINT_HEADER_OUT := $(REPO_ROOT)/include +STRIPFLAGS := -s --strip-unneeded -R .comment -R .gnu.version -R .comment -R .note -R .note.gnu.build-id -R .note.ABI-tag -build: out/example +src := $(wildcard *.c) +programs := $(basename $(src)) +bins := $(addprefix out/, $(programs)) +unstripped_bins := $(addsuffix _unstripped, $(bins)) + +all: $(bins) clean: rm -r out || true rm include/servicepoint.h || true cargo clean -run: out/example - out/example +PHONY: all clean analyze-size -PHONY: build clean dependencies run - -out/example_unstripped: dependencies main.c +$(unstripped_bins): out/%_unstripped: %.c $(SERVICEPOINT_HEADER_OUT)/servicepoint.h mkdir -p out || true - ${CC} main.c \ + ${CC} $^ \ -I $(SERVICEPOINT_HEADER_OUT) \ -L $(RUST_TARGET_DIR)\ $(CCFLAGS) \ - -o out/example_unstripped -out/example: out/example_unstripped - strip -s --strip-unneeded \ - -R .comment -R .gnu.version -R .comment -R .note -R .note.gnu.build-id -R .note.ABI-tag \ - out/example_unstripped \ - -o out/example + -o $@ -dependencies: FORCE +$(bins): out/%: out/%_unstripped + strip $(STRIPFLAGS) $^ -o $@ + +$(SERVICEPOINT_HEADER_OUT)/servicepoint.h: FORCE mkdir -p include || true # generate servicepoint header and binary to link against ${CARGO} rustc $(CARGOFLAGS) -- $(RUSTFLAGS) diff --git a/example/announce.c b/example/announce.c new file mode 100644 index 0000000..6cf3dc4 --- /dev/null +++ b/example/announce.c @@ -0,0 +1,32 @@ +#include +#include "servicepoint.h" + +int main(void) { + UdpConnection *connection = sp_udp_open_ipv4(172, 23, 42, 29, 2342); + if (connection == NULL) + return 1; + + sp_udp_send_command(connection, sp_command_clear()); + + CharGrid *grid = sp_char_grid_new(5,2); + if (grid == NULL) + return 1; + + sp_char_grid_set(grid, 0, 0, 'H'); + sp_char_grid_set(grid, 1, 0, 'e'); + sp_char_grid_set(grid, 2, 0, 'l'); + sp_char_grid_set(grid, 3, 0, 'l'); + sp_char_grid_set(grid, 4, 0, 'o'); + sp_char_grid_set(grid, 0, 1, 'W'); + sp_char_grid_set(grid, 1, 1, 'o'); + sp_char_grid_set(grid, 2, 1, 'r'); + sp_char_grid_set(grid, 3, 1, 'l'); + sp_char_grid_set(grid, 4, 1, 'd'); + + + TypedCommand *command = sp_command_char_grid(0, 0, grid); + sp_udp_send_command(connection, command); + + sp_udp_free(connection); + return 0; +} diff --git a/example/main.c b/example/random_stuff.c similarity index 100% rename from example/main.c rename to example/random_stuff.c diff --git a/include/servicepoint.h b/include/servicepoint.h index 51b00ca..aa7893f 100644 --- a/include/servicepoint.h +++ b/include/servicepoint.h @@ -668,6 +668,8 @@ size_t sp_brightness_grid_height(BrightnessGrid */*notnull*/ brightness_grid); /** * Loads a [BrightnessGrid] with the specified dimensions from the provided data. * + * Any out of range values will be set to [Brightness::MAX] or [Brightness::MIN]. + * * returns: new [BrightnessGrid] instance, or NULL in case of an error. */ BrightnessGrid *sp_brightness_grid_load(size_t width,