summaryrefslogtreecommitdiff
path: root/src/fruits/cmv
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-11-08 14:53:40 -0500
committerAndrew Opalach <andrew@akon.city> 2024-11-08 14:53:40 -0500
commit5e3641e5e692c3f2f644a4bb809c88727cb8bee9 (patch)
treefbac2007fdcebda13406350fdcef977910427078 /src/fruits/cmv
parentf56abfafcd4fa722b807278b138f805112cd953e (diff)
downloadcamu-5e3641e5e692c3f2f644a4bb809c88727cb8bee9.tar.gz
camu-5e3641e5e692c3f2f644a4bb809c88727cb8bee9.tar.bz2
camu-5e3641e5e692c3f2f644a4bb809c88727cb8bee9.zip
Command queue for portal and list, work on server
Most of the server stuff can undoubtedly be simplified. I'm still working that out. Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits/cmv')
-rw-r--r--src/fruits/cmv/cmv.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/fruits/cmv/cmv.c b/src/fruits/cmv/cmv.c
index 8eaa8b7..eb96623 100644
--- a/src/fruits/cmv/cmv.c
+++ b/src/fruits/cmv/cmv.c
@@ -7,7 +7,6 @@
#include "../../codec/ffmpeg/common.h"
#ifndef CAMU_SINK_ONLY
#include "../../server/server.h"
-#include "../../server/list.h"
#else
#include "../../server/common.c"
#endif
@@ -21,19 +20,6 @@ struct cmv {
};
#ifndef CAMU_SINK_ONLY
-static void meta_callback(void *userdata, u8 op, struct lia_list_entry *entry)
-{
- struct cmv *c = (struct cmv *)userdata;
- (void)c;
- switch (op) {
- case LIANA_META_PLAYING: {
- struct camu_server_resource *resource = (struct camu_server_resource *)entry->opaque;
- al_log_info("server", "now playing: %.*s.", AL_STR_PRINTF(&resource->unique_id));
- break;
- }
- }
-}
-
static void exit_callback(void *userdata, struct camu_desktop *desktop)
{
struct cmv *c = (struct cmv *)userdata;
@@ -87,9 +73,6 @@ s32 wmain(s32 argc, wchar_t **argv)
type = AKI_SOCKET_UNIX; addr = CAMU_UNIX_LOCAL;
if (!camu_server_init(&c.server, type, &c.loop)) failure();
if (!camu_server_listen(&c.server, addr, CAMU_PORT)) failure();
- struct camu_list *list = al_array_at(c.server.lists, 0);
- list->impl.callback = meta_callback;
- list->impl.userdata = &c;
} else {
type = CAMU_LOCAL_TYPE;
addr = CAMU_LOCAL_ADDR;
@@ -108,7 +91,13 @@ s32 wmain(s32 argc, wchar_t **argv)
al_wstr_to_str(al_wstr_cr(argv[i]), &arg);
#endif
struct aki_packet *packet = aki_packet_create();
- aki_packet_write_str(packet, &arg);
+ if (al_str_at(&arg, 0) == ';') {
+ aki_packet_write_u8(packet, CAMU_RESOURCE_PORTAL);
+ aki_packet_write_str(packet, al_str_substr(&arg, 1, arg.len));
+ } else {
+ aki_packet_write_u8(packet, CAMU_RESOURCE_FILE);
+ aki_packet_write_str(packet, &arg);
+ }
camu_server_local_add(&c.server, packet);
}
}