From 197d41a3e23cab35848f623c6133baccc62aacbe Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 26 Aug 2026 17:56:52 -0400 Subject: OSD stuff and Android fixes Signed-off-by: Andrew Opalach --- src/cache/handlers/cdio.c | 9 +++++++-- src/cache/handlers/http.c | 14 ++++++++++---- src/cache/handlers/http.h | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) (limited to 'src/cache/handlers') diff --git a/src/cache/handlers/cdio.c b/src/cache/handlers/cdio.c index 8326868..90c5ce9 100644 --- a/src/cache/handlers/cdio.c +++ b/src/cache/handlers/cdio.c @@ -1,6 +1,7 @@ #define AL_LOG_SECTION "cache_cdio" //#define AL_LOG_ENABLE_TRACE #include +#include #include "../../codec/codec.h" @@ -51,9 +52,10 @@ static nn_thread_result NNWT_THREADCALL cd_read_thread(void *userdata) cdio_log_messages(cdio); al_assert(ret <= SECTORS_PER_STEP); off_t pointer = cdio->sector * CDIO_CD_FRAMESIZE_RAW; - size_t size; + size_t size = BYTES_PER_STEP; u8 *ptr = cdio->backing->get_ptr(cdio->backing, pointer, &size); al_assert(size >= BYTES_PER_STEP); + log_trace("cdio_read(), ret: %ld, size: %zu", ret, size); if (ret == SECTORS_PER_STEP) { al_memcpy(ptr, nn_buffer_get_ptr(&cdio->buffer, 0), BYTES_PER_STEP); } else if (ret == -10) { @@ -192,7 +194,10 @@ static bool open_cd_drive(struct cch_handler_cdio *cdio) struct cch_entry *cch_handler_cdio_create(void) { - struct cch_backing *backing = cch_backing_file_create(&al_str_c("/tmp/camu_cd_data"), 4096); + str tmpfile; + al_str_clone(&tmpfile, &nn_temp_directory); + nn_path_append(&tmpfile, &al_str_c("camu_cd_data")); + struct cch_backing *backing = cch_backing_file_create(&tmpfile, 4096); if (!backing) return NULL; struct cch_handler_cdio *cdio = al_alloc_object(struct cch_handler_cdio); cdio->backing = backing; diff --git a/src/cache/handlers/http.c b/src/cache/handlers/http.c index f57d3eb..4fe82e2 100644 --- a/src/cache/handlers/http.c +++ b/src/cache/handlers/http.c @@ -1,10 +1,12 @@ #define AL_LOG_SECTION "cache_http" +#define AL_LOG_ENABLE_TRACE #include +#include #include "../../codec/codec.h" #include "../backings/memory.h" -//#include "../backings/file.h" +#include "../backings/file.h" #include "../threaded_waits.h" #include "../wait.h" @@ -78,11 +80,14 @@ static void handler_http_maybe_spawn_worker(struct cch_handler *handler, size_t { struct cch_handler_http *http = (struct cch_handler_http *)handler; (void)index; - al_array_push(http->requests, (struct nn_http){ 0 }); - struct nn_http *request = &al_array_last(http->requests); + struct nn_http *request = al_alloc_object(struct nn_http); + al_array_push(http->requests, request); nn_http_init(request); nn_http_set_url(request, &http->url); nn_http_set_user_agent(request, &USER_AGENT); + if (index != 0) { + nn_http_set_range(request, index, 0); + } nn_http_request_stream(request, NNWT_HTTP_GET, http->loop, http_callback, http); log_debug("Spawning worker for %.*s.", al_str_x(&http->url)); } @@ -104,7 +109,7 @@ static void handler_http_free(struct cch_handler **handler) struct cch_handler_http *http = (struct cch_handler_http *)*handler; cch_threaded_waits_disable_all(&http->waits); struct nn_http *request; - al_array_foreach_ptr(http->requests, i, request) { + al_array_foreach(http->requests, i, request) { nn_http_close(request); } cch_threaded_waits_close(&http->waits); @@ -115,6 +120,7 @@ static void handler_http_free(struct cch_handler **handler) *handler = NULL; } + struct cch_entry *cch_handler_http_create(str *url, struct nn_event_loop *loop) { struct cch_backing *backing = cch_backing_memory_create(1024 * 128); diff --git a/src/cache/handlers/http.h b/src/cache/handlers/http.h index 93efdae..3e0bfca 100644 --- a/src/cache/handlers/http.h +++ b/src/cache/handlers/http.h @@ -14,7 +14,7 @@ struct cch_handler_http { struct nn_event_loop *loop; str url; off_t pointer; - array(struct nn_http) requests; + array(struct nn_http *) requests; struct cch_threaded_waits waits; }; -- cgit v1.2.3-101-g0448