From 5e3641e5e692c3f2f644a4bb809c88727cb8bee9 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Fri, 8 Nov 2024 14:53:40 -0500 Subject: 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 --- src/liana/handlers/cdio_server.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/liana/handlers') diff --git a/src/liana/handlers/cdio_server.c b/src/liana/handlers/cdio_server.c index 118f6b5..d271829 100644 --- a/src/liana/handlers/cdio_server.c +++ b/src/liana/handlers/cdio_server.c @@ -45,14 +45,20 @@ static void cdio_server_subscribe(struct lia_server_handler *handler, s32 mask) static u64 cdio_server_get_duration(struct lia_server_handler *handler) { - (void)handler; - return 0; + struct lia_cdio_server *cdio = (struct lia_cdio_server *)handler; + struct cch_chapter *first = &al_array_at(cdio->handle->entry->chapters, 0); + struct cch_chapter *last = &al_array_last(cdio->handle->entry->chapters); + f64 seconds = camu_audio_format_bytes_to_sec(&cdio->fmt, (last->end - first->start) * CDIO_CD_FRAMESIZE_RAW); + al_log_info("cdio", "Length: %.2fs.", seconds); + return (u64)(seconds * 1000000.0); } static bool cdio_server_seek(struct lia_server_handler *handler, u64 pos) { struct lia_cdio_server *cdio = (struct lia_cdio_server *)handler; - return cch_handle_seek(cdio->handle, pos, SEEK_SET); + (void)cdio; + (void)pos; + return false; } static void cdio_server_step(struct lia_server_handler *handler) -- cgit v1.2.3-101-g0448