Michael Sevakis
cd8e11b463
Tweak some PCM drivers for less typecasting with the data pointer.
...
Yeah, sizeof (void) here with GCC is 1. If something has a problem
with that, we'll set it straight.
Change-Id: I9ad3eee75dd440f6404a04a501d1533c8bc18ba9
2012-03-04 08:52:50 -05:00
Michael Sevakis
286a4c5caa
Revise the PCM callback system after adding multichannel audio.
...
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording uses "void **addr".
"const" is put in place throughout where appropriate.
Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.
Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Michael Sevakis
09769827fe
Swap red and yellow for green on r31339's cranky builds.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31340 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 07:54:00 +00:00
Michael Sevakis
4db3e89652
Shuffle some functions around so that interfacing with playback.c in particular isn't required. Though playback does finish the audio init, pcm doesn't care who does it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30403 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 12:15:43 +00:00
Michael Sevakis
a2b6703a36
Commit FS#12150 - Fully-functional audio mixer - and finally whip old limitations about playback of voice and other sounds when paused. Channels are independent in state and amplitude. Fade on stop/pause is handled by the channel's volume control rather than global volume which means it now works from anywhere. Opens up the possibility of plugin sounds during music playback by merely adding an additional channel enum. If any PCM drivers were not properly modified, see one of the last comments in the task for a description of the simple change that is expected. Some params are tunable in firmware/export/pcm-mixer.h as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30097 a1c6a512-1295-4272-9138-f99709370657
2011-06-29 06:37:04 +00:00
Andree Buschmann
ba64cf697e
Move pcm doublebuffer to IRAM on nano 2G.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28600 a1c6a512-1295-4272-9138-f99709370657
2010-11-14 19:49:20 +00:00
Michael Sparmann
b491421c5a
iPod Nano 2G: Fix I2S clocking. All sampling rates should work now.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28581 a1c6a512-1295-4272-9138-f99709370657
2010-11-14 04:46:38 +00:00
Michael Sparmann
23fd886c4f
iPod Nano 2G: Finally FIQ-less and glitch-free PCM. This should allow for IRQ latencies high enough to allow re-locking PLLs and changing and stabilizing Vcore when switching CPU frequency.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28580 a1c6a512-1295-4272-9138-f99709370657
2010-11-13 21:08:15 +00:00
Bertrik Sikken
446445e916
ipod nano 2g: make functions/variables static where possible, add missing #includes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27752 a1c6a512-1295-4272-9138-f99709370657
2010-08-08 10:49:32 +00:00
Michael Sparmann
f2e048493e
Remove an unneccessary long call from the S5L8700 PCM FIQ handler
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26781 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 16:20:46 +00:00
Michael Sevakis
9a2b1d612c
s5l8700 PCM: Always call dma_callback. (fix r26253 remnants)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26775 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 13:11:00 +00:00
Michael Sevakis
d56999890f
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
2010-05-24 16:42:32 +00:00
Michael Sevakis
4d04132c76
PCM bottom layer simplification. pcm_rec_peak_addr variable no longer has to be handled there. Driver can just return current pointer for recording peaks. A new define, HAVE_PCM_REC_DMA_ADDRESS, specifies that physical addresses are being used for recording and translation is needed before starting a new block. The drivers need not worry about aligning start and size nor should care if either will be zero. All this will be checked in the logical layer first.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25970 a1c6a512-1295-4272-9138-f99709370657
2010-05-12 14:05:36 +00:00
Rafaël Carré
f830fa79e5
s5l870x / ipod nano2g: include common mmu-arm.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25635 a1c6a512-1295-4272-9138-f99709370657
2010-04-13 16:05:11 +00:00
Michael Sparmann
3d7983e5c7
Fix iPod Nano 2G channel swapping issues
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24589 a1c6a512-1295-4272-9138-f99709370657
2010-02-10 21:20:51 +00:00
Andrew Mahone
5e9282829a
Label dma_callback in pcm-s5l8700.c as used so that gcc won't discard it, and cause a link failure on eabi.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24487 a1c6a512-1295-4272-9138-f99709370657
2010-02-03 16:36:55 +00:00
Bertrik Sikken
69b7dab5f0
pcm-s5l8700: add missing header file, remove out-of-date comment
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23612 a1c6a512-1295-4272-9138-f99709370657
2009-11-11 20:30:53 +00:00
Michael Sparmann
91d982a1b6
Fix mpegplayer on S5L870x
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23587 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 15:50:13 +00:00
Michael Sparmann
4e617332ff
Hide yellow
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23327 a1c6a512-1295-4272-9138-f99709370657
2009-10-24 00:05:13 +00:00
Michael Sparmann
16a956c4f3
Finally a click, pop and other distortion free PCM driver for that fishy bufferless S5L870x I2S controller.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23324 a1c6a512-1295-4272-9138-f99709370657
2009-10-23 23:47:38 +00:00
Michael Sparmann
7bff585d83
iPod Nano 2G: "Fix" the latest PCM issues, channel swap and vinyl popping. The latter is a revert of the cache coherency patch for now, we need to find a better solution in the long term...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23308 a1c6a512-1295-4272-9138-f99709370657
2009-10-21 18:52:09 +00:00
Michael Sparmann
bde0231803
Add dcache cleaning to the S5L870x PCM driver.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23240 a1c6a512-1295-4272-9138-f99709370657
2009-10-17 23:08:51 +00:00
Michael Sparmann
7a5904cf1c
S5L870x: Implement pcm_play_dma_get_peak_buffer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23129 a1c6a512-1295-4272-9138-f99709370657
2009-10-12 11:58:36 +00:00
Michael Sparmann
c1c86d89c3
Make iPod Nano 2G audio work
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22954 a1c6a512-1295-4272-9138-f99709370657
2009-10-05 12:29:21 +00:00
Dave Chapman
5b3f333dd7
Correct the memory sizes (IRAM and DRAM) for the Nano2G.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22025 a1c6a512-1295-4272-9138-f99709370657
2009-07-25 00:49:13 +00:00
Bertrik Sikken
17b8805b49
S5L8700: fix off-by-one error in kernel timer and fix incorrect interrupt mask in pcm driver.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21950 a1c6a512-1295-4272-9138-f99709370657
2009-07-18 11:54:01 +00:00
Bertrik Sikken
9b1c774218
S5L8700: initial framework for PCM (using DMA transfers)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21656 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 13:41:16 +00:00