From cf3c7040143ad5eaaeae3dedc4cd25bbe90a740f Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Fri, 3 Mar 2023 23:55:24 +0000 Subject: [PATCH 1/4] sdl: don't declare the audio callback ... and make it static, it's not used outside Audio.cpp --- 32blit-sdl/Audio.cpp | 6 ++++-- 32blit-sdl/Audio.hpp | 3 --- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/32blit-sdl/Audio.cpp b/32blit-sdl/Audio.cpp index 49ff6b6f5..38dab6702 100644 --- a/32blit-sdl/Audio.cpp +++ b/32blit-sdl/Audio.cpp @@ -9,6 +9,8 @@ blit::AudioChannel channels[CHANNEL_COUNT]; +static void _audio_callback(void *userdata, uint8_t *stream, int len); + Audio::Audio() { blit::api.channels = channels; @@ -35,7 +37,7 @@ Audio::~Audio() { SDL_CloseAudioDevice(audio_device); } -void _audio_bufferfill(short *buffer, int buffer_size){ +static void _audio_bufferfill(short *buffer, int buffer_size){ memset(buffer, 0, buffer_size); for(auto sample = 0; sample < buffer_size; sample++){ @@ -43,6 +45,6 @@ void _audio_bufferfill(short *buffer, int buffer_size){ } } -void _audio_callback(void *userdata, uint8_t *stream, int len){ +static void _audio_callback(void *userdata, uint8_t *stream, int len){ _audio_bufferfill((short *)stream, len / 2); } diff --git a/32blit-sdl/Audio.hpp b/32blit-sdl/Audio.hpp index 9efed2e26..0f01037fe 100644 --- a/32blit-sdl/Audio.hpp +++ b/32blit-sdl/Audio.hpp @@ -8,6 +8,3 @@ class Audio { SDL_AudioDeviceID audio_device; }; - -void _audio_bufferfill(short *pBuffer, int pBufferSize); -void _audio_callback(void *userdata, uint8_t *stream, int len); From 5c35978b364aa3d6d405208036c94792689e7d62 Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Wed, 8 Mar 2023 11:39:19 +0000 Subject: [PATCH 2/4] pico: call render through blit::render for scanvideo --- 32blit-pico/display_scanvideo.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/32blit-pico/display_scanvideo.cpp b/32blit-pico/display_scanvideo.cpp index 00982028d..f2ddf5878 100644 --- a/32blit-pico/display_scanvideo.cpp +++ b/32blit-pico/display_scanvideo.cpp @@ -13,9 +13,6 @@ static volatile int buf_index = 0; static volatile bool do_render = true; -// user render function -void render(uint32_t); - static bool do_render_soon = false; // slightly delayed to handle the queue static void fill_scanline_buffer(struct scanvideo_scanline_buffer *buffer) { From afeef3795b2f4ffdfd87d56273c054b504d3a7fb Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Tue, 14 Mar 2023 17:06:41 +0000 Subject: [PATCH 3/4] pico: reduce size of i2s silence buffer Appears to be the only thing this #define is used for. --- 32blit-pico/board/vgaboard/config.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/32blit-pico/board/vgaboard/config.cmake b/32blit-pico/board/vgaboard/config.cmake index 4dea17220..7b3463b50 100644 --- a/32blit-pico/board/vgaboard/config.cmake +++ b/32blit-pico/board/vgaboard/config.cmake @@ -1,6 +1,7 @@ set(BLIT_BOARD_NAME "VGA Board") set(BLIT_BOARD_DEFINITIONS + PICO_AUDIO_I2S_BUFFER_SAMPLE_LENGTH=256 PICO_SCANVIDEO_PLANE1_VARIABLE_FRAGMENT_DMA=1 PICO_SCANVIDEO_MAX_SCANLINE_BUFFER_WORDS=12 ) From 77e445686ffda40bfee79b12a3a8d4cd9284c315 Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Wed, 15 Mar 2023 13:22:28 +0000 Subject: [PATCH 4/4] pico: do puts manually for debug api fputs semms to allocate ~1.4k the first time it's used, puts would add a newline... so do it manually --- 32blit-pico/main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/32blit-pico/main.cpp b/32blit-pico/main.cpp index e744fce85..018ec44b4 100644 --- a/32blit-pico/main.cpp +++ b/32blit-pico/main.cpp @@ -32,7 +32,9 @@ static uint32_t random() { } static void debug(const char *message) { - fputs(message, stdout); + auto p = message; + while(*p) + putchar(*p++); usb_debug(message); }