mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-08 20:55:17 -05:00
Make PCM->driver interface about as simple as it will get. Registered callback, zero data, alignment and stops are handled entirely inside pcm.c; driver merely calls fixed pcm.c callback. Remove pcm_record_more and do it just like playback; the original reason behind it isn't very practical in general. Everything checks out on supported targets. There wer some compat changes I can't check out on many unsupoorted but if there's a problem it will be a minor oops. Plugins become incompatible due to recording tweak-- full update. Sorted API.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26253 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
6688988ec4
commit
d56999890f
19 changed files with 277 additions and 460 deletions
|
|
@ -102,11 +102,11 @@ static const void* dma_callback(void)
|
|||
{
|
||||
if (dmamode)
|
||||
{
|
||||
unsigned char *dma_start_addr;
|
||||
register pcm_more_callback_type get_more = pcm_callback_for_more;
|
||||
if (get_more)
|
||||
void *dma_start_addr;
|
||||
pcm_play_get_more_callback(&dma_start_addr, &nextsize);
|
||||
|
||||
if (nextsize != 0)
|
||||
{
|
||||
get_more(&dma_start_addr, &nextsize);
|
||||
if (nextsize >= 4096)
|
||||
{
|
||||
dblbufsize = (nextsize >> 4) & ~3;
|
||||
|
|
@ -148,7 +148,6 @@ void fiq_handler(void)
|
|||
"mov r10, #0x00000400 \n" /* INT_DMA */
|
||||
"str r10, [r11] \n" /* ACK FIQ */
|
||||
"stmfd sp!, {r0-r3,lr} \n"
|
||||
"ldreq r0, =pcm_play_dma_stopped_callback \n"
|
||||
"ldrne r0, =dma_callback \n"
|
||||
"mov lr, pc \n"
|
||||
"bx r0 \n"
|
||||
|
|
@ -225,13 +224,6 @@ void pcm_play_dma_start(const void *addr_in, size_t size)
|
|||
#endif
|
||||
|
||||
/* S3: DMA channel 0 on */
|
||||
if (!size)
|
||||
{
|
||||
register pcm_more_callback_type get_more = pcm_callback_for_more;
|
||||
if (get_more) get_more(&addr, &size);
|
||||
else return; /* Nothing to play!? */
|
||||
}
|
||||
if (!size) return; /* Nothing to play!? */
|
||||
clean_dcache();
|
||||
if (size >= 4096)
|
||||
{
|
||||
|
|
@ -367,12 +359,6 @@ void pcm_rec_unlock(void)
|
|||
{
|
||||
}
|
||||
|
||||
void pcm_rec_dma_record_more(void *start, size_t size)
|
||||
{
|
||||
(void)start;
|
||||
(void)size;
|
||||
}
|
||||
|
||||
void pcm_rec_dma_stop(void)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue