Commit graph

15263 commits

Author SHA1 Message Date
Sebastian Leonhardt
53efa59e12 recording on Samsung YH-820/YH-92x
Change-Id: I6eac4cf6c16a322910ad17bfbf3105e330cd0e36
Reviewed-on: http://gerrit.rockbox.org/815
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested: Szymon Dziok <b0hoon@o2.pl>
2014-06-01 23:25:12 +02:00
Sebastian Leonhardt
148e0ab416 YH820: game fix and improvements
* sudoku: make colour icons (without screen was squeezed)
* jewels: add colour bitmaps
* pegbox: make game fit on screen (add small header bitmap),
  improve keymap

I left the original pegbox keymaps for samsung's YH-92x,
because they seem to make some sense there (YH92x has a
REC switch instead of pushbutton).
Someone with a YH9xx target has to check what is better...

Change-Id: Id388c9d69e4a5a1d8ad4c3d7a05cdfc1dff0d06c
Reviewed-on: http://gerrit.rockbox.org/816
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested: Szymon Dziok <b0hoon@o2.pl>
2014-05-27 20:14:23 +02:00
Sebastian Leonhardt
7f7aee3f24 Separate keymaps for YH-820 and YH-920/925
Although both players basically have the same keys, the
differences in the layout is rather big, so I think both
deserve their own keymaps.

(On the yh820 the FFWD/PLAY/REW buttons are located above the
direction keys, on the yh920 at the side of the player.
Furthermore the yh920/925 has a REC switch, whereas
yh820 has a push button.)

Change-Id: I0e62a1b101c387646c0bdb07ea142d9d2430ca15
Reviewed-on: http://gerrit.rockbox.org/814
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
2014-05-24 00:50:11 +02:00
Jonathan Gordon
8fb0bbcc20 Also make sure progressbars don't tihnk their images are loaded
Change-Id: I83bb8e246e4858396ca0b5d0d90fbd2d08a88c1e
2014-05-18 20:58:00 +10:00
Jonathan Gordon
62d357b601 fix skin buffer crashes, img's are not loaded initialy
Change-Id: I32b5d5e446f5ae9340be2bd47841b06a5dbabeec
2014-05-18 20:47:32 +10:00
Jonathan Gordon
01cbb795e9 don't load the same bmp image more than once in a skin
Change-Id: Ie38146a80bb356f40810f017c262b81edac69688
2014-05-14 19:41:55 +10:00
Michael Sevakis
355b5406fa Make errno a thread-local variable.
errno is supposed to be thread local and we do that here in a rather
makeshift way by implementing a function that returns a pointer to
the __errno variable in the thread block.

If more serious TLS is required, perhaps it would be worthwhile
implementing it using the linker and the "__thread" storage attribute.
That's a bit overkill just for this. I'm also not liking what I saw
the compiler producing.

Change-Id: I03bc0bd6a89f6e3d6bae7653284ee01054614f9a
Reviewed-on: http://gerrit.rockbox.org/803
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-05-09 23:14:58 +02:00
Richard Burke
d35be7d0db Added high score and save/load functionality to xobox game.
Change-Id: I5e553a38b9290aeeb3cebaf1abf90ae6fc4ac362
Reviewed-on: http://gerrit.rockbox.org/799
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-05-02 00:56:10 +02:00
Dmitry Gamza
0cd03c2d20 fix russian translate
Change-Id: I616caf45db20c7ebdd989905f779d0e1c699e081
Reviewed-on: http://gerrit.rockbox.org/800
Reviewed-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
2014-04-24 17:13:28 +02:00
Thomas Martitz
532b8141ab skin_engine: Make %Vs affect the whole line.
Previously %Vs styles only took effect upon the first character of text, i.e.
on the right if the line is %arXXX. Now the style is applied for the whole
line width.

Fixes FS#12973.

Change-Id: I95f2cc76a90bfc0779e5a667d5bfa54c33896c89
2014-04-18 13:27:25 +02:00
Thomas Martitz
35b4ba8513 root_menu: Remove previous_music_is_wps() and change previous_music via event callback.
Change-Id: I0f3b85a8fe8010a2480ef44a72a90dc7904bc777
2014-04-15 23:54:28 +02:00
Thomas Martitz
bebf71a08b playlist: Get rid of plugin buffer use in playlist_save().
The plugin buffer was used only to avoid reparsing the playlist, so non-essential.
But when it was used it conflicted with the playlist viewer which already uses
the plugin buffer for playlist purposes simultaneously. It only works by
accident.

Since the reparse avoidance is non-essential don't do it for now. A temp buffer
can be passed to playlist_save() to enable it but the only caller (as of now)
does not do that.

Change-Id: I3f75f89d8551e1ec38800268b273105faba0efbf
2014-04-15 23:54:28 +02:00
Thomas Martitz
957613420e plugins: Add plugin_release_audio_buffer().
Some plugins grab the whole audio buffer and still want to start playback
somehow (e.g. random_folder_advance_config). Since 22e802e the plugin buffer
is allocated via buflib and has to be released explicitely. For these plugins
the automatic free on exit is not sufficient and they need an API function for
that.

Fixes OOM panic on random_folder_advance_config when using start
shuffled playback.

Change-Id: I0d351daa782cb829f4ff80d34c05f40a2e0c142f
2014-04-09 09:04:10 +02:00
Amaury Pouly
68370b6eea Fix red
Change-Id: Ibfc5e559f619820d6c3f7de76353e54d27e9b160
2014-04-07 11:34:19 +02:00
David Jilke
d489444119 Complete Plugin Keymaps for Creative Zen X-Fi3
This patch completes the plugin keymaps for the Zen X-Fi3 and enables those plugins for compilation.
One key was changed in "button-target.h" for compatibility with Rockboy.
This also caused the changes to "keymap-zenxfi3.c", to keep the stock functionality (no further changes in here).

Change-Id: Ic222faf89e9a9a2332a49d6e532cedb6eb16d3d7
Reviewed-on: http://gerrit.rockbox.org/762
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-04-06 20:51:12 +02:00
Michael Sevakis
8375b691e6 buffering.c: Patch up some straggling strlcpy warnings
Originating from 3661581

Some build clients finding their "standard" string.h's that don't declare
strlcpy?

Change-Id: I50d19c7cecf5ae96ee1855f77d3c2e1f42620108
2014-04-03 18:49:16 -04:00
Michael Sevakis
f9d60e14c9 Apparently some builds still need string.h in buffering.c
Change-Id: I99b90ab7e5b7d074b1d2d1de72267f9f2eea975b
2014-04-02 21:07:30 -04:00
Michael Sevakis
36615815bf Buffering: Remove buf_ridx and buf_widx; these data are verbose.
It is trivial to obtain all required information from the allocated
handles without maintaining global indexes. In fact, it is less
complicated and increases general thread safety.

Other miscellaneous changes (some are nice to do at this time due to
required alterations, with some particularly more relevant than others):
* Handle value 0 will no longer be returned as a valid handle but all
failures will still return a negative value. Creates consistency with
buflib and removes the need to explicitly initialize them.

* Linking a new handle is delayed until explicitly
added by the code that called add_handle, keeping it invisible
until every operation succeeds, which is safer thread-wise. If anything
fails, the handle itself may just be abandoned rather than reqiring it
be freed.

* Dump the special handling to slow buffering when the PCM buffer
is low that calls PCM buffer functions. It doesn't seem to help much
of anything these days and it's a bit of a nasty hack to directly
tie those bits together. It can of course be put back (again!) if
there really is a need for it.

* Make data waiters ping the buffering thread more than just once if
the request is taking too long. Somehow I figured out how the requests
could get forgotten about but can't remember why months later after
making the change in my branch. :-)

* Neaten up some code by using (inline) functions and packing down
parameters; remember handle allocation and movement attributes in the
handle itself rather than figuring it out each time they're needed.

Change-Id: Ibf863370da3dd805132fc135e0ad104953365183
Reviewed-on: http://gerrit.rockbox.org/764
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-04-03 02:24:03 +02:00
Marcin Bukat
bfd0179042 Revert "Update lua plugin to 5.2.3"
FILE typedef to *void needs more work to not break sim and
application builds. I checked only a few random native builds
unfortunately. Sorry for inconvenience.
2014-04-02 20:46:06 +02:00
Richard Quirk
36378988ad Update lua plugin to 5.2.3
Prior to this patch the Lua plugin used version 5.1.4. This change
reduces the number of modifications in the Lua source using some new
defines and because the upstream source is now more flexible.

Unless otherwise stated, l*.[ch] files are taken unmodified from the
upstream lua-5.2.3.

fscanf.c:
file descriptors in rockbox are just ints, they are hidden behind a
void* now so liolib requires less modifications. fscanf is updated to
use void* too.

getc.c: this is a new file required for getc implementation in lauxlib.c

lauxlib.c: LoadF replaced FILE* with int, the rockbox file
descriptor int are cast to FILE* (actually void* due to typedef).
getc uses the PREFIX version. stdin is not used, as per 5.1.4.

lbaselib.c: now uses strspn in the number parsing. print uses DEBUGF now
rather than being commented out.

lbitlib.c: use the built-in version from 5.2.3 rather than Reuben
Thomas's external library. Backwards compatible and adds some new bit
operations.

ldo.c: the LUAI_THROW/TRY defines are now in the core lua code, so have
been removed from rockconf.h

liolib.c: here the implementation has changed to use the LStream from
the original source, and cast the FILE* pointers to int. This has
reduced the number of modifications from the upstream version.

llex.c: the only change from upstream is to remove the locale include.

lmathlib.c: updated from the 5.2.3 version and re-applied the changes
that were made vs 5.1.4 for random numbers and to remove unsupported
float functions.

loadlib.c: upstream version, with the 5.1.4 changes for missing
functions.

lobject.c: upstream version, with ctype.h added and sprintf changed to
snprintf.

loslib.c: upstream version with locale.h removed and 5.1.4 changes for
unsupportable functions.

lstrlib.c: sprintf changed to snprintf.

ltable.c: upstream with the hashnum function from 5.1.4 to avoid frexp
in luai_hashnum.

luaconf.h: updated to 5.2.3 version, restored relevant parts from the
original 5.1.4 configuration. The COMPAT defines that are no longer
available are not included.

lundump.c: VERSION macro conflicts with the core Rockbox equivalent.

rocklib.c: luaL_reg is no longer available, replaced by luaL_Reg
equivalent. Moved checkboolean/optboolean functions to this file and out
of core lua files. luaL_getn is no longer available, replaced by
luaL_rawlen. luaL_register is deprecated, use the newlib/setfuncs
replacements. rli_init has to be called before setting up the newlib to
avoid overwriting the rb table.

rocklib_aux.pl: use rli_checkboolean from rocklib.c.

rocklua.c: new default bits library used, update the library loading
code with idiomatic 5.2 code.

strcspn.c: no longer needed, but strspn.c is required for strspn in
lbaselib.c

Change-Id: I0c7945c755f79083afe98ec117e1e8cf13de2651
Reviewed-on: http://gerrit.rockbox.org/774
Tested: Richard Quirk <richard.quirk@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-04-02 20:31:54 +02:00
Avi Eisenberg
b4a09868e1 Boost CPU before loading operations in textviewer
Change-Id: I88c813227c1c4c79fbf9cc2e0288d576a981c995
Reviewed-on: http://gerrit.rockbox.org/758
Reviewed-by: Avi Eisenberg <613ike@gmail.com>
Tested: Avi Eisenberg <613ike@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-04-01 02:37:32 +02:00
Szymon Dziok
f8d367be94 Add Cabbiev2 port for 128x96x16 targets (Samsung YH-820), made by me.
Change-Id: I21c408e8c25c42a1e6c3d3e44c0999ae85d73154
2014-03-27 19:50:48 +00:00
Szymon Dziok
828f880d40 HDD6330: enable AB repeat.
Change-Id: Ia8bb739cd60b1b2d8a8cd7ad2c536e22553083c6
2014-03-27 19:50:47 +00:00
Thomas Martitz
ea9621c018 Fix build reds caused by typos.
Change-Id: I71cdca3b6e73e29d487e0c6d02a69a31dcf3e6bf
2014-03-18 12:31:09 +01:00
Thomas Martitz
6f2726e79a usb screen: Stop scrolling the entire display.
It's not easy for the originating screen to perform cleanup in case of USB
because the usb screen is invoked indirectly via default_event_handler(). To
avoid stale scrolling lines perform the cleanup in the usb screen itself.

Side effect should be no worse than scrolling lines to restart in SBSes that
show during USB.

Change-Id: I9aa491b3d4b649c0b3be70048ebcb9d817c0356c
2014-03-18 12:24:44 +01:00
Thomas Martitz
395cdc5945 quickscreen: return true on USB connection.
This is consistent with other screens (pitch, id3) on the WPS and in other
places.

Change-Id: Iafae52507867ff9815a60cf44faaf09a29c55091
2014-03-18 12:24:16 +01:00
Dmitry Gamza
a98787148a fix quick screen write to config
Change-Id: Id55f81011a9ce47589d879203ca4f8fd4c54f593
Reviewed-on: http://gerrit.rockbox.org/757
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2014-03-18 10:58:24 +01:00
Thomas Martitz
361aa9263d Fix reds.
Change-Id: I4f065a5b9f96df4d70ee8bb2836effc9b97b01fa
2014-03-14 23:43:45 +01:00
Thomas Martitz
470989bd70 events: Rework event subsystem (add_event, send_event) to be more versatile.
add_event_ex is added that takes an extra user_data pointer. This pointer is
passed to the callback (add_event and add_event_ex have slightly different
callbacks types). All callbacks also get the event id passed. Events added
with add_event_ex must be removed with remove_event_ex because the user_data
pointer must match in addition to the callback pointer.

On the other add_event is simplified to omit the oneshort parameter which
was almost always false (still there with add_event_ex).

As a side effect the ata_idle_notify callbacks are changed as well, they
do not take a data parameter anymore which was always NULL anyway.

This commit also adds some documentation to events.h

Change-Id: I13e29a0f88ef908f175b376d83550f9e0231f772
2014-03-14 23:36:30 +01:00
Thomas Martitz
50f0dd80d6 ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be compiled headless.
Change-Id: I4fa3b8ef7139313891ca70df11f7f17c5df38cb7
2014-03-10 22:55:26 +01:00
Michael Sevakis
5ee13ebd39 Implements starting playback from a cuesheet.
Before time-based resume this was impossible since playback could not
be started at a specified elapsed time, only seeked with playback already
running.

Right now the "FILE" field is used, if present, to do the lookup from
from the .cue to the audio file when it is separate from the audio file.
If no path is specified, the .cue and audio file must be in the same
directory.

When the cuesheet is embedded, the containing file is used and the FILE
field is ignored.

Supports starting playback and seeking to cue points from the cuesheet
browser even without Cuesheet Support turned on.

Change-Id: Ib5b534c406f179a7f8c7042a31572b24a62c0731
Reviewed-on: http://gerrit.rockbox.org/522
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-03-10 04:13:53 +01:00
Michael Sevakis
31b7122867 Implement time-based resume and playback start.
This complements offset-based resume and playback start funcionality.
The implementation is global on both HWCODEC and SWCODEC.

Basically, if either the specified elapsed or offset are non-zero,
it indicates a mid-track resume.

To resume by time only, set elapsed to nonzero and offset to zero.
To resume by offset only, set offset to nonzero and elapsed to zero.

Which one the codec uses and which has priority is up to the codec;
however, using an elapsed time covers more cases:

* Codecs not able to use an offset such as VGM or other atomic
formats

* Starting playback at a nonzero elapsed time from a source that
contains no offset, such as a cuesheet

The change re-versions pretty much everything from tagcache to nvram.

Change-Id: Ic7aebb24e99a03ae99585c5e236eba960d163f38
Reviewed-on: http://gerrit.rockbox.org/516
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-03-10 04:12:30 +01:00
Michael Sevakis
62b10e383c Oscilloscope: Fix loading of the speed setting for waveform view
Somehow, a long long time ago, I put MAX*/MAX* in the config data range
fields instead of MIN*/MAX* which forced the settings loader to acknowledge
only 100 as a valid setting other than the default.

Change-Id: Ifbfcafad27e239942449848d6a09426173bbde54
2014-03-06 19:10:46 -05:00
Thomas Martitz
382d1861af kernel: Break out kernel primitives into separate files and move to separate dir.
No code changed, just shuffling stuff around. This should make it easier to
build only select parts kernel and use different implementations.

Change-Id: Ie1f00f93008833ce38419d760afd70062c5e22b5
2014-03-03 18:11:57 +01:00
Thomas Martitz
00434be0f1 Fix greyscale and mono builds.
Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
2014-03-03 16:34:36 +01:00
Thomas Martitz
05a67d021c Touchscreen: Show a line separator in lists.
This patch adds a configurable line separator between list items, very
similar to lists in Android. Additionally, below the list item there is a
thicker line. It can be disabled in the settings. Its color can
be configured as well.

Remote and monochrome displays are explicitly unsupported. If there is desire
this can be changed but it doesn't seem useful to me.

Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
2014-03-03 15:14:16 +01:00
Thomas Martitz
ee28a706d4 Fix regression introduced by eec89a9.
The icon pixel position must be calculated before y is modified.

Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
2014-03-03 15:14:07 +01:00
Thomas Martitz
3ae07d48a2 Fix FS#12951: The icons could be a pixel to far down.
Since eec89a9 icons have been centered using same calculation as for fonts.
In edge cases this is visually different from before and didn't align
well to the font's baseline. Revert to the old calculation just for centering
icons to fix.

A proper aligorithm would take the baseline into account but this has
worked sufficiently well for us (fix this if needed)

Change-Id: I86593529b16cd28ae4552641e216e73795f2450c
2014-03-03 11:20:13 +01:00
Thomas Martitz
191bd3da93 test_disk: Add an additional dirscan test that calls dir_get_info() also.
Especially on hosted dir_get_info() can be relatively. It is commonly called
after every readdir() for further information about the dir entry. So it's
peformance compared to readdir()-only is interesting.

Change-Id: I03ab41fb190acf738e04a5d3b2a4fe29276094f6
2014-02-25 09:57:18 +01:00
Thomas Martitz
be967515ac hosted: Rename a bit in functions to avoid name clashes with unix headers.
Change-Id: I2baa5532ddcbca8a839c31434309013f02173ed8
2014-02-23 23:36:11 +01:00
Thomas Martitz
cbc57af0f3 Fix for HAVE_MULTIDRIVE on application builds.
Change-Id: I089ea4756e0c824993c65062290c40b3e67f9181
2014-02-23 20:23:52 +01:00
Thomas Martitz
77f19f75eb storage: Add STORAGE_HOSTFS
CONFIG_STORAGE & STORAGE_HOSTFS allows to use parts of the storage_* API to be
compiled for application targets without compiling storage.c or performing
actually raw storage access. This is primarily to enable application targets to
implement HAVE_MULTIVOMULE/HAVE_HOTSWAP (in a later commit).

SIMULATOR uses the same mechanism without explicitely defining STORAGE_HOSTFS
(how to add a bit to an existing preprocessor token?).

Change-Id: Ib3f8ee0d5231e2ed21ff00842d51e32bc4fc7292
2014-02-23 20:23:51 +01:00
Thomas Martitz
706e6b7a75 Move VOL_NAMES definition to mv.h
Fits better and including dir.h is more messy for some places.

Change-Id: I3ec30dcc1ac2734ad3844c903238b6cc2f4e134c
2014-02-23 20:23:51 +01:00
Dmitry Gamza
7f0b7b720a fix russian translate in 0f72c73b5b
Change-Id: I5237f4bdf49f2fb7d5a6e072f0e8a7bb58daa8de
Reviewed-on: http://gerrit.rockbox.org/759
Reviewed-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
2014-02-17 07:00:19 +01:00
Jonathan Gordon
4b1221d556 fix red, strtok_r being annoying on sim builds
Change-Id: Ifb884a53d801db9534dd0c5ab5921800e971963e
2014-02-13 22:24:29 +11:00
Jonathan Gordon
6dbfd44b6e main_menu_config: New plugin to configur the main menu order
Plugins/Applications/main_menu_config allows you to edit the
main menu order without having to manually edit config.cfg.

Press the standard OK button to access the internal menu
which allows you to move items up/down in the order and toggle
their visibility. Exit via this menu to have the order saved.

(Suggestions welcome to improve this UI)

Change-Id: I59715ef1ca265aeb6f9666ef27026bc1093f2579
2014-02-13 22:11:23 +11:00
Jeremy Goodwin
0f72c73b5b FS#12949 - Diff to fill in incomplete Russian translation items.
Change-Id: I8f53d8811a3c6ee6507f1a81e3b007073909ca38
2014-02-11 20:52:28 +01:00
Avi Eisenberg
f723ca5805 Fixed bug where exiting textviewer after using up all the bookmarks caused that file unable to be read the next time.
Change-Id: I1924fe68c8528c03c4197f74a4f014edb0ac9f2a
2014-02-07 17:57:17 +01:00
Lorenzo Miori
e876f4df6d Samsung YP-R1 target port
This is the basic port to the new target Samsung
YP-R1, which runs on a similar platform as YP-R0.
Port is usable, although there are still
some optimizations that have to be done.

Change-Id: If83a8e386369e413581753780c159026d9e41f04
2014-02-05 09:56:21 +01:00
Thomas Martitz
0b7a90722a talk: On hwcodec disabling DMA interrupt is required during buflib move
Even though the DMA buffer itself does not move the ISR copies from a movable
buffer into the static commit buffer. To ensure this copying yields consistent
data it must not be interrupted by this ISR..

Also bump the commit buffer size to 2k, this should reduce the overhead
considerably because many clips are smaller than that (especially on
swcodec/speex).

Change-Id: I4e1ab83074f31fc91b51a58baa1df55ce659ac73
2014-02-03 12:43:05 +01:00