Commit graph

317 commits

Author SHA1 Message Date
Michael Sevakis
d05db0a90c Correct actionable offense for misappropriation of action context.
Just use a bool to indicate raw button instead of action code. No
bother with plugin version yet again so soon.

Change-Id: I4aa075c0c1fb5308c9d49bebb30ac76f671b2335
2012-03-03 07:52:13 -05:00
Michael Sevakis
f688710707 Change keyclick_click so that it may accept raw buttons or actions.
Adds a new context, CONTEXT_RAWBUTTON, that I hope is out of the way
of everything. Unfortunately have to increment min plugin API version
for the second time today to accomodate additional parameter.

Change-Id: Iaa46b926e57cf377fd4906f2d42bb98e87215033
2012-03-03 07:10:56 -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
Thomas Martitz
249bba03f1 Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system,
but is the only application. It therefore can implement lots of stuff that
native targets also implement, while leveraging the underlying linux kernel.

The port is quite advanced. User interface, audio playback, plugins work
mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page).

Included in utils/ypr0tools are scripts and programs required to generate
a patched firmware. The patched firmware has the rootfs modified to load
Rockbox. It includes a early/safe USB mode.

This port needs a new toolchain, one that includes glibc headers and libraries.
rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may
also work.

Most of the initial effort is done by Lorenzo Miori and others (on ABI),
including reverse engineering and patching of the original firmware,
initial drivers, and more. Big thanks to you.

Flyspray: FS#12348
Author: Lorenzo Miori, myself

Merry christmas to ypr0 owners! :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 11:56:46 +00:00
Michael Sevakis
6a67707b5e Commit to certain names for cache coherency APIs and discard the aliases.
Wouldn't surprise me a bit to get some non-green.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31339 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 07:27:24 +00:00
Tomasz Moń
e8a8a1be43 Sandisk Sansa Connect port (FS #12363)
Included are drivers for buttons, backlight, lcd, audio and storage.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31000 a1c6a512-1295-4272-9138-f99709370657
2011-11-16 14:08:01 +00:00
Rafaël Carré
9055915645 fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30740 a1c6a512-1295-4272-9138-f99709370657
2011-10-10 01:50:28 +00:00
Rafaël Carré
b8f0b09916 mpegplayer sync_audio_setting(): simplify / clarify
fix fuze+ yellow

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30739 a1c6a512-1295-4272-9138-f99709370657
2011-10-10 01:39:56 +00:00
Amaury Pouly
5064485c0c fuze+°: add mpeg keymap
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30698 a1c6a512-1295-4272-9138-f99709370657
2011-10-02 17:35:25 +00:00
Andree Buschmann
ae5d09b252 MIPS uses GCC 4.1.2 which was wrongly detected as supporting '-fgnu89-inline'. Now only set this parameter if GCCNUM > 401.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30471 a1c6a512-1295-4272-9138-f99709370657
2011-09-08 06:23:33 +00:00
Andree Buschmann
28c4f2a84e Fix FS#12261. Only set '-fgnu89-inline' if GCC >= 4.1.3 is used.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30467 a1c6a512-1295-4272-9138-f99709370657
2011-09-07 18:36:56 +00:00
Andree Buschmann
3b83e59923 Do not set '-fgnu89-inline' for MIPS targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30421 a1c6a512-1295-4272-9138-f99709370657
2011-09-03 18:46:44 +00:00
Andree Buschmann
41a0bfc5ed FS#12256: Use '-fgnu89-inline' for mpegplayer and doom. Resolves compiler warnings when using mingw32.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30420 a1c6a512-1295-4272-9138-f99709370657
2011-09-03 18:27:14 +00:00
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

For now, the audio buffer allocation has a central role, because it's the one
having allocated most. This buffer is able to shrink itself, for which it
needs to stop playback for a very short moment. For this,
audio_buffer_available() returns the size of the audio buffer which can
possibly be used by other allocations because the audio buffer can shrink.

lastfm scrobbling and timestretch can now be toggled at runtime without
requiring a reboot.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Thomas Martitz
98096970e0 Cleanup tree.c cache handling a bit.
* Rename stuff to not re-use the term dircache
 * Move cache to own struct
 * Encapsulate retrieving entries a bit

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30242 a1c6a512-1295-4272-9138-f99709370657
2011-08-03 09:49:25 +00:00
Michael Sevakis
5663e1cd0a Have mpegplayer use the mixer (the playback channel, since it's mutually exclusive to audio playback) so the clicks and skip beep can be used according to user settings. Introduce some system sound functions to make easier playing event sounds from various places and convert files calling 'beep_play' to use 'system_sound_play' and 'keyclick_click'. Event sound could be become themeable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30130 a1c6a512-1295-4272-9138-f99709370657
2011-07-08 22:31:15 +00:00
Michael Hohmuth
593d520a00 mpegplayer: Adapt to new pause_rewind setting and apply it for all
kinds of pause, not just pause on headphone unplug.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29878 a1c6a512-1295-4272-9138-f99709370657
2011-05-13 22:51:10 +00:00
Andree Buschmann
67f215032d Fix a bunch of 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29841 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 21:06:38 +00:00
Thomas Martitz
9edd6d4ee9 Anti-Aliased Fonts support.
This enables Rockbox to render anti-aliased fonts using an alpha blending method.
The input font bitmaps are 4bit, i.e. 4x larger, but the metadata size stays the same.

A tool, convttf, for converting ttf fonts directly to the Rockbox fnt format is provided.
It has a useful help output, but the parameter that works best is -c1 or -c2 (2 for larger font sizes).

Flyspray: FS#8961
Author: Initial work by Jonas Hurrelmann, further work by Fred Bauer, Andrew Mahone, Teruaki Kawashima and myself.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29523 a1c6a512-1295-4272-9138-f99709370657
2011-03-05 18:36:51 +00:00
Thomas Martitz
cc889e9d60 Change the thread api a bit.
* Remove THREAD_ID_CURRENT macro in favor of a thread_self() function, this allows thread functions to be simpler.
* thread_self_entry() shortcut for kernel.c.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29521 a1c6a512-1295-4272-9138-f99709370657
2011-03-05 17:48:06 +00:00
Michael Sevakis
652463ecc0 mpegplayer: Move libmpeg2 files into their own subdirectory so things are less cluttered.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29381 a1c6a512-1295-4272-9138-f99709370657
2011-02-22 21:44:15 +00:00
Michael Sevakis
1bb3d61ef3 MPEGPlayer: Try out a different frame drop scheme meant to skip in a more uniform way rather than running up late and jumping forward; will often drop more in long term to keep up in short term. Some other obscure fixes included: wait for 2 ref pics before decoding B-pics again after P or I frame drop or seeking (issue with open GOPs); draw the frame the decoder already has when beginning playback after a seek; rename a few vars.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29198 a1c6a512-1295-4272-9138-f99709370657
2011-02-03 03:14:12 +00:00
Michael Sevakis
c498a5cf08 MPEGPlayer: Account for drivers that pass pointers to their internal state variables to the audio callback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29135 a1c6a512-1295-4272-9138-f99709370657
2011-01-25 17:18:20 +00:00
Teruaki Kawashima
01313d5039 * Rename backlight_force_on to backlight_ignore_timeout to make it clear what the function does.
* Add backlight_force_on() which forces to turn on backlight even when the setting is set to Off. use this in lamp.
No functional change except lamp.
See aslo FS#9883.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29128 a1c6a512-1295-4272-9138-f99709370657
2011-01-24 12:29:16 +00:00
Michael Sevakis
0dd74ca722 SA9200: Add YUV blitting, do full-screen updates more efficiently and properly clip partial updates. Plugin struct becomes incompatible for this target but leave version alone since it's still dev-only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29028 a1c6a512-1295-4272-9138-f99709370657
2011-01-11 01:21:31 +00:00
Michael Sevakis
5c2dd0785d Put illustrative switch case back, because it clarifies intention...maybe ;).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28985 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 05:30:22 +00:00
Michael Sevakis
39107956ab MPEGPlyaer: A bit of audio mutation. Remove a useless thread state. Take some control over the buffer away from the audio thread itself. Some atomicity corrections.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28984 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 05:17:28 +00:00
Alexander Levin
95e6e31703 Fix another comment typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28969 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 21:28:20 +00:00
Michael Sevakis
df6b414515 MPEGPlayer: Give the parser a little stronger going over this time so it tolerates odd audio timestamps better.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28965 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 20:28:00 +00:00
Alexander Levin
92f602f48f mpeg_parser: fix a typo in the comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28964 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 19:02:01 +00:00
Michael Sevakis
a31b3701f8 MPEGPlayer: Try a few timestamps for all streams at the beginning, not just video, to help deal with anomalous start PTS values in a stream. Hopefully the hardcoded number gives it enough tolerance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28961 a1c6a512-1295-4272-9138-f99709370657
2011-01-03 20:13:05 +00:00
Michael Sevakis
b664f62e36 MPEGPlayer graphics mutation: Implement a more visible FPS display and remove the debugging info from it. Tweak thumbnailing and printing of unavailable frames.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28960 a1c6a512-1295-4272-9138-f99709370657
2011-01-03 16:41:19 +00:00
Michael Sevakis
9b4522bace MPEGPlayer: Some UI tweaking and bugfixing
* Allow skip-to-beginning in single-play mode; there is no 3-second delay in that case.
* Properly handle and keep track of pauses caused by headphone removal.
* Improve skipping over bad files - search in skip direction and allow it to be ended with the stop key.
* Add the system message processing done elsewhere to all button queue waits.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28875 a1c6a512-1295-4272-9138-f99709370657
2010-12-22 11:20:07 +00:00
Michael Sevakis
ea568794e7 MPEGPlayer: Fix a bug where seeking a stream into the same frame more than once in a row causes it to report itself at the end in error; to fix it, pause streams rather than stopping them if the playback isn't stopped. Also, add one check so the engine can at rewind unseekable files to time 0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28862 a1c6a512-1295-4272-9138-f99709370657
2010-12-20 07:58:02 +00:00
Michael Sevakis
31af1a3ac2 MPEGPlayer: Move some code that's probably better situated in the stream manager rather than the parser. Fix visibility checking in video out. Extra message sending for new stream isn't needed; just do full decoder sequence reset when requesting dimensions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28855 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 08:28:03 +00:00
Michael Sevakis
fd01bf3e4c MPEGPlayer: Skip to next file when there is a problem with a video file in all-play mode, otherwise exit as usual. Only consider failures such as engine init issues or no file to view to be a plugin error but not problems with the video files themselves; the user is adequately informed already.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28854 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 03:28:43 +00:00
Michael Sevakis
6b1fcc67c2 MPEGPlayer: Fix leakage of file decriptors if file wasn't accepted by playback engine-- code is now getting tested that couldn't be before. Also reset parser in stream init when it doesn't like the file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28853 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 02:11:35 +00:00
Michael Sevakis
6032ff1730 MPEGPlayer playlist should as well support all viewer-handled file extensions...indeed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28850 a1c6a512-1295-4272-9138-f99709370657
2010-12-18 21:20:53 +00:00
Marcin Bukat
dd61702fb0 HD300 - plugins keymaps
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28712 a1c6a512-1295-4272-9138-f99709370657
2010-11-30 10:52:14 +00:00
Teruaki Kawashima
043ebca136 FS#8607: MPEG video playlist
Add mode to play multiple mpeg files in the same directory in the order the file browser shows.
In this mode, Mpegplayer exits after finishing the last .mpg file.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28667 a1c6a512-1295-4272-9138-f99709370657
2010-11-26 12:32:00 +00:00
Robert Menes
c638e96738 These should be the last of the plugin keymaps required
for the GoGear HDD6330.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28467 a1c6a512-1295-4272-9138-f99709370657
2010-11-03 02:45:53 +00:00
Marcin Bukat
59ba8fea22 MPIO HD200: rename button defines to adhere how they are labeled on the device.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28443 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 10:44:34 +00:00
Frank Gevaerts
f366090562 Make disabling HAVE_PITCHSCREEN actually work without breaking the build
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28102 a1c6a512-1295-4272-9138-f99709370657
2010-09-17 20:28:47 +00:00
Rafaël Carré
da16248e47 Plugins: modify IRAM copying code
Move to plugin_crt0.c, plugins don't need PLUGIN_IRAM_* macros anymore
IRAM is no longered zeroed before copying (as it is at the same address
than BSS) -> Fix FS#11581
Use cpucache_invalidate() (and not cpucache_flush), needed for self-modifying code on cached IRAM

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27948 a1c6a512-1295-4272-9138-f99709370657
2010-08-30 20:47:53 +00:00
Thomas Martitz
cae4ae2c71 Second try: Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also make exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex() introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases rb->default_event_handler_ex() was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27873 a1c6a512-1295-4272-9138-f99709370657
2010-08-24 14:30:46 +00:00
Thomas Martitz
93cb949372 Revert "Introduce plugin_crt0.c that every plugin links."
Too much errors and no time to fix them now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27863 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 17:12:26 +00:00
Thomas Martitz
abdc5935be Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also it makes exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases it was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27862 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 16:56:49 +00:00
Rafaël Carré
5574af8334 mpegplayer mad: apply r27655 fix
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27659 a1c6a512-1295-4272-9138-f99709370657
2010-08-01 16:38:58 +00:00
Frank Gevaerts
63011c6743 Revert accidental commit of "%z" support in r26071 (the implementation assumed size_t==long, which is not always the case in hosted environments)
Remove four remaining uses of %z, three of which were in DEBUGF


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27479 a1c6a512-1295-4272-9138-f99709370657
2010-07-18 12:42:47 +00:00
Michael Sevakis
7195f3a30c r27159 broke mpegplayer but not the mpa codec because its libmad init wasn't also updated to be compatible with the changes. Fix that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27171 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 10:07:04 +00:00