comparison pico_pcm.c @ 2486:e8eba0cd5444

Implement turbo/slow for Pico and Copera
author Michael Pavone <pavone@retrodev.com>
date Sun, 14 Apr 2024 12:30:32 -0700
parents f50b9ed42ebd
children
comparison
equal deleted inserted replaced
2485:59a299610662 2486:e8eba0cd5444
21 pcm->ctrl |= PCM_BUSY; 21 pcm->ctrl |= PCM_BUSY;
22 } 22 }
23 23
24 void pico_pcm_init(pico_pcm *pcm, uint32_t master_clock, uint32_t divider) 24 void pico_pcm_init(pico_pcm *pcm, uint32_t master_clock, uint32_t divider)
25 { 25 {
26 pcm->audio = render_audio_source("PICO ADPCM", master_clock, divider * 4, 1); 26 pcm->clock_inc = divider * 4;
27 pcm->audio = render_audio_source("PICO ADPCM", master_clock, pcm->clock_inc, 1);
27 pcm->scope = NULL; 28 pcm->scope = NULL;
28 pcm->scope_channel = 0; 29 pcm->scope_channel = 0;
29 pcm->clock_inc = divider * 4;
30 pico_pcm_reset(pcm); 30 pico_pcm_reset(pcm);
31 } 31 }
32 32
33 void pico_pcm_free(pico_pcm *pcm) 33 void pico_pcm_free(pico_pcm *pcm)
34 { 34 {
35 render_free_source(pcm->audio); 35 render_free_source(pcm->audio);
36 }
37
38 void pico_pcm_adjust_master_clock(pico_pcm *pcm, uint32_t master_clock)
39 {
40 render_audio_adjust_clock(pcm->audio, master_clock, pcm->clock_inc);
36 } 41 }
37 42
38 void pico_pcm_enable_scope(pico_pcm *pcm, oscilloscope *scope, uint32_t master_clock) 43 void pico_pcm_enable_scope(pico_pcm *pcm, oscilloscope *scope, uint32_t master_clock)
39 { 44 {
40 #ifndef IS_LIB 45 #ifndef IS_LIB