diff options
Diffstat (limited to 'src/fruits/cmsrv')
| -rw-r--r-- | src/fruits/cmsrv/cmsrv.c | 46 | ||||
| -rw-r--r-- | src/fruits/cmsrv/ui.c | 14 |
2 files changed, 14 insertions, 46 deletions
diff --git a/src/fruits/cmsrv/cmsrv.c b/src/fruits/cmsrv/cmsrv.c index 08f67dd..c6f4546 100644 --- a/src/fruits/cmsrv/cmsrv.c +++ b/src/fruits/cmsrv/cmsrv.c @@ -8,13 +8,9 @@ #include <aki/timer.h> #include "../../server/server.h" -#include "../../server/list.h" #include "../../server/common.h" #include "../../cache/handlers/cdio.h" #include "../../codec/ffmpeg/common.h" -#ifdef CAMU_LOCAL_SOCKET -#include "../../server/local_compat.h" -#endif #include "ui.h" @@ -26,7 +22,6 @@ struct cmsrv { struct { struct aki_socket sock; struct aki_line_processor cli; - struct camu_local_compat compat; } local; #endif struct cmsrv_ui ui; @@ -38,23 +33,24 @@ struct cmsrv { static u8 server_line_callback(void *userdata, str *line) { struct cmsrv *s = (struct cmsrv *)userdata; - struct camu_list *list = al_array_at(s->server.lists, 0); + struct lia_list *list = al_array_at(s->server.lists, 0); if (al_str_eq(line, al_str_c(";PAUSE"))) { - lia_list_toggle_pause(&list->impl, LIANA_SEQUENCE_ANY, -1.0); + lia_list_toggle_pause(list, LIANA_SEQUENCE_ANY, -1.0); } else if (al_str_eq(line, al_str_c(";NEXT"))) { - lia_list_skip(&list->impl, LIANA_SEQUENCE_ANY, 1); + lia_list_skip(list, LIANA_SEQUENCE_ANY, 1); } else if (al_str_eq(line, al_str_c(";PREV"))) { - lia_list_skip(&list->impl, LIANA_SEQUENCE_ANY, -1); + lia_list_skip(list, LIANA_SEQUENCE_ANY, -1); } else if (al_str_eq(line, al_str_c(";SHUFFLE"))) { - lia_list_shuffle(&list->impl); + lia_list_shuffle(list); } else if (al_str_eq(line, al_str_c(";SORT"))) { - lia_list_sort(&list->impl); + lia_list_sort(list); } else if (al_str_eq(line, al_str_c(";REVERSE"))) { - lia_list_reverse(&list->impl); + lia_list_reverse(list); } else if (al_str_eq(line, al_str_c(";CLEAR"))) { - lia_list_clear(&list->impl); + lia_list_clear(list); } else { struct aki_packet *packet = aki_packet_create(); + aki_packet_write_u8(packet, CAMU_RESOURCE_FILE); aki_packet_write_str(packet, line); camu_server_local_add(&s->server, packet); } @@ -62,27 +58,6 @@ static u8 server_line_callback(void *userdata, str *line) } #endif -static void meta_callback(void *userdata, u8 op, struct lia_list_entry *entry) -{ - struct cmsrv *s = (struct cmsrv *)userdata; - (void)s; - switch (op) { - case LIANA_META_PLAYING: { - struct camu_server_resource *resource = (struct camu_server_resource *)entry->opaque; -#ifdef CAMU_HAVE_PORTAL - if (resource->post) { - al_log_info("server", "now playing: %.*ls.", AL_WSTR_PRINTF(&resource->post->title)); - } else { -#endif - al_log_info("server", "now playing: %.*s.", AL_STR_PRINTF(&resource->unique_id)); -#ifdef CAMU_HAVE_PORTAL - } -#endif - break; - } - } -} - static void render_timer_callback(void *userdata, struct aki_timer *timer) { struct cmsrv *s = (struct cmsrv *)userdata; @@ -161,9 +136,6 @@ s32 wmain(s32 argc, wchar_t **argv) if (!camu_server_init(&s.server, CAMU_LOCAL_TYPE, &s.loop)) return EXIT_FAILURE; camu_server_listen(&s.server, CAMU_LOCAL_ADDR, CAMU_PORT); - struct camu_list *list = al_array_at(s.server.lists, 0); - list->impl.callback = meta_callback; - list->impl.userdata = &s; #ifdef CAMU_LOCAL_SOCKET s.local.sock.type = AKI_SOCKET_UNIX; diff --git a/src/fruits/cmsrv/ui.c b/src/fruits/cmsrv/ui.c index 48f50ca..c5cceef 100644 --- a/src/fruits/cmsrv/ui.c +++ b/src/fruits/cmsrv/ui.c @@ -1,7 +1,5 @@ #include <al/lib.h> -#include "../../server/list.h" - #include "ui.h" #define LOG_RATIO 1.3 @@ -112,22 +110,20 @@ static void render_lists(struct cmsrv_ui *ui) u32 current_line = 0; s32 entries_per_list = 10; - struct camu_list *list; + struct lia_list *list; al_array_foreach(ui->server->lists, i, list) { if (current_line++ >= max_height) break; char *c_str = al_str_to_c_str(&list->name); ncplane_putnstr_yx(p, i, 0, max_width, c_str); al_free(c_str); - struct lia_list *impl = &list->impl; - s32 current = (s32)impl->current; - s32 index = AL_MAX(current - (entries_per_list / 2), 0); - s32 size = (s32)impl->entries.size; + s32 index = AL_MAX(list->current - (entries_per_list / 2), 0); + s32 size = (s32)list->entries.size; s32 end = AL_MIN(index + entries_per_list, size); for (s32 j = index; j < end; j++) { - struct lia_list_entry *entry = al_array_at(impl->entries, j); + struct lia_list_entry *entry = al_array_at(list->entries, j); c_str = al_str_to_c_str(&entry->name); u32 y = i + (j - index) + 1; - if (j == current) { + if (j == list->current) { ncplane_putchar_yx(p, y, 1, '>'); ncplane_putnstr_yx(p, y, 3, max_width - 3, c_str); } else { |