summaryrefslogtreecommitdiff
path: root/firmware/pcm.c
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-10-30 20:30:27 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-10-31 01:18:27 +0000
commitfe2d52cc7d0180acff26349f2904fba854de6fbc (patch)
tree62dbbe9a6e6ebc011e8e02f7428b8f620a83f698 /firmware/pcm.c
parent2d85c7215169780168032617603e9e7b06d7ba25 (diff)
downloadrockbox-fe2d52cc7d0180acff26349f2904fba854de6fbc.tar.gz
rockbox-fe2d52cc7d0180acff26349f2904fba854de6fbc.zip
pcm: Get rid of pcm_play_pause() and associated APIs
Nothing in the core has used it for some time. It's exported to the plugin API but the last plugins to use it were switched to the mixer API back in 2011. This allows us to get rid of pcm_play_dma_pause() from all audio drivers Change-Id: Ic3fa02592316f84963e41d792d1cabb436d1ff6b
Diffstat (limited to 'firmware/pcm.c')
-rw-r--r--firmware/pcm.c53
1 files changed, 1 insertions, 52 deletions
diff --git a/firmware/pcm.c b/firmware/pcm.c
index 640bb7830f..7a7043bef8 100644
--- a/firmware/pcm.c
+++ b/firmware/pcm.c
@@ -47,14 +47,12 @@
47 * pcm_play_dma_postinit 47 * pcm_play_dma_postinit
48 * pcm_play_dma_start 48 * pcm_play_dma_start
49 * pcm_play_dma_stop 49 * pcm_play_dma_stop
50 * pcm_play_dma_pause
51 * pcm_play_dma_get_peak_buffer 50 * pcm_play_dma_get_peak_buffer
52 * Data Read/Written within TSP - 51 * Data Read/Written within TSP -
53 * pcm_sampr (R) 52 * pcm_sampr (R)
54 * pcm_fsel (R) 53 * pcm_fsel (R)
55 * pcm_curr_sampr (R) 54 * pcm_curr_sampr (R)
56 * pcm_playing (R) 55 * pcm_playing (R)
57 * pcm_paused (R)
58 * 56 *
59 * ==Playback/Recording== 57 * ==Playback/Recording==
60 * Public - 58 * Public -
@@ -93,8 +91,6 @@ volatile pcm_status_callback_type
93 pcm_play_status_callback SHAREDBSS_ATTR = NULL; 91 pcm_play_status_callback SHAREDBSS_ATTR = NULL;
94/* PCM playback state */ 92/* PCM playback state */
95volatile bool pcm_playing SHAREDBSS_ATTR = false; 93volatile bool pcm_playing SHAREDBSS_ATTR = false;
96/* PCM paused state. paused implies playing */
97volatile bool pcm_paused SHAREDBSS_ATTR = false;
98/* samplerate of currently playing audio - undefined if stopped */ 94/* samplerate of currently playing audio - undefined if stopped */
99unsigned long pcm_curr_sampr SHAREDBSS_ATTR = 0; 95unsigned long pcm_curr_sampr SHAREDBSS_ATTR = 0;
100/* samplerate waiting to be set */ 96/* samplerate waiting to be set */
@@ -103,7 +99,6 @@ unsigned long pcm_sampr SHAREDBSS_ATTR = HW_SAMPR_DEFAULT;
103int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT; 99int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT;
104 100
105static void pcm_play_data_start_int(const void *addr, size_t size); 101static void pcm_play_data_start_int(const void *addr, size_t size);
106static void pcm_play_pause_int(bool play);
107void pcm_play_stop_int(void); 102void pcm_play_stop_int(void);
108 103
109#if !defined(HAVE_SW_VOLUME_CONTROL) || defined(PCM_SW_VOLUME_UNBUFFERED) 104#if !defined(HAVE_SW_VOLUME_CONTROL) || defined(PCM_SW_VOLUME_UNBUFFERED)
@@ -118,19 +113,6 @@ static inline void pcm_play_dma_start_int(const void *addr, size_t size)
118 pcm_play_dma_start(addr, size); 113 pcm_play_dma_start(addr, size);
119} 114}
120 115
121static inline void pcm_play_dma_pause_int(bool pause)
122{
123 if (pause || pcm_get_bytes_waiting() > 0)
124 {
125 pcm_play_dma_pause(pause);
126 }
127 else
128 {
129 logf(" no data");
130 pcm_play_data_start_int(NULL, 0);
131 }
132}
133
134static inline void pcm_play_dma_stop_int(void) 116static inline void pcm_play_dma_stop_int(void)
135{ 117{
136 pcm_play_dma_stop(); 118 pcm_play_dma_stop();
@@ -167,7 +149,6 @@ static void pcm_play_data_start_int(const void *addr, size_t size)
167 logf(" pcm_play_dma_start_int"); 149 logf(" pcm_play_dma_start_int");
168 pcm_play_dma_start_int(addr, size); 150 pcm_play_dma_start_int(addr, size);
169 pcm_playing = true; 151 pcm_playing = true;
170 pcm_paused = false;
171 } 152 }
172 else 153 else
173 { 154 {
@@ -177,22 +158,11 @@ static void pcm_play_data_start_int(const void *addr, size_t size)
177 } 158 }
178} 159}
179 160
180static void pcm_play_pause_int(bool play)
181{
182 if (play)
183 pcm_apply_settings();
184
185 logf(" pcm_play_dma_pause_int");
186 pcm_play_dma_pause_int(!play);
187 pcm_paused = !play && pcm_playing;
188}
189
190void pcm_play_stop_int(void) 161void pcm_play_stop_int(void)
191{ 162{
192 pcm_play_dma_stop_int(); 163 pcm_play_dma_stop_int();
193 pcm_callback_for_more = NULL; 164 pcm_callback_for_more = NULL;
194 pcm_play_status_callback = NULL; 165 pcm_play_status_callback = NULL;
195 pcm_paused = false;
196 pcm_playing = false; 166 pcm_playing = false;
197} 167}
198 168
@@ -282,8 +252,7 @@ void pcm_calculate_peaks(int *left, int *right)
282 int count; 252 int count;
283 const void *addr = pcm_play_dma_get_peak_buffer_int(&count); 253 const void *addr = pcm_play_dma_get_peak_buffer_int(&count);
284 254
285 pcm_do_peak_calculation(&peaks, pcm_playing && !pcm_paused, 255 pcm_do_peak_calculation(&peaks, pcm_playing, addr, count);
286 addr, count);
287 256
288 if (left) 257 if (left)
289 *left = peaks.left; 258 *left = peaks.left;
@@ -302,11 +271,6 @@ bool pcm_is_playing(void)
302 return pcm_playing; 271 return pcm_playing;
303} 272}
304 273
305bool pcm_is_paused(void)
306{
307 return pcm_paused;
308}
309
310/**************************************************************************** 274/****************************************************************************
311 * Functions that do not require targeted implementation but only a targeted 275 * Functions that do not require targeted implementation but only a targeted
312 * interface 276 * interface
@@ -358,21 +322,6 @@ void pcm_play_data(pcm_play_callback_type get_more,
358 pcm_play_unlock(); 322 pcm_play_unlock();
359} 323}
360 324
361void pcm_play_pause(bool play)
362{
363 logf("pcm_play_pause: %s", play ? "play" : "pause");
364
365 pcm_play_lock();
366
367 if (play == pcm_paused && pcm_playing)
368 {
369 logf(" pcm_play_pause_int");
370 pcm_play_pause_int(play);
371 }
372
373 pcm_play_unlock();
374}
375
376void pcm_play_stop(void) 325void pcm_play_stop(void)
377{ 326{
378 logf("pcm_play_stop"); 327 logf("pcm_play_stop");