summaryrefslogtreecommitdiff
path: root/src/fruits/cmsrv
diff options
context:
space:
mode:
Diffstat (limited to 'src/fruits/cmsrv')
-rw-r--r--src/fruits/cmsrv/cmsrv.c46
-rw-r--r--src/fruits/cmsrv/ui.c14
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 {