diff options
Diffstat (limited to 'firmware/pcm.c')
-rw-r--r-- | firmware/pcm.c | 53 |
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 */ |
95 | volatile bool pcm_playing SHAREDBSS_ATTR = false; | 93 | volatile bool pcm_playing SHAREDBSS_ATTR = false; |
96 | /* PCM paused state. paused implies playing */ | ||
97 | volatile bool pcm_paused SHAREDBSS_ATTR = false; | ||
98 | /* samplerate of currently playing audio - undefined if stopped */ | 94 | /* samplerate of currently playing audio - undefined if stopped */ |
99 | unsigned long pcm_curr_sampr SHAREDBSS_ATTR = 0; | 95 | unsigned 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; | |||
103 | int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT; | 99 | int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT; |
104 | 100 | ||
105 | static void pcm_play_data_start_int(const void *addr, size_t size); | 101 | static void pcm_play_data_start_int(const void *addr, size_t size); |
106 | static void pcm_play_pause_int(bool play); | ||
107 | void pcm_play_stop_int(void); | 102 | void 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 | ||
121 | static 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 | |||
134 | static inline void pcm_play_dma_stop_int(void) | 116 | static 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 | ||
180 | static 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 | |||
190 | void pcm_play_stop_int(void) | 161 | void 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 | ||
305 | bool 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 | ||
361 | void 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 | |||
376 | void pcm_play_stop(void) | 325 | void pcm_play_stop(void) |
377 | { | 326 | { |
378 | logf("pcm_play_stop"); | 327 | logf("pcm_play_stop"); |