From: Scott Worley Date: Mon, 9 Oct 2023 23:51:08 +0000 (-0700) Subject: client: Start moving pending-sends logic out to sends.c X-Git-Tag: v0.1.0~43 X-Git-Url: http://git.scottworley.com/tattlekey/commitdiff_plain/2dcbb2a0df003ac8a644c9111c3b7b7f2db42aaa?ds=sidebyside client: Start moving pending-sends logic out to sends.c --- diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 7714c1e..74a4189 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -12,6 +12,7 @@ add_executable(tattlekey button.c config.c net.c + sends.c tattlekey.c ) diff --git a/client/sends.c b/client/sends.c new file mode 100644 index 0000000..c060792 --- /dev/null +++ b/client/sends.c @@ -0,0 +1,11 @@ +#include "sends.h" + +uint32_t next_send(send_t *s) { + return s->timestamp + (1 << s->send_count) - 1; +} + +bool next_send_less_than(void *user_data, pheap_node_id_t a, + pheap_node_id_t b) { + send_t *sends = (send_t *)user_data; + return next_send(&sends[a]) < next_send(&sends[b]); +} diff --git a/client/sends.h b/client/sends.h new file mode 100644 index 0000000..02d49db --- /dev/null +++ b/client/sends.h @@ -0,0 +1,17 @@ +#ifndef SENDS_H +#define SENDS_H + +#include "pico/cyw43_arch.h" +#include "pico/util/pheap.h" + +typedef struct { + uint32_t timestamp; + u16_t seq; + u8_t send_count; +} send_t; + +uint32_t next_send(send_t *s); + +bool next_send_less_than(void *user_data, pheap_node_id_t a, pheap_node_id_t b); + +#endif diff --git a/client/tattlekey.c b/client/tattlekey.c index c38de12..48db1b7 100644 --- a/client/tattlekey.c +++ b/client/tattlekey.c @@ -7,22 +7,7 @@ #include "button.h" #include "config.h" #include "net.h" - -typedef struct { - uint32_t timestamp; - u16_t seq; - u8_t send_count; -} send_t; - -uint32_t next_send(send_t *s) { - return s->timestamp + (1 << s->send_count) - 1; -} - -bool next_send_less_than(void *user_data, pheap_node_id_t a, - pheap_node_id_t b) { - send_t *sends = (send_t *)user_data; - return next_send(&sends[a]) < next_send(&sends[b]); -} +#include "sends.h" enum event_type { BUTTONPRESS, SEND }; typedef struct {