summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-11-11 23:20:19 -0500
committerSolomon Peachy <pizza@shaftnet.org>2020-11-12 15:59:09 +0000
commit388adff3cc4ab8584c2c99f9bc5ad7e309281d5e (patch)
tree8b05c374e6ace0ebf7c51641eff56e941de27df4
parent1a68856f52f1b6dc89863758404e54c744fcf53a (diff)
downloadrockbox-388adff3cc4ab8584c2c99f9bc5ad7e309281d5e.tar.gz
rockbox-388adff3cc4ab8584c2c99f9bc5ad7e309281d5e.zip
pcm: Further cleanup of unused bits of the PCM ACPI:
* pcm_get_bytes_remaining() * pcm_calculate_peaks() * pcm_get_peak_buffer() Nothing in-tree uses these at all (except for the lua plugin wrapper) Change-Id: I971b7beed6760250c8b1ce58f401a601e1e2d585
-rw-r--r--apps/plugin.c3
-rw-r--r--apps/plugin.h7
-rw-r--r--apps/plugins/lua/include_lua/pcm.lua2
-rw-r--r--apps/plugins/lua/rocklib.c15
-rw-r--r--docs/PLUGIN_API11
-rw-r--r--firmware/export/pcm.h4
-rw-r--r--firmware/pcm.c29
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c11
-rw-r--r--firmware/target/arm/imx233/pcm-imx233.c6
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c24
-rw-r--r--firmware/target/arm/pcm-telechips.c5
-rw-r--r--firmware/target/arm/pnx0101/pcm-pnx0101.c5
-rw-r--r--firmware/target/arm/pp/pcm-pp.c5
-rw-r--r--firmware/target/arm/rk27xx/pcm-rk27xx.c6
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c6
-rw-r--r--firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c6
-rw-r--r--firmware/target/arm/s5l8700/pcm-s5l8700.c7
-rw-r--r--firmware/target/arm/s5l8702/pcm-s5l8702.c7
-rw-r--r--firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c5
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c5
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c5
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c5
-rw-r--r--firmware/target/hosted/android/pcm-android.c5
-rw-r--r--firmware/target/hosted/ibasso/pcm-ibasso.c9
-rw-r--r--firmware/target/hosted/maemo/pcm-gstreamer.c5
-rw-r--r--firmware/target/hosted/pcm-alsa.c5
-rw-r--r--firmware/target/hosted/sdl/pcm-sdl.c5
-rw-r--r--firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c14
-rw-r--r--firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c14
29 files changed, 5 insertions, 231 deletions
diff --git a/apps/plugin.c b/apps/plugin.c
index 584fbf1ab3..ee58c870e1 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -602,9 +602,6 @@ static const struct plugin_api rockbox_api = {
602 pcm_play_stop, 602 pcm_play_stop,
603 pcm_set_frequency, 603 pcm_set_frequency,
604 pcm_is_playing, 604 pcm_is_playing,
605 pcm_get_bytes_waiting,
606 pcm_calculate_peaks,
607 pcm_get_peak_buffer,
608 pcm_play_lock, 605 pcm_play_lock,
609 pcm_play_unlock, 606 pcm_play_unlock,
610 beep_play, 607 beep_play,
diff --git a/apps/plugin.h b/apps/plugin.h
index 226a084f35..98be645134 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -155,12 +155,12 @@ int plugin_open(char *plugin, char *parameter);
155#define PLUGIN_MAGIC 0x526F634B /* RocK */ 155#define PLUGIN_MAGIC 0x526F634B /* RocK */
156 156
157/* increase this every time the api struct changes */ 157/* increase this every time the api struct changes */
158#define PLUGIN_API_VERSION 243 158#define PLUGIN_API_VERSION 244
159 159
160/* update this to latest version if a change to the api struct breaks 160/* update this to latest version if a change to the api struct breaks
161 backwards compatibility (and please take the opportunity to sort in any 161 backwards compatibility (and please take the opportunity to sort in any
162 new function which are "waiting" at the end of the function table) */ 162 new function which are "waiting" at the end of the function table) */
163#define PLUGIN_MIN_API_VERSION 243 163#define PLUGIN_MIN_API_VERSION 244
164 164
165/* 239 Marks the removal of ARCHOS HWCODEC and CHARCELL */ 165/* 239 Marks the removal of ARCHOS HWCODEC and CHARCELL */
166 166
@@ -677,9 +677,6 @@ struct plugin_api {
677 void (*pcm_play_stop)(void); 677 void (*pcm_play_stop)(void);
678 void (*pcm_set_frequency)(unsigned int frequency); 678 void (*pcm_set_frequency)(unsigned int frequency);
679 bool (*pcm_is_playing)(void); 679 bool (*pcm_is_playing)(void);
680 size_t (*pcm_get_bytes_waiting)(void);
681 void (*pcm_calculate_peaks)(int *left, int *right);
682 const void* (*pcm_get_peak_buffer)(int *count);
683 void (*pcm_play_lock)(void); 680 void (*pcm_play_lock)(void);
684 void (*pcm_play_unlock)(void); 681 void (*pcm_play_unlock)(void);
685 void (*beep_play)(unsigned int frequency, unsigned int duration, 682 void (*beep_play)(unsigned int frequency, unsigned int duration,
diff --git a/apps/plugins/lua/include_lua/pcm.lua b/apps/plugins/lua/include_lua/pcm.lua
index 46cc5b0720..299f7730e9 100644
--- a/apps/plugins/lua/include_lua/pcm.lua
+++ b/apps/plugins/lua/include_lua/pcm.lua
@@ -30,5 +30,3 @@ rb.pcm_play_stop = function() rb.pcm("play_stop") end
30rb.pcm_play_lock = function() rb.pcm("play_lock") end 30rb.pcm_play_lock = function() rb.pcm("play_lock") end
31rb.pcm_play_unlock = function() rb.pcm("play_unlock") end 31rb.pcm_play_unlock = function() rb.pcm("play_unlock") end
32rb.pcm_is_playing = function() return rb.pcm("is_playing") end 32rb.pcm_is_playing = function() return rb.pcm("is_playing") end
33rb.pcm_calculate_peaks = function() return rb.pcm("calculate_peaks") end
34rb.pcm_get_bytes_waiting = function() return rb.pcm("get_bytes_waiting") end
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c
index 6219bb2e5a..81b6f4ce2a 100644
--- a/apps/plugins/lua/rocklib.c
+++ b/apps/plugins/lua/rocklib.c
@@ -521,14 +521,12 @@ RB_WRAP(pcm)
521{ 521{
522 enum e_pcm {PCM_APPLYSETTINGS = 0, PCM_ISPLAYING, 522 enum e_pcm {PCM_APPLYSETTINGS = 0, PCM_ISPLAYING,
523 PCM_PLAYSTOP, PCM_PLAYLOCK, PCM_PLAYUNLOCK, 523 PCM_PLAYSTOP, PCM_PLAYLOCK, PCM_PLAYUNLOCK,
524 PCM_CALCULATEPEAKS, PCM_SETFREQUENCY, PCM_GETBYTESWAITING, PCM_ECOUNT}; 524 PCM_SETFREQUENCY, PCM_ECOUNT};
525 525
526 const char *pcm_option[] = {"apply_settings", "is_playing", 526 const char *pcm_option[] = {"apply_settings", "is_playing",
527 "play_stop", "play_lock", "play_unlock", 527 "play_stop", "play_lock", "play_unlock",
528 "calculate_peaks", "set_frequency", "get_bytes_waiting", NULL}; 528 "set_frequency", NULL};
529 bool b_result; 529 bool b_result;
530 int left, right;
531 size_t byteswait;
532 530
533 lua_pushnil(L); /*push nil so options w/o return have something to return */ 531 lua_pushnil(L); /*push nil so options w/o return have something to return */
534 532
@@ -551,18 +549,9 @@ RB_WRAP(pcm)
551 case PCM_PLAYUNLOCK: 549 case PCM_PLAYUNLOCK:
552 rb->pcm_play_unlock(); 550 rb->pcm_play_unlock();
553 break; 551 break;
554 case PCM_CALCULATEPEAKS:
555 rb->pcm_calculate_peaks(&left, &right);
556 lua_pushinteger(L, left);
557 lua_pushinteger(L, right);
558 return 2;
559 case PCM_SETFREQUENCY: 552 case PCM_SETFREQUENCY:
560 rb->pcm_set_frequency((unsigned int) luaL_checkint(L, 2)); 553 rb->pcm_set_frequency((unsigned int) luaL_checkint(L, 2));
561 break; 554 break;
562 case PCM_GETBYTESWAITING:
563 byteswait = rb->pcm_get_bytes_waiting();
564 lua_pushinteger(L, byteswait);
565 break;
566 } 555 }
567 556
568 yield(); 557 yield();
diff --git a/docs/PLUGIN_API b/docs/PLUGIN_API
index b77d25a4b9..364044ab12 100644
--- a/docs/PLUGIN_API
+++ b/docs/PLUGIN_API
@@ -1402,12 +1402,6 @@ void pcm_apply_settings(void)
1402 \group sound 1402 \group sound
1403 \description 1403 \description
1404 1404
1405void pcm_calculate_peaks(int *left, int *right)
1406 \group sound
1407 \param left
1408 \param right
1409 \description
1410
1411void pcm_calculate_rec_peaks(int *left, int *right) 1405void pcm_calculate_rec_peaks(int *left, int *right)
1412 \group sound 1406 \group sound
1413 \conditions defined(HAVE_RECORDING) 1407 \conditions defined(HAVE_RECORDING)
@@ -1420,11 +1414,6 @@ void pcm_close_recording(void)
1420 \conditions defined(HAVE_RECORDING) 1414 \conditions defined(HAVE_RECORDING)
1421 \description 1415 \description
1422 1416
1423size_t pcm_get_bytes_waiting(void)
1424 \group sound
1425 \return
1426 \description
1427
1428void pcm_init_recording(void) 1417void pcm_init_recording(void)
1429 \group sound 1418 \group sound
1430 \conditions defined(HAVE_RECORDING) 1419 \conditions defined(HAVE_RECORDING)
diff --git a/firmware/export/pcm.h b/firmware/export/pcm.h
index 61e11ef801..36a752352a 100644
--- a/firmware/export/pcm.h
+++ b/firmware/export/pcm.h
@@ -85,10 +85,6 @@ struct pcm_peaks
85 long tick; /* Last tick called */ 85 long tick; /* Last tick called */
86}; 86};
87 87
88void pcm_calculate_peaks(int *left, int *right);
89const void* pcm_get_peak_buffer(int* count);
90size_t pcm_get_bytes_waiting(void);
91
92void pcm_play_stop(void); 88void pcm_play_stop(void);
93bool pcm_is_playing(void); 89bool pcm_is_playing(void);
94 90
diff --git a/firmware/pcm.c b/firmware/pcm.c
index 7a7043bef8..6fc0b626f7 100644
--- a/firmware/pcm.c
+++ b/firmware/pcm.c
@@ -37,7 +37,6 @@
37 * ==Playback== 37 * ==Playback==
38 * Public - 38 * Public -
39 * pcm_postinit 39 * pcm_postinit
40 * pcm_get_bytes_waiting
41 * pcm_play_lock 40 * pcm_play_lock
42 * pcm_play_unlock 41 * pcm_play_unlock
43 * Semi-private - 42 * Semi-private -
@@ -47,7 +46,6 @@
47 * pcm_play_dma_postinit 46 * pcm_play_dma_postinit
48 * pcm_play_dma_start 47 * pcm_play_dma_start
49 * pcm_play_dma_stop 48 * pcm_play_dma_stop
50 * pcm_play_dma_get_peak_buffer
51 * Data Read/Written within TSP - 49 * Data Read/Written within TSP -
52 * pcm_sampr (R) 50 * pcm_sampr (R)
53 * pcm_fsel (R) 51 * pcm_fsel (R)
@@ -118,11 +116,6 @@ static inline void pcm_play_dma_stop_int(void)
118 pcm_play_dma_stop(); 116 pcm_play_dma_stop();
119} 117}
120 118
121static inline const void * pcm_play_dma_get_peak_buffer_int(int *count)
122{
123 return pcm_play_dma_get_peak_buffer(count);
124}
125
126bool pcm_play_dma_complete_callback(enum pcm_dma_status status, 119bool pcm_play_dma_complete_callback(enum pcm_dma_status status,
127 const void **addr, size_t *size) 120 const void **addr, size_t *size)
128{ 121{
@@ -244,28 +237,6 @@ void pcm_do_peak_calculation(struct pcm_peaks *peaks, bool active,
244 } 237 }
245} 238}
246 239
247void pcm_calculate_peaks(int *left, int *right)
248{
249 /* peak data for the global peak values - i.e. what the final output is */
250 static struct pcm_peaks peaks;
251
252 int count;
253 const void *addr = pcm_play_dma_get_peak_buffer_int(&count);
254
255 pcm_do_peak_calculation(&peaks, pcm_playing, addr, count);
256
257 if (left)
258 *left = peaks.left;
259
260 if (right)
261 *right = peaks.right;
262}
263
264const void * pcm_get_peak_buffer(int *count)
265{
266 return pcm_play_dma_get_peak_buffer_int(count);
267}
268
269bool pcm_is_playing(void) 240bool pcm_is_playing(void)
270{ 241{
271 return pcm_playing; 242 return pcm_playing;
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index 90b6aabd7c..dfbda388be 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -200,17 +200,6 @@ void pcm_dma_apply_settings(void)
200 0x01ffffff); 200 0x01ffffff);
201} 201}
202 202
203size_t pcm_get_bytes_waiting(void)
204{
205 int oldstatus = disable_irq_save();
206 size_t addr = DMAC_CH_SRC_ADDR(0);
207 size_t start_addr = (size_t)dma_start_addr;
208 size_t start_size = dma_start_size;
209 restore_interrupt(oldstatus);
210
211 return start_size - addr + start_addr;
212}
213
214const void * pcm_play_dma_get_peak_buffer(int *count) 203const void * pcm_play_dma_get_peak_buffer(int *count)
215{ 204{
216 int oldstatus = disable_irq_save(); 205 int oldstatus = disable_irq_save();
diff --git a/firmware/target/arm/imx233/pcm-imx233.c b/firmware/target/arm/imx233/pcm-imx233.c
index 7e20a7ce68..c06120e4aa 100644
--- a/firmware/target/arm/imx233/pcm-imx233.c
+++ b/firmware/target/arm/imx233/pcm-imx233.c
@@ -175,12 +175,6 @@ void pcm_dma_apply_settings(void)
175 pcm_play_unlock(); 175 pcm_play_unlock();
176} 176}
177 177
178size_t pcm_get_bytes_waiting(void)
179{
180 struct imx233_dma_info_t info = imx233_dma_get_info(APB_AUDIO_DAC, DMA_INFO_AHB_BYTES);
181 return info.ahb_bytes;
182}
183
184const void *pcm_play_dma_get_peak_buffer(int *count) 178const void *pcm_play_dma_get_peak_buffer(int *count)
185{ 179{
186 if(!dac_freezed) 180 if(!dac_freezed)
diff --git a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
index 72d8e4a021..13dff6ecb5 100644
--- a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
@@ -224,30 +224,6 @@ void pcm_play_dma_stop(void)
224 play_stop_pcm(); 224 play_stop_pcm();
225} 225}
226 226
227/* Return the number of bytes waiting - full L-R sample pairs only */
228size_t pcm_get_bytes_waiting(void)
229{
230 static unsigned long dsa NOCACHEBSS_ATTR;
231 long offs, size;
232 int oldstatus;
233
234 /* read burst dma source address register in channel context */
235 sdma_read_words(&dsa, CHANNEL_CONTEXT_ADDR(DMA_PLAY_CH_NUM)+0x0b, 1);
236
237 oldstatus = disable_irq_save();
238 offs = dsa - (unsigned long)dma_play_bd.buf_addr;
239 size = dma_play_bd.mode.count;
240 restore_irq(oldstatus);
241
242 /* Be addresses are coherent (no buffer change during read) */
243 if (offs >= 0 && offs < size)
244 {
245 return (size - offs) & ~3;
246 }
247
248 return 0;
249}
250
251/* Return a pointer to the samples and the number of them in *count */ 227/* Return a pointer to the samples and the number of them in *count */
252const void * pcm_play_dma_get_peak_buffer(int *count) 228const void * pcm_play_dma_get_peak_buffer(int *count)
253{ 229{
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c
index 9c64b58594..68bae1b0a9 100644
--- a/firmware/target/arm/pcm-telechips.c
+++ b/firmware/target/arm/pcm-telechips.c
@@ -194,11 +194,6 @@ void pcm_play_unlock(void)
194 restore_fiq(status); 194 restore_fiq(status);
195} 195}
196 196
197size_t pcm_get_bytes_waiting(void)
198{
199 return dma_play_data.size & ~3;
200}
201
202#ifdef HAVE_RECORDING 197#ifdef HAVE_RECORDING
203/* TODO: implement */ 198/* TODO: implement */
204void pcm_rec_dma_init(void) 199void pcm_rec_dma_init(void)
diff --git a/firmware/target/arm/pnx0101/pcm-pnx0101.c b/firmware/target/arm/pnx0101/pcm-pnx0101.c
index 01ead4723b..6099dcb7ef 100644
--- a/firmware/target/arm/pnx0101/pcm-pnx0101.c
+++ b/firmware/target/arm/pnx0101/pcm-pnx0101.c
@@ -192,11 +192,6 @@ void pcm_dma_apply_settings(void)
192{ 192{
193} 193}
194 194
195size_t pcm_get_bytes_waiting(void)
196{
197 return p_size & ~3;
198}
199
200const void * pcm_play_dma_get_peak_buffer(int *count) 195const void * pcm_play_dma_get_peak_buffer(int *count)
201{ 196{
202 unsigned long addr = (unsigned long)p; 197 unsigned long addr = (unsigned long)p;
diff --git a/firmware/target/arm/pp/pcm-pp.c b/firmware/target/arm/pp/pcm-pp.c
index 91d567ee83..8434123a92 100644
--- a/firmware/target/arm/pp/pcm-pp.c
+++ b/firmware/target/arm/pp/pcm-pp.c
@@ -497,11 +497,6 @@ void pcm_play_dma_stop(void)
497#endif 497#endif
498} 498}
499 499
500size_t pcm_get_bytes_waiting(void)
501{
502 return dma_play_data.size & ~3;
503}
504
505void pcm_play_dma_init(void) 500void pcm_play_dma_init(void)
506{ 501{
507 /* Initialize default register values. */ 502 /* Initialize default register values. */
diff --git a/firmware/target/arm/rk27xx/pcm-rk27xx.c b/firmware/target/arm/rk27xx/pcm-rk27xx.c
index 5cfe54f9de..c0b4c45805 100644
--- a/firmware/target/arm/rk27xx/pcm-rk27xx.c
+++ b/firmware/target/arm/rk27xx/pcm-rk27xx.c
@@ -250,12 +250,6 @@ void pcm_dma_apply_settings(void)
250 audiohw_set_frequency(pcm_fsel); 250 audiohw_set_frequency(pcm_fsel);
251} 251}
252 252
253size_t pcm_get_bytes_waiting(void)
254{
255 /* current terminate count is in transfer size units (4bytes here) */
256 return (HDMA_CCNT0 & 0xffff)<<2;
257}
258
259/* audio DMA ISR called when chunk from callers buffer has been transfered */ 253/* audio DMA ISR called when chunk from callers buffer has been transfered */
260void INT_HDMA(void) 254void INT_HDMA(void)
261{ 255{
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
index da5dc9cdd5..d784180e77 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
@@ -220,12 +220,6 @@ void fiq_handler(void)
220 pcm_play_dma_status_callback(PCM_DMAST_STARTED); 220 pcm_play_dma_status_callback(PCM_DMAST_STARTED);
221} 221}
222 222
223size_t pcm_get_bytes_waiting(void)
224{
225 /* lie a little and only return full pairs */
226 return (DSTAT2 & 0xFFFFE) * 2;
227}
228
229const void * pcm_play_dma_get_peak_buffer(int *count) 223const void * pcm_play_dma_get_peak_buffer(int *count)
230{ 224{
231 unsigned long addr = DCSRC2; 225 unsigned long addr = DCSRC2;
diff --git a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
index dbb1a06809..9574522586 100644
--- a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
+++ b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
@@ -260,12 +260,6 @@ void fiq_handler(void)
260 pcm_play_dma_status_callback(PCM_DMAST_STARTED); 260 pcm_play_dma_status_callback(PCM_DMAST_STARTED);
261} 261}
262 262
263size_t pcm_get_bytes_waiting(void)
264{
265 /* lie a little and only return full pairs */
266 return (DSTAT2 & 0xFFFFE) * 2;
267}
268
269const void * pcm_play_dma_get_peak_buffer(int *count) 263const void * pcm_play_dma_get_peak_buffer(int *count)
270{ 264{
271 unsigned long addr = DCSRC2; 265 unsigned long addr = DCSRC2;
diff --git a/firmware/target/arm/s5l8700/pcm-s5l8700.c b/firmware/target/arm/s5l8700/pcm-s5l8700.c
index 47525611ee..050e14451d 100644
--- a/firmware/target/arm/s5l8700/pcm-s5l8700.c
+++ b/firmware/target/arm/s5l8700/pcm-s5l8700.c
@@ -259,12 +259,7 @@ void pcm_play_dma_postinit(void)
259/* set the configured PCM frequency */ 259/* set the configured PCM frequency */
260void pcm_dma_apply_settings(void) 260void pcm_dma_apply_settings(void)
261{ 261{
262 pcm_dma_set_freq(pcm_fsel); 262 pcm_dma_set_freq(pcm_fsel);
263}
264
265size_t pcm_get_bytes_waiting(void)
266{
267 return (nextsize + DMACTCNT0 + 2) << 1;
268} 263}
269 264
270const void * pcm_play_dma_get_peak_buffer(int *count) 265const void * pcm_play_dma_get_peak_buffer(int *count)
diff --git a/firmware/target/arm/s5l8702/pcm-s5l8702.c b/firmware/target/arm/s5l8702/pcm-s5l8702.c
index a62a7243a2..33fe637770 100644
--- a/firmware/target/arm/s5l8702/pcm-s5l8702.c
+++ b/firmware/target/arm/s5l8702/pcm-s5l8702.c
@@ -216,13 +216,6 @@ void pcm_play_dma_postinit(void)
216 audiohw_postinit(); 216 audiohw_postinit();
217} 217}
218 218
219size_t pcm_get_bytes_waiting(void)
220{
221 size_t total_bytes;
222 dmac_ch_get_info(&dma_play_ch, NULL, &total_bytes);
223 return total_bytes;
224}
225
226const void* pcm_play_dma_get_peak_buffer(int *count) 219const void* pcm_play_dma_get_peak_buffer(int *count)
227{ 220{
228 void *addr = dmac_ch_get_info(&dma_play_ch, count, NULL); 221 void *addr = dmac_ch_get_info(&dma_play_ch, count, NULL);
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
index f31185c2ea..d5e30ad73b 100644
--- a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
+++ b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
@@ -84,8 +84,3 @@ void pcm_play_unlock(void)
84{ 84{
85 85
86} 86}
87
88size_t pcm_get_bytes_waiting(void)
89{
90 return 0;
91}
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
index 0d7bcbab37..5ce5a8f399 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
@@ -120,11 +120,6 @@ void pcm_play_unlock(void)
120 120
121} 121}
122 122
123size_t pcm_get_bytes_waiting(void)
124{
125 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
126}
127
128/* Only used when debugging */ 123/* Only used when debugging */
129static char buffer[80]; 124static char buffer[80];
130 125
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
index c2932fd762..f9f19a8045 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
@@ -127,11 +127,6 @@ void pcm_play_unlock(void)
127 127
128} 128}
129 129
130size_t pcm_get_bytes_waiting(void)
131{
132 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
133}
134
135/* Only used when debugging */ 130/* Only used when debugging */
136static char buffer[80]; 131static char buffer[80];
137 132
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index 10f9ea931f..c45219297c 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -264,11 +264,6 @@ void pcm_play_dma_stop(void)
264 dma_play_lock.state = (1 << 14); 264 dma_play_lock.state = (1 << 14);
265} /* pcm_play_dma_stop */ 265} /* pcm_play_dma_stop */
266 266
267size_t pcm_get_bytes_waiting(void)
268{
269 return BCR0 & 0xffffff;
270} /* pcm_get_bytes_waiting */
271
272/* DMA0 Interrupt is called when the DMA has finished transfering a chunk 267/* DMA0 Interrupt is called when the DMA has finished transfering a chunk
273 from the caller's buffer */ 268 from the caller's buffer */
274void DMA0(void) __attribute__ ((interrupt_handler, section(".icode"))); 269void DMA0(void) __attribute__ ((interrupt_handler, section(".icode")));
diff --git a/firmware/target/hosted/android/pcm-android.c b/firmware/target/hosted/android/pcm-android.c
index 4577c8078a..b078f92698 100644
--- a/firmware/target/hosted/android/pcm-android.c
+++ b/firmware/target/hosted/android/pcm-android.c
@@ -171,11 +171,6 @@ void pcm_play_dma_stop(void)
171 stop_method); 171 stop_method);
172} 172}
173 173
174size_t pcm_get_bytes_waiting(void)
175{
176 return pcm_data_size;
177}
178
179const void * pcm_play_dma_get_peak_buffer(int *count) 174const void * pcm_play_dma_get_peak_buffer(int *count)
180{ 175{
181 uintptr_t addr = (uintptr_t)pcm_data_start; 176 uintptr_t addr = (uintptr_t)pcm_data_start;
diff --git a/firmware/target/hosted/ibasso/pcm-ibasso.c b/firmware/target/hosted/ibasso/pcm-ibasso.c
index edfdc6d592..e31732431b 100644
--- a/firmware/target/hosted/ibasso/pcm-ibasso.c
+++ b/firmware/target/hosted/ibasso/pcm-ibasso.c
@@ -439,15 +439,6 @@ void pcm_dma_apply_settings(void)
439 } 439 }
440} 440}
441 441
442
443size_t pcm_get_bytes_waiting(void)
444{
445 TRACE;
446
447 return _pcm_buffer_size;
448}
449
450
451/* TODO: WTF */ 442/* TODO: WTF */
452const void* pcm_play_dma_get_peak_buffer(int* count) 443const void* pcm_play_dma_get_peak_buffer(int* count)
453{ 444{
diff --git a/firmware/target/hosted/maemo/pcm-gstreamer.c b/firmware/target/hosted/maemo/pcm-gstreamer.c
index 7c864738ef..e2d57f9fab 100644
--- a/firmware/target/hosted/maemo/pcm-gstreamer.c
+++ b/firmware/target/hosted/maemo/pcm-gstreamer.c
@@ -154,11 +154,6 @@ void pcm_play_dma_stop(void)
154 gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); 154 gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL);
155} 155}
156 156
157size_t pcm_get_bytes_waiting(void)
158{
159 return pcm_data_size;
160}
161
162static void feed_data(GstElement * appsrc, guint size_hint, void *unused) 157static void feed_data(GstElement * appsrc, guint size_hint, void *unused)
163{ 158{
164 (void)size_hint; 159 (void)size_hint;
diff --git a/firmware/target/hosted/pcm-alsa.c b/firmware/target/hosted/pcm-alsa.c
index 970abc78cf..14e1c4cd3e 100644
--- a/firmware/target/hosted/pcm-alsa.c
+++ b/firmware/target/hosted/pcm-alsa.c
@@ -735,11 +735,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
735 } 735 }
736} 736}
737 737
738size_t pcm_get_bytes_waiting(void)
739{
740 return pcm_size;
741}
742
743const void * pcm_play_dma_get_peak_buffer(int *count) 738const void * pcm_play_dma_get_peak_buffer(int *count)
744{ 739{
745 uintptr_t addr = (uintptr_t)pcm_data; 740 uintptr_t addr = (uintptr_t)pcm_data;
diff --git a/firmware/target/hosted/sdl/pcm-sdl.c b/firmware/target/hosted/sdl/pcm-sdl.c
index ba43ece543..7297e94340 100644
--- a/firmware/target/hosted/sdl/pcm-sdl.c
+++ b/firmware/target/hosted/sdl/pcm-sdl.c
@@ -124,11 +124,6 @@ void pcm_play_dma_stop(void)
124#endif 124#endif
125} 125}
126 126
127size_t pcm_get_bytes_waiting(void)
128{
129 return pcm_data_size;
130}
131
132static void write_to_soundcard(struct pcm_udata *udata) 127static void write_to_soundcard(struct pcm_udata *udata)
133{ 128{
134#ifdef DEBUG 129#ifdef DEBUG
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
index 1ce0b5ad5f..83325e09ef 100644
--- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
@@ -203,20 +203,6 @@ static int get_dma_count(void)
203 return count; 203 return count;
204} 204}
205 205
206size_t pcm_get_bytes_waiting(void)
207{
208 int bytes, flags = disable_irq_save();
209
210 if(REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) & DMAC_DCCSR_EN)
211 bytes = get_dma_count() & ~3;
212 else
213 bytes = 0;
214
215 restore_irq(flags);
216
217 return bytes;
218}
219
220const void * pcm_play_dma_get_peak_buffer(int *count) 206const void * pcm_play_dma_get_peak_buffer(int *count)
221{ 207{
222 int flags = disable_irq_save(); 208 int flags = disable_irq_save();
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
index 4a4f3020bb..401d568a97 100644
--- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
+++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
@@ -192,20 +192,6 @@ static int get_dma_count(void)
192 return count; 192 return count;
193} 193}
194 194
195size_t pcm_get_bytes_waiting(void)
196{
197 int bytes, flags = disable_irq_save();
198
199 if(REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) & DMAC_DCCSR_EN)
200 bytes = get_dma_count() & ~3;
201 else
202 bytes = 0;
203
204 restore_irq(flags);
205
206 return bytes;
207}
208
209const void * pcm_play_dma_get_peak_buffer(int *count) 195const void * pcm_play_dma_get_peak_buffer(int *count)
210{ 196{
211 int flags = disable_irq_save(); 197 int flags = disable_irq_save();