summaryrefslogtreecommitdiff
path: root/src/libclient
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-04-09 11:24:01 -0400
committerAndrew Opalach <andrew@akon.city> 2024-04-09 11:24:01 -0400
commit02f3d3565602146bbbfce85b2719246f24036cb9 (patch)
treec6588ffe297b777e36260effa4fa42b958ca6ba3 /src/libclient
parentbbf3314165182e402ff25acccddc004a87f81ef0 (diff)
downloadcamu-02f3d3565602146bbbfce85b2719246f24036cb9.tar.gz
camu-02f3d3565602146bbbfce85b2719246f24036cb9.tar.bz2
camu-02f3d3565602146bbbfce85b2719246f24036cb9.zip
Massive restructure and many changes
- The server-side list concept is still a wip Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libclient')
-rw-r--r--src/libclient/client.c37
-rw-r--r--src/libclient/client.h4
-rw-r--r--src/libclient/meson.build2
3 files changed, 34 insertions, 9 deletions
diff --git a/src/libclient/client.c b/src/libclient/client.c
index bf22fee..cd0bdf5 100644
--- a/src/libclient/client.c
+++ b/src/libclient/client.c
@@ -1,6 +1,6 @@
#include <al/log.h>
-#include "../tree/common.h"
+#include "../server/common.h"
#include "client.h"
@@ -15,8 +15,8 @@ static void connection_callback(void *userdata, struct aki_rpc_connection *conn)
{
struct camu_client *client = (struct camu_client *)userdata;
client->conn = conn;
- struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_IDENTIFY);
- aki_packet_write_u8(packet, TREE_CLIENT);
+ struct aki_packet *packet = aki_rpc_get_packet(&client->client, CAMU_SRV_IDENTIFY);
+ aki_packet_write_u8(packet, CAMU_CLIENT);
aki_packet_write_str(packet, &client->username);
aki_rpc_connection_command(client->conn, packet, identifed_callback, client);
}
@@ -78,7 +78,7 @@ static bool update_state_command_callback(void *userdata, struct aki_rpc_connect
}
static struct aki_rpc_command commands[] = {
- { .op = TREE_CMD_UPDATE_STATE, .callback = update_state_command_callback, .userdata = NULL }
+ { .op = CAMU_CONN_STATE, .callback = update_state_command_callback, .userdata = NULL }
};
bool camu_client_init(struct camu_client *client, struct aki_event_loop *loop,
@@ -125,11 +125,13 @@ static void create_search_callback(void *userdata, struct aki_packet *packet)
void camu_client_create_search(struct camu_client *client, str *module, str *query)
{
+ /*
struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_CREATE_SEARCH);
aki_packet_write_str(packet, module);
aki_packet_write_str(packet, query);
packet->userdata = create_search_callback;
aki_packet_pool_submit(&client->pool, packet);
+ */
}
static struct camu_search *get_search_from_id(struct camu_client *client, s32 id)
@@ -145,6 +147,7 @@ static void results_callback(void *userdata, struct aki_packet *packet)
{
struct camu_client *client = (struct camu_client *)userdata;
+ // We still get the requested id even if there was an error.
s32 id = aki_packet_read_s32(packet);
s32 ok = aki_packet_read_s32(packet);
@@ -192,28 +195,48 @@ static void results_callback(void *userdata, struct aki_packet *packet)
void camu_client_get_page(struct camu_client *client, struct camu_search *search, u32 num)
{
+ /*
struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_GET_PAGE);
aki_packet_write_s32(packet, search->id);
aki_packet_write_u32(packet, num);
packet->userdata = results_callback;
aki_packet_pool_submit(&client->pool, packet);
+ */
}
-void camu_client_add(struct camu_client *client, str *unique_id, u32 index)
+void camu_client_add(struct camu_client *client, str *unique_id, u32 index, bool set)
{
- struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_ADD);
+ /*
+ struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION);
+ aki_packet_write_u8(packet, TREE_LIST_ADD);
aki_packet_write_str(packet, unique_id);
aki_packet_write_u32(packet, index);
+ aki_packet_write_u8(packet, set);
packet->userdata = NULL;
aki_packet_pool_submit(&client->pool, packet);
+ */
}
void camu_client_skip(struct camu_client *client, s32 n)
{
- struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_SKIP);
+ /*
+ struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION);
+ aki_packet_write_u8(packet, TREE_LIST_SKIP);
aki_packet_write_s32(packet, n);
packet->userdata = NULL;
aki_packet_pool_submit(&client->pool, packet);
+ */
+}
+
+void camu_client_skipto(struct camu_client *client, s32 i)
+{
+ /*
+ struct aki_packet *packet = aki_rpc_get_packet(&client->client, TREE_CMD_LIST_ACTION);
+ aki_packet_write_u8(packet, TREE_LIST_SKIPTO);
+ aki_packet_write_s32(packet, i);
+ packet->userdata = NULL;
+ aki_packet_pool_submit(&client->pool, packet);
+ */
}
void camu_client_close(struct camu_client *client)
diff --git a/src/libclient/client.h b/src/libclient/client.h
index 68b0826..98276f2 100644
--- a/src/libclient/client.h
+++ b/src/libclient/client.h
@@ -54,7 +54,9 @@ bool camu_client_init(struct camu_client *client, struct aki_event_loop *loop,
void (*callback)(void *, u8, void *), void *userdata);
bool camu_client_login(struct camu_client *client, str *username, str *addr, s32 port);
void camu_client_create_search(struct camu_client *client, str *module, str *query);
+void camu_client_create_browse(struct camu_client *client);
void camu_client_get_page(struct camu_client *client, struct camu_search *search, u32 num);
-void camu_client_add(struct camu_client *client, str *unique_id, u32 index);
+void camu_client_add(struct camu_client *client, str *unique_id, u32 index, bool set);
void camu_client_skip(struct camu_client *client, s32 n);
+void camu_client_skipto(struct camu_client *client, s32 i);
void camu_client_close(struct camu_client *client);
diff --git a/src/libclient/meson.build b/src/libclient/meson.build
index a2f23b0..dff4014 100644
--- a/src/libclient/meson.build
+++ b/src/libclient/meson.build
@@ -1,3 +1,3 @@
libclient_src = ['client.c', 'resource_client.c']
-libclient_deps = [shoki]
+libclient_deps = [portal]
libclient = declare_dependency(sources: libclient_src, dependencies: libclient_deps)