Mercurial > repos > blastem
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 |