summaryrefslogtreecommitdiff
path: root/src/fruits
diff options
context:
space:
mode:
Diffstat (limited to 'src/fruits')
-rw-r--r--src/fruits/cmc/cmc.c20
-rw-r--r--src/fruits/cmc/ui/pane_search.c2
-rw-r--r--src/fruits/cmsrv/cmsrv.c26
-rw-r--r--src/fruits/cmsrv/ui.c27
-rw-r--r--src/fruits/cmv/cmv.c14
-rw-r--r--src/fruits/common.h10
-rw-r--r--src/fruits/ctv/ctv.c7
-rw-r--r--src/fruits/ctv/meson.build2
-rw-r--r--src/fruits/droid/ctv/gradle/libs.versions.toml2
-rw-r--r--src/fruits/droid/ctv/gradle/wrapper/gradle-wrapper.properties2
10 files changed, 60 insertions, 52 deletions
diff --git a/src/fruits/cmc/cmc.c b/src/fruits/cmc/cmc.c
index 35f2d9b..af3e567 100644
--- a/src/fruits/cmc/cmc.c
+++ b/src/fruits/cmc/cmc.c
@@ -58,7 +58,7 @@ static void client_callback(void *userdata, u8 op, void *opaque)
case CLI_ADD: {
str *arg;
al_array_foreach_ptr(c->args, i, arg) {
- camu_client_add_from_path(&c->client, al_str_c("default"), arg);
+ camu_client_add_from_path(&c->client, &al_str_c("default"), arg);
al_str_free(arg);
}
camu_client_disconnect(&c->client);
@@ -67,7 +67,7 @@ static void client_callback(void *userdata, u8 op, void *opaque)
case CLI_SEARCH: {
str *arg;
al_array_foreach_ptr(c->args, i, arg) {
- camu_client_create_search(&c->client, al_str_c("youtube"), arg);
+ camu_client_create_search(&c->client, &al_str_c("youtube"), arg);
al_str_free(arg);
}
camu_client_disconnect(&c->client);
@@ -106,7 +106,7 @@ static void client_callback(void *userdata, u8 op, void *opaque)
al_array_push(page->list, s);
}
al_array_push(search->pages, page);
- camu_client_add_from_post(&c->client, al_str_c("default"), &al_array_at(page->list, 0), 0);
+ camu_client_add_from_post(&c->client, &al_str_c("default"), &al_array_at(page->list, 0), 0);
break;
}
}
@@ -124,30 +124,32 @@ static bool parse_cmd(s32 argc, wchar_t **argv)
c.command = CLI_OPEN_UI;
return true;
}
- if (al_str_eq(al_str_cr(argv[1]), al_str_c("add"))) {
+
+ if (al_str_eq(&al_str_cr(argv[1]), &al_str_c("add"))) {
if (argc < 3) return false;
c.command = CLI_ADD;
char path[PATH_MAX];
str arg;
for (s32 i = 2; i < argc; i++) {
if (realpath(argv[i], path)) {
- al_str_clone(&arg, al_str_cr(path));
+ al_str_clone(&arg, &al_str_cs(path));
al_array_push(c.args, arg);
}
}
- } else if (al_str_eq(al_str_cr(argv[1]), al_str_c("search"))) {
+ } else if (al_str_eq(&al_str_cr(argv[1]), &al_str_c("search"))) {
if (argc < 3) return false;
c.command = CLI_SEARCH;
str query;
al_str_from(&query, "");
for (s32 i = 2; i < argc; i++) {
- al_str_cat(&query, al_str_cr(argv[i]));
+ al_str_cat(&query, &al_str_cr(argv[i]));
if (i != argc - 1) {
- al_str_cat(&query, al_str_c(" "));
+ al_str_cat(&query, &al_str_c(" "));
}
}
al_array_push(c.args, query);
}
+
return true;
}
@@ -169,7 +171,7 @@ s32 wmain(s32 argc, wchar_t **argv)
c.client.callback = client_callback;
c.client.userdata = &c;
- if (!camu_client_login(&c.client, &c.loop, CAMU_TEST_TYPE, CAMU_TEST_ADDR, CAMU_PORT, al_str_c("andrew"))) {
+ if (!camu_client_login(&c.client, &c.loop, CAMU_TEST_TYPE, &CAMU_TEST_ADDR, CAMU_PORT, &al_str_c("andrew"))) {
return EXIT_FAILURE;
}
diff --git a/src/fruits/cmc/ui/pane_search.c b/src/fruits/cmc/ui/pane_search.c
index cc549e1..c3d1165 100644
--- a/src/fruits/cmc/ui/pane_search.c
+++ b/src/fruits/cmc/ui/pane_search.c
@@ -4,7 +4,7 @@
void cmc_sp_init(struct cmc_ui *ui)
{
- if (ui->c->searches.size > 0) {
+ if (ui->c->searches.count > 0) {
ui->sp.search = al_array_at(ui->c->searches, 0);
}
cmc_sp_layout(ui, notcurses_stdplane(ui->nc));
diff --git a/src/fruits/cmsrv/cmsrv.c b/src/fruits/cmsrv/cmsrv.c
index 6f00a05..4cd1691 100644
--- a/src/fruits/cmsrv/cmsrv.c
+++ b/src/fruits/cmsrv/cmsrv.c
@@ -39,19 +39,19 @@ static u8 server_line_callback(void *userdata, str *line)
{
struct cmsrv *s = (struct cmsrv *)userdata;
struct lia_list *list = al_array_at(s->server.lists, 0);
- if (al_str_eq(line, al_str_c(";PAUSE"))) {
+ if (al_str_eq(line, &al_str_c(";PAUSE"))) {
lia_list_toggle_pause(list, LIANA_SEQUENCE_ANY, -1.0);
- } else if (al_str_eq(line, al_str_c(";NEXT"))) {
+ } else if (al_str_eq(line, &al_str_c(";NEXT"))) {
lia_list_skip(list, LIANA_SEQUENCE_ANY, 1);
- } else if (al_str_eq(line, al_str_c(";PREV"))) {
+ } else if (al_str_eq(line, &al_str_c(";PREV"))) {
lia_list_skip(list, LIANA_SEQUENCE_ANY, -1);
- } else if (al_str_eq(line, al_str_c(";SHUFFLE"))) {
+ } else if (al_str_eq(line, &al_str_c(";SHUFFLE"))) {
lia_list_shuffle(list);
- } else if (al_str_eq(line, al_str_c(";SORT"))) {
+ } else if (al_str_eq(line, &al_str_c(";SORT"))) {
lia_list_sort(list);
- } else if (al_str_eq(line, al_str_c(";REVERSE"))) {
+ } else if (al_str_eq(line, &al_str_c(";REVERSE"))) {
lia_list_reverse(list);
- } else if (al_str_eq(line, al_str_c(";CLEAR"))) {
+ } else if (al_str_eq(line, &al_str_c(";CLEAR"))) {
lia_list_clear(list);
} else {
struct nn_packet *packet = nn_packet_create();
@@ -63,7 +63,7 @@ static u8 server_line_callback(void *userdata, str *line)
nn_packet_write_u8(packet, CAMU_RESOURCE_HTTP);
#endif
#if CACHE_HAVE_CDIO
- } else if (al_str_cmp(line, al_str_c("cdda://"), 0, 7) == 0) {
+ } else if (al_str_cmp(line, &al_str_c("cdda://"), 0, 7) == 0) {
nn_packet_write_u8(packet, CAMU_RESOURCE_CDIO);
#endif
} else {
@@ -115,8 +115,8 @@ static s32 log_callback(void *userdata, u8 level, char *message)
{
struct cmsrv *s = (struct cmsrv *)userdata;
(void)level;
- cmsrv_ui_push_message(&s->ui, message);
- return al_strlen(message);
+ cmsrv_ui_push_message(&s->ui, al_strndup(message, AL_LOG_MESSAGE_SIZE));
+ return al_strnlen(message, AL_LOG_MESSAGE_SIZE);
}
#endif
@@ -172,7 +172,7 @@ s32 wmain(s32 argc, wchar_t **argv)
camu_server_init(&s.server, &s.loop);
s.server.meta_callback = server_meta_callback;
s.server.userdata = &s;
- if (!camu_server_listen(&s.server, CAMU_TEST_TYPE, CAMU_TEST_ADDR, CAMU_PORT)) {
+ if (!camu_server_listen(&s.server, CAMU_TEST_TYPE, &CAMU_TEST_ADDR, CAMU_PORT)) {
return EXIT_FAILURE;
}
@@ -181,9 +181,9 @@ s32 wmain(s32 argc, wchar_t **argv)
nn_socket_init(&s.local.sock, NNWT_SOCKET_NONBLOCKING);
s.local.cli.callback = server_line_callback;
s.local.cli.userdata = &s;
- nn_line_processor_init(&s.local.cli, al_str_c("\n"));
+ nn_line_processor_init(&s.local.cli, &al_str_c("\n"));
nn_line_processor_open_socket(&s.local.cli, &s.local.sock);
- if (nn_socket_bind(&s.local.sock, CAMU_TEST_CONTROL_PATH, 0) && nn_socket_listen(&s.local.sock)) {
+ if (nn_socket_bind(&s.local.sock, &CAMU_TEST_CONTROL_PATH, 0) && nn_socket_listen(&s.local.sock)) {
nn_line_processor_run(&s.local.cli, &s.loop);
}
#endif
diff --git a/src/fruits/cmsrv/ui.c b/src/fruits/cmsrv/ui.c
index ba1f8b3..e64f580 100644
--- a/src/fruits/cmsrv/ui.c
+++ b/src/fruits/cmsrv/ui.c
@@ -82,15 +82,22 @@ static void render_log(struct cmsrv_ui *ui)
u32 max_width = ncplane_dim_x(n) - 2;
u32 max_height = ncplane_dim_y(n) - 2;
- u64 c = 0;
- ncchannels_set_fg_default(&c);
- ncplane_rounded_box(n, NCSTYLE_NONE, c, max_height + 1, max_width + 1, 0);
-
- u32 size = ui->log.messages.size;
+ u32 size = ui->log.messages.count;
u32 index = size > max_height ? size - max_height : 0;
for (u32 i = index; i < size; i++) {
- ncplane_putnstr_yx(n, (i - index) + 1, 1, max_width, al_array_at(ui->log.messages, i));
+ // We can't use putnstr here to control the width because lots of
+ // these messages will have wide characters.
+ ncplane_putstr_yx(n, (i - index) + 1, 1, al_array_at(ui->log.messages, i));
+ }
+ for (u32 i = 0; i < index; i++) {
+ al_free(al_array_at(ui->log.messages, i));
}
+ al_array_remove_range(ui->log.messages, 0, index);
+
+ u64 c = 0;
+ ncchannels_set_fg_default(&c);
+ ncplane_cursor_move_yx(n, 0, 0);
+ ncplane_rounded_box(n, NCSTYLE_NONE, c, max_height + 1, max_width + 1, 0);
}
static void layout_lists(struct cmsrv_ui *ui, struct ncplane *parent)
@@ -117,7 +124,7 @@ static void erase_lists(struct cmsrv_ui *ui)
static void putnwstr_maxwidth_yx(struct ncplane *n, u32 y, u32 x, u32 maxwidth, wstr *w)
{
ncplane_cursor_move_yx(n, y, x);
- u32 end = MIN(w->len, maxwidth);
+ u32 end = MIN(w->length, maxwidth);
for (u32 i = 0; i < end; i++) {
ncplane_putwc(n, al_wstr_at(w, i));
}
@@ -135,11 +142,11 @@ static void render_lists(struct cmsrv_ui *ui)
struct lia_list *list;
al_array_foreach(ui->server->lists, i, list) {
if (current_line++ >= max_height) break;
- for (u32 j = 0; j < MIN(max_width, list->name.len); j++) {
+ for (u32 j = 0; j < MIN(max_width, list->name.length); j++) {
ncplane_putchar_yx(n, i, j, al_str_at(&list->name, j));
}
s32 index = MAX(list->current - (entries_per_list / 2), 0);
- s32 size = (s32)list->entries.size;
+ s32 size = (s32)list->entries.count;
s32 end = MIN(index + entries_per_list, size);
for (s32 j = index; j < end; j++) {
struct lia_list_entry *entry = al_array_at(list->entries, j);
@@ -197,7 +204,7 @@ static void render_nodes(struct cmsrv_ui *ui)
ncplane_putnstr_yx(n, i, 0, max_width, strbuf);
struct lia_node_connection *conn;
al_array_foreach(node->connections, j, conn) {
- al_snprintf(strbuf, sizeof(strbuf), "%u", conn->pool.ready.size);
+ al_snprintf(strbuf, sizeof(strbuf), "%u", conn->pool.ready.count);
ncplane_putnstr_yx(n, i + j + 1, 2, max_width, strbuf);
}
}
diff --git a/src/fruits/cmv/cmv.c b/src/fruits/cmv/cmv.c
index 02beffb..55d7d55 100644
--- a/src/fruits/cmv/cmv.c
+++ b/src/fruits/cmv/cmv.c
@@ -14,7 +14,7 @@
#ifndef CAMU_SINK_ONLY
#ifndef _WIN32
-static str *CMV_UNIX_PATH = al_str_c("/tmp/cmv_sock");
+static str CMV_UNIX_PATH = al_str_c("/tmp/cmv_sock");
#endif
#endif
@@ -93,9 +93,9 @@ s32 wmain(s32 argc, wchar_t **argv)
bool local = argc > 1;
if (local) {
#ifndef _WIN32
- type = NNWT_SOCKET_UNIX; addr = CMV_UNIX_PATH;
+ type = NNWT_SOCKET_UNIX; addr = &CMV_UNIX_PATH;
#else
- type = NNWT_SOCKET_TCP; addr = CAMU_LOCALHOST;
+ type = NNWT_SOCKET_TCP; addr = &CAMU_LOCALHOST;
#endif
camu_server_init(&c.server, &c.loop);
c.server.meta_callback = server_meta_callback;
@@ -109,7 +109,7 @@ s32 wmain(s32 argc, wchar_t **argv)
#endif
} else {
type = CAMU_TEST_TYPE;
- addr = CAMU_TEST_ADDR;
+ addr = &CAMU_TEST_ADDR;
}
#else
type = NNWT_SOCKET_TCP; addr = CAMU_TEST_ADDR;
@@ -129,10 +129,10 @@ s32 wmain(s32 argc, wchar_t **argv)
if (local) {
for (s32 i = 1; i < argc; i++) {
#ifndef _WIN32
- str arg = *al_str_cr(argv[i]);
+ str arg = al_str_cr(argv[i]);
#else
str arg;
- if (!al_wstr_to_str(al_wstr_cr(argv[i]), &arg)) {
+ if (!al_wstr_to_str(&al_wstr_cr(argv[i]), &arg)) {
al_log_error("cmv", "Failed to parse argument #%i.", i);
continue;
}
@@ -146,7 +146,7 @@ s32 wmain(s32 argc, wchar_t **argv)
nn_packet_write_u8(packet, CAMU_RESOURCE_HTTP);
#endif
#if CACHE_HAVE_CDIO
- } else if (al_str_cmp(&arg, al_str_c("cdda://"), 0, 7) == 0) {
+ } else if (al_str_cmp(&arg, &al_str_c("cdda://"), 0, 7) == 0) {
nn_packet_write_u8(packet, CAMU_RESOURCE_CDIO);
#endif
} else {
diff --git a/src/fruits/common.h b/src/fruits/common.h
index c7b432a..fb9a127 100644
--- a/src/fruits/common.h
+++ b/src/fruits/common.h
@@ -3,13 +3,13 @@
AL_UNUSED_VARIABLE_PUSH
-static str *CAMU_DB_PATH = al_str_c("/home/andrew/c/camu/data/camu_db_test");
+static str CAMU_DB_PATH = al_str_c("/home/andrew/c/camu/data/camu_db_test");
-static str *CAMU_TEST_IP = al_str_c("108.52.160.112");
-static str *CAMU_LOCALHOST = al_str_c("127.0.0.1");
+static str CAMU_TEST_IP = al_str_c("108.52.160.112");
+static str CAMU_LOCALHOST = al_str_c("127.0.0.1");
-static str *CAMU_TEST_PATH = al_str_c("/tmp/camu_sock");
-static str *CAMU_TEST_CONTROL_PATH = al_str_c("/tmp/camu_control_sock");
+static str CAMU_TEST_PATH = al_str_c("/tmp/camu_sock");
+static str CAMU_TEST_CONTROL_PATH = al_str_c("/tmp/camu_control_sock");
AL_UNUSED_VARIABLE_POP
diff --git a/src/fruits/ctv/ctv.c b/src/fruits/ctv/ctv.c
index b350c8a..ded4182 100644
--- a/src/fruits/ctv/ctv.c
+++ b/src/fruits/ctv/ctv.c
@@ -1,5 +1,6 @@
#include <stl/window.h>
#include <stl/platform.h>
+#include <al/log.h>
#include "../../screen/screen.h"
#include "../../render/renderer_libplacebo.h"
@@ -106,10 +107,8 @@ static s32 log_callback(void *userdata, u8 level, char *message)
{
(void)userdata;
(void)level;
- __android_log_print(ANDROID_LOG_DEBUG, "CTV", "%s", message);
- s32 ret = al_strlen(message);
- al_free(message);
- return ret;
+ __android_log_print(ANDROID_LOG_DEBUG, "CTV", "%.*s", AL_LOG_MESSAGE_SIZE, message);
+ return al_strnlen(message, AL_LOG_MESSAGE_SIZE);
}
void glfmMain(GLFMDisplay *display)
diff --git a/src/fruits/ctv/meson.build b/src/fruits/ctv/meson.build
index dff208d..5a4dca8 100644
--- a/src/fruits/ctv/meson.build
+++ b/src/fruits/ctv/meson.build
@@ -1,4 +1,4 @@
-ctv_src = ['ctv.c']
+ctv_src = ['ctv.c', '../../sink/common.c']
ctv_deps = [common_deps, libsink]
ctv_args = ['-DCAMU_MIXER_THREADED', '-DCAMU_SCREEN_THREADED']
diff --git a/src/fruits/droid/ctv/gradle/libs.versions.toml b/src/fruits/droid/ctv/gradle/libs.versions.toml
index ea02696..e1ef643 100644
--- a/src/fruits/droid/ctv/gradle/libs.versions.toml
+++ b/src/fruits/droid/ctv/gradle/libs.versions.toml
@@ -1,5 +1,5 @@
[versions]
-agp = "8.7.3"
+agp = "8.8.0"
[libraries]
diff --git a/src/fruits/droid/ctv/gradle/wrapper/gradle-wrapper.properties b/src/fruits/droid/ctv/gradle/wrapper/gradle-wrapper.properties
index 354c93e..698ab10 100644
--- a/src/fruits/droid/ctv/gradle/wrapper/gradle-wrapper.properties
+++ b/src/fruits/droid/ctv/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Wed Oct 30 14:10:25 EDT 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists