summaryrefslogtreecommitdiff
path: root/src/fruits/cmc
diff options
context:
space:
mode:
Diffstat (limited to 'src/fruits/cmc')
-rw-r--r--src/fruits/cmc/cmc.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/fruits/cmc/cmc.c b/src/fruits/cmc/cmc.c
index 1046e41..61ac25a 100644
--- a/src/fruits/cmc/cmc.c
+++ b/src/fruits/cmc/cmc.c
@@ -29,9 +29,9 @@ static struct cmc_search *get_search_by_id(struct cmc *c, s32 id)
}
*/
-static void parse_list_entry(struct nn_packet *packet, struct cmc_list_entry *entry)
+static void parse_list_entry(struct nn_packet *packet, struct cmc_list_entry *entry, u32 id)
{
- entry->id = nn_packet_read_u32(packet);
+ entry->id = id;
entry->duration = nn_packet_read_u64(packet);
entry->start = nn_packet_read_u64(packet);
entry->paused_at = nn_packet_read_u64(packet);
@@ -65,8 +65,9 @@ static void parse_initial_user_state(struct cmc *c, struct nn_packet *packet)
al_array_init(list->entries);
u32 inner_count = nn_packet_read_s32(packet);
for (u32 j = 0; j < inner_count; j++) {
+ u32 id = nn_packet_read_u32(packet);
struct cmc_list_entry entry;
- parse_list_entry(packet, &entry);
+ parse_list_entry(packet, &entry, id);
al_array_push(list->entries, entry);
}
al_array_push(c->lists, list);
@@ -131,8 +132,9 @@ static void client_callback(void *userdata, u8 op, void *opaque)
al_array_foreach(c->lists, i, list) {
if (al_str_eq(&list->name, &name)) {
list->current = nn_packet_read_s32(packet);
+ u32 id = nn_packet_read_u32(packet);
struct cmc_list_entry *entry = &al_array_at(list->entries, list->current);
- parse_list_entry(packet, entry);
+ parse_list_entry(packet, entry, id);
break;
}
}
@@ -142,8 +144,9 @@ static void client_callback(void *userdata, u8 op, void *opaque)
case LIANA_META_ADDED_ENTRY: {
str name;
nn_packet_read_str(packet, &name);
+ u32 id = nn_packet_read_u32(packet);
struct cmc_list_entry entry;
- parse_list_entry(packet, &entry);
+ parse_list_entry(packet, &entry, id);
struct cmc_list *list;
al_array_foreach(c->lists, i, list) {
if (al_str_eq(&list->name, &name)) {
@@ -160,11 +163,11 @@ static void client_callback(void *userdata, u8 op, void *opaque)
struct cmc_list *list;
al_array_foreach(c->lists, i, list) {
if (al_str_eq(&list->name, &name)) {
- u32 id = nn_packet_peek_u32(packet);
+ u32 id = nn_packet_read_u32(packet);
struct cmc_list_entry *entry;
al_array_foreach_ptr(list->entries, j, entry) {
if (entry->id == id) {
- parse_list_entry(packet, entry);
+ parse_list_entry(packet, entry, id);
break;
}
}