From 3d55d2722a3129449ab1418e73abd97caa7fd2ae Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 18 Dec 2024 11:06:44 -0500 Subject: Extend server resource loading, work on client Also, cleanup in preparation for changing code style. Signed-off-by: Andrew Opalach --- src/fruits/cmsrv/cmsrv.c | 9 +++++++-- src/fruits/cmsrv/ui.c | 11 +++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'src/fruits/cmsrv') diff --git a/src/fruits/cmsrv/cmsrv.c b/src/fruits/cmsrv/cmsrv.c index 47f90af..5eb9fee 100644 --- a/src/fruits/cmsrv/cmsrv.c +++ b/src/fruits/cmsrv/cmsrv.c @@ -50,7 +50,11 @@ static u8 server_line_callback(void *userdata, str *line) lia_list_clear(list); } else { struct aki_packet *packet = aki_packet_create(); - aki_packet_write_u8(packet, CAMU_RESOURCE_FILE); + if (al_str_at(line, 0) == ';' || camu_is_url(line, 0)) { + aki_packet_write_u8(packet, CAMU_RESOURCE_SIMPLE_SEARCH); + } else { + aki_packet_write_u8(packet, CAMU_RESOURCE_FILE); + } aki_packet_write_str(packet, line); camu_server_local_add(&s->server, packet); } @@ -98,9 +102,10 @@ static void quit_signal_callback(void *userdata) aki_event_loop_break_one(&s->loop); } -static s32 log_callback(void *userdata, char *message) +static s32 log_callback(void *userdata, char *message, const char *color) { struct cmsrv *s = (struct cmsrv *)userdata; + (void)color; cmsrv_ui_push_message(&s->ui, message); return al_strlen(message); } diff --git a/src/fruits/cmsrv/ui.c b/src/fruits/cmsrv/ui.c index 7ae19d5..0c26881 100644 --- a/src/fruits/cmsrv/ui.c +++ b/src/fruits/cmsrv/ui.c @@ -8,6 +8,10 @@ static s32 resize_cb(struct ncplane *p) { struct cmsrv_ui *ui = (struct cmsrv_ui *)ncplane_userptr(p); + ncplane_erase(p); + notcurses_refresh(ui->nc, &ui->term_rows, &ui->term_cols); + notcurses_render(ui->nc); + notcurses_stddim_yx(ui->nc, &ui->term_rows, &ui->term_cols); ui->pending_layout = true; return 0; } @@ -52,6 +56,7 @@ void cmsrv_ui_push_message(struct cmsrv_ui *ui, char *message) static void layout_log(struct cmsrv_ui *ui, struct ncplane *parent) { + if (ui->log.n) ncplane_destroy(ui->log.n); struct ncplane_options nopts = { .rows = ui->term_rows / LOG_RATIO, .cols = ui->term_cols, @@ -88,6 +93,7 @@ static void render_log(struct cmsrv_ui *ui) static void layout_lists(struct cmsrv_ui *ui, struct ncplane *parent) { + if (ui->lists.n) ncplane_destroy(ui->lists.n); struct ncplane_options nopts = { .rows = ui->term_rows - (ui->term_rows / LOG_RATIO), .cols = ui->term_cols, @@ -147,6 +153,7 @@ static void render_lists(struct cmsrv_ui *ui) static void layout_nodes(struct cmsrv_ui *ui, struct ncplane *parent) { + if (ui->nodes.n) ncplane_destroy(ui->nodes.n); struct ncplane_options nopts = { .rows = ui->term_rows - (ui->term_rows / LOG_RATIO), .cols = ui->term_cols, @@ -191,10 +198,6 @@ void cmsrv_ui_render(struct cmsrv_ui *ui) erase_lists(ui); erase_nodes(ui); if (ui->pending_layout) { - ncplane_erase(stdplane); - notcurses_refresh(ui->nc, &ui->term_rows, &ui->term_cols); - notcurses_render(ui->nc); - notcurses_stddim_yx(ui->nc, &ui->term_rows, &ui->term_cols); layout_log(ui, stdplane); layout_lists(ui, stdplane); layout_nodes(ui, stdplane); -- cgit v1.2.3-101-g0448