diff options
| author | 2024-11-08 14:53:40 -0500 | |
|---|---|---|
| committer | 2024-11-08 14:53:40 -0500 | |
| commit | 5e3641e5e692c3f2f644a4bb809c88727cb8bee9 (patch) | |
| tree | fbac2007fdcebda13406350fdcef977910427078 /src/liana/handlers | |
| parent | f56abfafcd4fa722b807278b138f805112cd953e (diff) | |
| download | camu-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/liana/handlers')
| -rw-r--r-- | src/liana/handlers/cdio_server.c | 12 |
1 files changed, 9 insertions, 3 deletions
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) |