From ae8822ec0327c4d5674f1dc79de926b230f27f1f Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 16 Apr 2025 15:12:41 -0400 Subject: Highly wip waveform view Signed-off-by: Andrew Opalach --- src/libclient/client.c | 25 ++++++++++++++++++++++++- src/libclient/client.h | 5 ++++- src/libclient/common.h | 3 ++- 3 files changed, 30 insertions(+), 3 deletions(-) (limited to 'src/libclient') diff --git a/src/libclient/client.c b/src/libclient/client.c index 7350df2..ddcc1db 100644 --- a/src/libclient/client.c +++ b/src/libclient/client.c @@ -44,9 +44,24 @@ static bool meta_callback(void *userdata, struct nn_rpc_connection *conn, return false; } +static bool visual_data_callback(void *userdata, struct nn_rpc_connection *conn, + struct nn_packet *packet, struct nn_packet *rpacket) +{ + struct camu_client *client = (struct camu_client *)userdata; + (void)conn; + (void)rpacket; + + client->callback(client->userdata, CAMU_CLIENT_GOT_VISUAL_DATA, packet); + + nn_packet_stream_return_packet(conn->stream, packet); + + return false; +} + static struct nn_rpc_command commands[] = { { .op = CAMU_CLIENT_RESULTS, .callback = results_callback, .userdata = NULL }, - { .op = CAMU_CLIENT_META, .callback = meta_callback, .userdata = NULL } + { .op = CAMU_CLIENT_META, .callback = meta_callback, .userdata = NULL }, + { .op = CAMU_CLIENT_VISUAL_DATA, .callback = visual_data_callback, .userdata = NULL } }; static void idd_callback(void *userdata, struct nn_rpc_connection *conn, struct nn_packet *packet) @@ -135,6 +150,14 @@ void camu_client_get_page(struct camu_client *client, s32 id, u32 num) nn_rpc_connection_command(client->conn, packet, NULL, NULL); } +void camu_client_request_visual_data(struct camu_client *client, u32 node_id) +{ + struct nn_packet *packet = nn_rpc_get_packet(&client->client, CAMU_SERVER_CLIENT_COMMAND); + nn_packet_write_u8(packet, CAMU_CLIENT_REQUEST_VISUAL_DATA); + nn_packet_write_u32(packet, node_id); + nn_rpc_connection_command(client->conn, packet, NULL, NULL); +} + void camu_client_skipto(struct camu_client *client, str *list, s32 i) { struct nn_packet *packet = nn_rpc_get_packet(&client->client, CAMU_SERVER_LIST_ACTION); diff --git a/src/libclient/client.h b/src/libclient/client.h index 892bf0d..70b5b27 100644 --- a/src/libclient/client.h +++ b/src/libclient/client.h @@ -6,7 +6,8 @@ enum { CAMU_CLIENT_LOGGED_IN = 0, CAMU_CLIENT_SEARCH_CREATED, CAMU_CLIENT_GOT_RESULTS, - CAMU_CLIENT_GOT_META + CAMU_CLIENT_GOT_META, + CAMU_CLIENT_GOT_VISUAL_DATA }; struct camu_client { @@ -29,6 +30,8 @@ void camu_client_toggle_sink(struct camu_client *client, str *sink, str *list, b void camu_client_create_search(struct camu_client *client, str *module, str *query); void camu_client_get_page(struct camu_client *client, s32 id, u32 num); +void camu_client_request_visual_data(struct camu_client *client, u32 node_id); + void camu_client_skipto(struct camu_client *client, str *list, s32 i); void camu_client_seek(struct camu_client *client, str *list, u32 id, u64 pos); diff --git a/src/libclient/common.h b/src/libclient/common.h index b074277..677e6b2 100644 --- a/src/libclient/common.h +++ b/src/libclient/common.h @@ -2,5 +2,6 @@ enum { CAMU_CLIENT_RESULTS = 0, - CAMU_CLIENT_META + CAMU_CLIENT_META, + CAMU_CLIENT_VISUAL_DATA }; -- cgit v1.2.3-101-g0448