summaryrefslogtreecommitdiff
path: root/src/fruits/cmsrv
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-12-18 11:06:44 -0500
committerAndrew Opalach <andrew@akon.city> 2024-12-18 11:06:44 -0500
commit3d55d2722a3129449ab1418e73abd97caa7fd2ae (patch)
tree0cba3f876c9b339d20d8e4a38a7a5d786fa2102d /src/fruits/cmsrv
parent692785bc9da6904cf17e986fb034730ed3d78231 (diff)
downloadcamu-3d55d2722a3129449ab1418e73abd97caa7fd2ae.tar.gz
camu-3d55d2722a3129449ab1418e73abd97caa7fd2ae.tar.bz2
camu-3d55d2722a3129449ab1418e73abd97caa7fd2ae.zip
Extend server resource loading, work on client
Also, cleanup in preparation for changing code style. Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits/cmsrv')
-rw-r--r--src/fruits/cmsrv/cmsrv.c9
-rw-r--r--src/fruits/cmsrv/ui.c11
2 files changed, 14 insertions, 6 deletions
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);