Commit graph

15476 commits

Author SHA1 Message Date
Kostadin Kolev
089202f077 Bulgarian language update (FS#13017)
Change-Id: Ia0a5f06e0c787706e096bde91a1b3cacdf674e40
2015-02-22 13:18:31 +01:00
Jordi Prenafeta
56b5ad1870 Catalan language update (FS#13025)
Change-Id: I40d92fc70a3c7a380127ef8f08d32db560cec95a
2015-02-22 13:17:27 +01:00
Tiago Medeiros
a38eb4e3b1 Portuguese language update (FS#13001)
Change-Id: I679397cdd0285c1717e44e97700acdd829e3d7d2
2015-02-22 13:16:06 +01:00
Alessio Lenzi
93dd74a757 Italian language update (FS#12897)
Change-Id: Ifced5d933fa58294ceae531e83e526c5dc341690
2015-02-22 13:14:42 +01:00
Frank Gevaerts
272b558639 Lamp plugin: Allow toggling the button light using "select".
Change-Id: I0f276a74010ef463ebdb0eb0cc00fc50123966f0
2015-02-22 12:22:40 +01:00
Amaury Pouly
7d91f8a1a8 zen*: fix yes/no dialog string
Change-Id: I3d73027a9c8a8f885ffbc5cb28dd210ecf2f4285
2015-02-16 11:31:53 +01:00
Giovanni Tataranni
0f34c51522 Creative ZEN: context menu now accessible with 'menu' key
Change-Id: I9b3cdce2ead0feee4a38b715a61a4a6cd57f8f54
2015-02-15 18:24:52 +01:00
Thomas Orgis
8aa72f07f4 Enhancement of the metronome plugin:
- square sine tick and tock sounds (more annoying, more useful;-)
- optical indication of tics on display
- unification of mode of operation for SWCODEC and HWCODEC (tested on simulator)
  Both playback and display drawing happen in main loop, always.
- operating in two modes now:
-- 1. classic dumb metronome
--- active when openened as application without file to open
--- the usual functionality with tapping and bpm change
--- controls indicated on display
-- 2. track mode with programmable series of parts
--- active when started as viewer for a .tempo file
--- differing meters (4/4, 3/4, 6/8, etc.)
--- patterns (tick/tock/silence on each beat)
--- smooth tempo changes in those tracks

This version had lots of testing regarding metronome accuracy,
resulting in the realization that PLL A and PLL B differ
on the Clip+, causing drift. There is still drift when the timer
intervall is too small, so I settled on 2 ms as compromise.

This is the final version, after adding documentation and extensive
help from Sebastian Leonhardt testing it on slower hardware (YH820),
where it works up to 650 actual bpm with display indication.

Latest change: Documentation nitpicks.

Change-Id: I764c8252526db188352385c5462f9453d882beb9
2015-02-03 22:41:40 +01:00
Udo Schläpfer
95fdad5e28 iBasso DX50/DX90: User selectable USB mode.
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -> General -> System: USB Mode.

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Mass Storage: The default, on USB connect export the internal and external
drives as usual. Rockbox will exit gracefully in this case, since the internal
drive (/mnt/sdcard) is exported as mass storage device and Android prevents
Rockbox from continued execution.
- Charge Only: USB charge only, do not export the internal and external drives.
This will not close Rockbox.
- ADB: Enable the Android Debug Bridge. This will not close Rockbox.

Charge only and ADB are actually the same, since it is not yet established if
charge only is doable without adb and major hooks into Android.

German translation provided.

This may be genric for Android based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I616247c29946c6595ebcf8f0c14b2410c9f0498b
2015-02-02 22:43:46 +01:00
Udo Schläpfer
040306a716 iBasso DX50/DX90: User selectable freq scaling governor.
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -> General
-> System: Freq Scaling Governor

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Conservative: Slow frequency switching.
- Ondemand or Interactive: Fast frequency switching.
- Powersave: Allways lowest frequency.
- Performance: Allways highest frequency.

German translation provided.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I10296f5be9586ad3a409105db0cd03682a30e9c1
2015-02-02 21:58:25 +01:00
Udo Schläpfer
dbabd0d9c3 iBasso DX50/DX90: Major code cleanup and reorganization.
Reorganization

- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone
  hosted targets. Most device specific code is in the
  firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed.
  32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.

Code cleanup

- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory
  leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf,
  logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and
  fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
  (see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.

Misc

- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.

Includes

- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/

Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight
interface and new option for hold switch, touchscreen, physical button
interaction.

Rockbox needs the iBasso DX50/DX90 loader for startup, see
http://gerrit.rockbox.org/r/#/c/1099/

The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit
gracefully and the loader will restart Rockbox on USB disconnect.

Tested on iBasso DX50.
Compiled (not tested) for iBasso DX90.
Compiled (not tested) for PLATFORM_ANDROID.

Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
2015-02-02 21:57:55 +01:00
Udo Schläpfer
6d3dc8fce0 iBasso DX50/DX90: CPU info enhancements.
System -> Debug (Keep Out) -> View CPU stats

Will now show the current cpufreq scaling governor, minimum, current and
maximum cpufreq scaling frequency for each CPU.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058
2015-01-30 20:15:21 +01:00
Chiwen Chang
3ae0f32ac3 three new DSPs
perceptual bass enhancement
- a bbe-ish group delay corrction with Biophonic EQ boost.
- precut

auditory fatigue reduction
-reduce signal in frequency that may trigger temporary threshold shift

haas surround
-frequency between f(x1) and f(x2) is always bypassed.
-can apply to side only.

Change-Id: Icb6355ce9b1c99bf2c58c9385c3c411c0ae209d3
2015-01-19 19:34:01 +01:00
Marcin Bukat
9ffd9327e3 Fix red/yellow
Change-Id: Ie01251af2cd843979b5fdefcfa541ba377d13bd7
2015-01-12 12:02:24 +01:00
Marcin Bukat
89ba7e818c Get rid of stupid _backlight_* function names
_remote_backlight_* and _buttonlight_* are cleaned as well

Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
2015-01-12 11:09:27 +01:00
Thomas Jarosch
2a3e1628a5 Limit more variables to file scope
Change-Id: I30219d626316776eb73b4205d63376fa3dbc6361
2015-01-11 21:40:51 +01:00
Thomas Jarosch
cfbd9cb22f Make a few local variables static
Change-Id: Ieb77a7f2cdf765afa3121320d03c0478cd97eb0f
2015-01-11 18:02:43 +01:00
Franklin Wei
2d41866d5a Remove playback control from XWorld, fix comments a bit
XWorld grabs the audio buffer when it starts, so there can be no playback, making the playback control menu useless :P

Change-Id: Ia4e2c207f41619ef9b028917130d6dbf7dfba054
2015-01-08 23:45:37 +01:00
Amaury Pouly
dc127f213c Clarify usb_powered() and fix some code.
Either by mistake or because its meaning changed, usb_powered() doesn't mean
what the name suggest, so clarify its meaning by renaming it to usb_powered_only.
So use of usb_powered() are replaced by usb_inserted() when it makes more sense.

Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8
Reviewed-on: http://gerrit.rockbox.org/1097
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2015-01-08 16:45:32 +01:00
Amaury Pouly
66690ca987 Get rid of USE_ROCKBOX_USB
Except for unfinished or experimental ports, it isthe case that
USE_ROCKBOX_USB and HAVE_USBSTACK are both defined or both undefined.
Furthermore, it is a leftover of some early developments on the USB stack and
doesn't make sense anymore.

Change-Id: Ic87a865b6bb4c7c9a8d45d1f0bb0f2fb536b8cad
Reviewed-on: http://gerrit.rockbox.org/1091
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2015-01-08 16:07:12 +01:00
Thomas Jarosch
fdd4aef340 Make thirty functions static to reduce binary size
If any of those functions should be (unused) API functions,
they can easily be turned back once really needed.

Detected using a new cppcheck check that
uses the internal symbol database to catch
functions that are only used in the current file.

Change-Id: Ic2b1e5b8020b76397f11cefc4e205f3b7ac1f184
2015-01-05 18:44:36 +01:00
Thomas Jarosch
7265375087 Shortcuts: Add move callback for buflib allocations
If we don't provide a callback to buflib_alloc(),
the buffer is always movable (to reduce fragmentation).

We were passing around buffers to multiple functions
that call yield() and might trigger buflib compaction.

-> add locking while we are working on the buffers.

Also added source code comments that explain
why we added the locking in that particular section.

Change-Id: Ie32867b0b735ddb2905fd4bd51342f61035f836f
2015-01-02 01:11:54 +01:00
Thomas Jarosch
9076b433d1 PictureFlow: Add move callback for buflib allocations
If we don't provide a callback to buflib_alloc(),
the buffer is always movable (to reduce fragmentation).

Since we pass our buffer to functions that call yield(),
this could lead to memory corruption on buflib compaction.

Change-Id: Id1fad1822479d692551c55cb8bc87cea7b78f759
2015-01-01 23:49:41 +01:00
Franklin Wei
b0277e4b6d XWorld: fix some typos in keymaps.h
Happy New Year!

Change-Id: I228e4b9af9561eb70f75ebb57e333c78065873df
Reviewed-on: http://gerrit.rockbox.org/1093
Reviewed-by: Thomas Jarosch <tomj@simonv.com>
Tested: Thomas Jarosch <tomj@simonv.com>
2015-01-01 17:28:22 +01:00
Franklin Wei
193c5df75d XWorld: cleanup
- Comment keymaps.h
 - Tie XWORLD_DEBUG into ROCKBOX_HAS_LOGF to ease debugging
 - Fix up the manual a little bit

Change-Id: I12cfb58001199036cd67dbaa27f164e6790a199d
Reviewed-on: http://gerrit.rockbox.org/1084
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-12-28 02:48:42 +01:00
Benjamin Brown
ce94c3ed86 Fix for DX50 xworld keymaps.h
Change-Id: I6bf564cf009d935ebb1d7fb77ccb2eab8c87d2c7
Reviewed-on: http://gerrit.rockbox.org/1083
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-12-24 12:00:00 +01:00
Benjamin Brown
339bea4b6e Fixes more red for xworlds keymaps
A temporary fix for keymaps.h, the logic needs rewritten

Change-Id: Ic8c81a5f01620ffc409cf6220b2916c0ec428dbe
Reviewed-on: http://gerrit.rockbox.org/1082
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-12-24 11:45:20 +01:00
Benjamin Brown
7de7c22a68 Xworld - Fixes warnings for cowond2, hifimanhm60x, ibassodx50, and
ondavx747.  Also fixes errors for ondavx777.

Change-Id: I1a5daa844759316df4dec7b869425ea9a174814b
Reviewed-on: http://gerrit.rockbox.org/1081
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-12-24 09:27:11 +01:00
Benjamin Brown
78cd5c1e24 Fixes xworld keymaps for ondavx747, hifimanhm60x, and cowond2
Change-Id: I62d7702d2e6541777f5553e27e166470004cd06d
Reviewed-on: http://gerrit.rockbox.org/1080
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-12-24 03:15:27 +01:00
Franklin Wei
37817268ab fix xworld building with 24-bit lcd
also fix a couple unused vars

Change-Id: Ib05d2e22dd7477bc9bd193232bd3de8a0816beb2
Reviewed-on: http://gerrit.rockbox.org/1079
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-12-24 03:12:03 +01:00
Michael Giacomelli
1bc3964f96 Fix compilation error.
Change-Id: Ic565444bf1df955703dfe91adaf3094e8ab9b990
2014-12-24 00:05:31 +01:00
Franklin Wei
33cb13dee5 Xworld - Another World interpreter for Rockbox
Co-conspirators: Franklin Wei, Benjamin Brown

--------------------------------------------------------------------
This work is based on:
- Fabien Sanglard's "Fabother World" based on
- Piotr Padkowski's newRaw interpreter which was based on
- Gregory Montoir's reverse engineering of
- Eric Chahi's assembly code

--------------------------------------------------------------------
Progress:

* The plugin runs pretty nicely (with sound!) on most color targets
* Keymaps for color LCD targets are complete
* The manual entry is finished
* Grayscale/monochrome support is NOT PLANNED
  - the game looks horrible in grayscale! :p

--------------------------------------------------------------------
Notes:

* The original game strings were built-in to the executable, and
  were copyrighted and could not be used.
* This port ships with an alternate set of strings by default, but
  can load the "official" strings from a file at runtime.

--------------------------------------------------------------------
To be done (in descending order of importance):

* vertical stride compatibility                          <30% done>
* optimization                                           <10% done>

Change-Id: I3155b0d97c2ac470cb8a2040f40d4139ddcebfa5
Reviewed-on: http://gerrit.rockbox.org/1077
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-12-23 23:48:12 +01:00
Thomas Jarosch
b681e932a9 mikmod plugin: Remove bogus doubled return statement
Stick to the safer version of those two.

Tested mikmod still works with some nice Necros .s3m files.

Change-Id: I6774cdf3345a4c89b2f9cf3bb8d832963ca30c38
2014-12-22 22:33:28 +01:00
Thomas Jarosch
71c0516d52 zxbox: Add missing break; statement
No harm done, same values are assigned
in the "default" case.

cppcheck reported:
[rockbox/apps/plugins/zxbox/tapefile.c:674] -> [rockbox/apps/plugins/zxbox/tapefile.c:681]: (warning) Buffer 'seg_desc' is being written before its old content has been used. 'break;' missing?

Change-Id: I2bf044db9022c848c304f1ad88c012bd85ee61df
2014-12-22 21:50:47 +01:00
Thomas Jarosch
5d3aa1bce1 Fix red (pass pointer of 'item')
Change-Id: I2d04251519623b2531948615c35e61203f9a9940
2014-12-22 21:30:30 +01:00
Thomas Jarosch
06eeab0242 Always initialize "item"
Otherwise item.cfg_name and item.default_val
will contain garbage. It doesn't seem to have
an effect right now, but who knows what
a future refactoring might do.

cppcheck reported:
[rockbox/apps/settings.c:1268]: (error) Uninitialized variable: item

Change-Id: Ic4d0c302929613de8f291cd2d69cd39db8711107
2014-12-22 21:12:11 +01:00
Thomas Jarosch
9a5f7ce0f2 wavrecord plugin: Add harmless sanity check
cppcheck reported:
[rockbox/apps/plugins/wavrecord.c:3672]: (error) Array 'sampr[9][2]' index sampr[9][1] out of bounds.

Change-Id: Ib1e9c25842aa275b15d8d817018cc523269b1f42
2014-12-21 17:22:09 +01:00
Thomas Jarosch
c54537a663 Prevent theoretical out-of-bounds access in STM_Load()
We should be safe since STM_Load() should
never be called if STM_Test() fails.
Still it's better safe than sorry.

cppcheck reported:
[rockbox/apps/plugins/mikmod/load_stm.c:302]: (error) Array 'STM_Version[3]' accessed at index 3, which is out of bounds.

Change-Id: I914935fd108c492d013de24d17dcb9c227af6cd8
2014-12-20 13:37:40 +01:00
Thomas Jarosch
f8d9e9cb6c m3u playlist parser: Check size limit before using buffer
This should only be a problem if the last line
is not terminated by \r or \n though.

cppcheck reported:
[rockbox/apps/playlist.c:234]: (style) Array index 'i' is used before limits check.

Change-Id: I8182b66272ba9c024984c81588bd2a6dbb8255b8
2014-12-20 13:14:19 +01:00
Thomas Jarosch
2caf8870af text_viewer plugin: Fix two out-of-bounds buffer accesses
Test code:
--------------
int main(void)
{
    static unsigned short extra_spaces[] = { 0, 0x3000 };
    return sizeof(extra_spaces);
}
--------------

-> returns four instead of two.

cppcheck reported:
[rockbox/apps/plugins/text_viewer/tv_text_processor.c:180]: (error) Array 'break_chars[27]' acces
sed at index 53, which is out of bounds.
[rockbox/apps/plugins/text_viewer/tv_text_processor.c:195]: (error) Array 'extra_spaces[2]' acces
sed at index 3, which is out of bounds.

Change-Id: I66c305cc5c99e59e7c8e0aa9c86cecbe293ff037
2014-12-20 12:55:20 +01:00
Thomas Jarosch
1ff5fd4d6b Fix broken buflib_handle check in backdrop settings loader
The logic was messed up and always evaluated to true
if buflib_handle is non-zero.

Thanks to JdGordon for verifying the change.

cppcheck reported:
[rockbox/apps/gui/skin_engine/skin_backdrops.c:262]: (warning) Comparison of a boolean expression with an integer other than 0 or 1.

Change-Id: Ib52a73e0a6a2017a631e2dec19b638a2974dab83
2014-12-20 12:33:26 +01:00
Szymon Dziok
b29d311623 Fix remaining errors in Polish translation.
Change-Id: I6517e0bcbf57b18f34138019fb54cd3da7728848
2014-11-10 14:09:11 +01:00
Szymon Dziok
ce88fa2f81 Polish translation update.
Change-Id: Ie1f223a23e2c0b4c4838d0cb146f65ee6b8e5f09
2014-11-10 12:34:47 +01:00
Szymon Dziok
fa11990a2c Pegbox: use the same keymap for Samsung YH820 and YH920.
Keymap for the YH820 fits much better for the YH920 anyway.

Change-Id: I54d7f3be9dfaf689e76c73d39da4649395e912a1
2014-10-22 09:59:26 +02:00
Szymon Dziok
f443570897 YH820/YH92X: Add missing StdMenu action.
Change-Id: Ife5be1b6427724b5c231e0035aca44373adb0e40
2014-10-22 09:59:26 +02:00
Szymon Dziok
b7708059a8 Rockboy plugin: remove second keymap definition for the Iriver H10, added in
594b6e2 (FS#10251).

Change-Id: I652545c812a8bd4d5d1be5f200fce9c97733b636
2014-10-22 09:59:26 +02:00
Szymon Dziok
ce33d4f48b YH820/YH92X: Improve some keymaps for plugins.
Change-Id: Ib598737327043809f60127f7c538f2d45ddabb87
2014-10-22 09:59:26 +02:00
Ivan Pesic
ac928ed7a2 Update of the Serbian translation
Change-Id: If244aabe80414cc0202f3d18c0d0defc6b0c47bf
Reviewed-on: http://gerrit.rockbox.org/1016
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-10-18 05:29:47 +02:00
Richard Burke
1e7b93a9b2 Fixed disktidy bug and added a couple of new features to disktidy.
The following updates were made to disktidy:
- Fixed bug FS#12825. disktidy now checks subdirectories again for files to delete.
- Use iterative rather than recursive method to traverse file system.
- Once disktidy finishes a run it now returns to it's main menu rather than exiting.
- Added "Last Run Stats" view to disktidy. This shows how many files and directories
  were deleted in the last run as well as the total size of those files, the length of
  time the run took and when the run took place (for players with RTC).
- Added "Playback Control" option to disktidy main menu.

Change-Id: I9b7d6d5d08aef2b5f85fb63fcd2ec60f1c1ec2e0
Reviewed-on: http://gerrit.rockbox.org/808
Reviewed-by: Franklin Wei <frankhwei536@gmail.com>
Tested: Franklin Wei <frankhwei536@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-10-09 09:43:40 +02:00
Szymon Dziok
877bd982a7 YH820: Add a forgotten define in aa8ba60.
Change-Id: I89a0c21f2ca09f65a4d0b3e06b4b8fed3c07bef6
2014-10-08 16:47:16 +02:00
Szymon Dziok
aa8ba60fea YH820/YH92X: Properly enable morse input.
Change-Id: I6a35d64d0859b7ef429919c260a69974d6fdfafb
2014-10-08 16:31:39 +02:00
Szymon Dziok
91bd7f1eba YH820/YH92X: Fix keymap for custom settings.
Change-Id: I8e31b416d2e45d024c304e11318f1de8220c30b2
2014-10-08 16:31:39 +02:00
Szymon Dziok
193ea0909d Samsung yh820/yh92x: add HID keymaps.
Change-Id: I575e0e858aef0090d6864837d40a7b51e996ab43
2014-10-03 00:20:09 +02:00
Franklin Wei
4991544037 New Rockblox features
- Add "Ghost piece" feature
   - on 1-bit displays, it's too hard to distinguish from "real" pieces, should it be disabled?
 - Show what your score is when you get a high score
 - Indent

Change-Id: Ibefe748bca3a84736cf1884cc0872d9c36daa613
Reviewed-on: http://gerrit.rockbox.org/990
Tested: Franklin Wei <frankhwei536@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-29 00:56:34 +02:00
Franklin Wei
515a3c50fc Add ptable to SOURCES
Change-Id: Ie31306210e3cfe78288269574e78976b682eab31
Reviewed-on: http://gerrit.rockbox.org/981
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-25 00:44:40 +02:00
Franklin Wei
428641998e Ptable: hopefully fix all the warnings, modify actinide/lanthanide behavior once again
... it's ready! :)

Change-Id: Ie6e9de6097bad2d2dcca2b6d927fe748fa69f60d
Reviewed-on: http://gerrit.rockbox.org/968
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-25 00:15:58 +02:00
Sebastian Leonhardt
3e131abe27 YH8xx,YH9xx: Keymap Improvement
Keymaps are still work-in-progress, so wait for more.

Changes:
* standard: fix REC, so that it can be used in other mappings
  as 'exit' button
* pitchscreen: support button repeat for slow/fast playback
* keyboard:
  - change REW/FFWD mapping to backspace/page flip (more important than cursor imo)
  - use REC as cancel button
  - use FFWD as button-combo-meta-key; change cursor left/right
    to button combos, introduce OK/cancel as combos.
* recording:
  - REC exits recording screen (more consistend and more obvious imo)
  - REW enters recording menu; long REW exits

Change-Id: Ie80c2d122e4a8c6268d0f8c2fc0426cc49276110
Reviewed-on: http://gerrit.rockbox.org/953
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested: Szymon Dziok <b0hoon@o2.pl>
2014-09-21 13:29:26 +02:00
Simon Rothen
0b5ad60c26 Introducing Targets iBasso DX50 & iBasso DX90
The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source
can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port
was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port.
The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port.
Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did
was to separate the code for DX50 (&DX90) from the android target.
On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it.
What else I changed from Ilias sources besides the separation from the target "android":
* removed a dirty hack to keep backlight off
* changed value battery meter to voltage battery meter
* made all plugins compile (named target as "standalone") and added keymaps
* i added the graphics for the manual but did not do anything else for the manual yet
* minor optimizations

known bugs:
* timers are slowed donw when playback is active (tinyalsa related?)
* some minor bugs

Things to do:
* The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the
  official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with
  ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights.
  Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go.
* All the wiki and manual

to build:
needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed

./tools/configure
select iBasso DX50 or iBasso DX90
make -j apk

the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed)
the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed)

The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There
is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary.

Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his
bitbucket page, using the CWM-OF and his installation script package.

Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0
Reviewed-on: http://gerrit.rockbox.org/941
Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-18 18:19:01 +02:00
Michael Giacomelli
448a289da5 Disable periodic table plugin until all the compilation issues are sorted out.
Change-Id: Idb93aa9b5ad57ae1d5671ba5f17d0af0f2d201c7
2014-09-15 02:24:09 +02:00
Franklin Wei
3c33c6c2b6 hopefully fix the warnings
Change-Id: Id822234afc8906bb7c023810e902e604451ddfda
Reviewed-on: http://gerrit.rockbox.org/963
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-15 01:49:00 +02:00
Franklin Wei
b655912e29 ifdef out lcd_set_bg call
Change-Id: I78112f8099c09cc0993357e0f58a567c43381a50
Reviewed-on: http://gerrit.rockbox.org/962
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-15 01:07:23 +02:00
Franklin Wei
ba82784aae Fix building on clip
Change-Id: I4218cc9d45b144bfc3e58a44ef532d001d02e9ec
Reviewed-on: http://gerrit.rockbox.org/961
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-15 00:53:24 +02:00
Franklin Wei
2a35c4cad8 FS#9583 - periodic table
- original rockbox port: Yifu Huang
- original work: Jonathan Bettencourt

- modifications made:
  - PLA-fied
  - Add element 117 (ununseptium)
  - Implemented up/down
  - Fixed actinide/lanthanide navigation so that they are between scandium and titanium
  - Added manual entry
  - Fixed FG/BG colors

Change-Id: Ibabfb0d28f794689ffcd8b9c360fb969d118de08
Reviewed-on: http://gerrit.rockbox.org/950
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-15 00:47:11 +02:00
Michael Giacomelli
a7f23a5d05 Superdom: Silence warning.
Change-Id: Idec8c1a9defb19ebd753c2609b5d4207581c9248
2014-09-14 05:16:10 +02:00
Franklin Wei
1189fbe186 Superdom: rewrote help text
Change-Id: I54d5ee920b03f24faee5a6bf53ca56b27bbdc6c8
Reviewed-on: http://gerrit.rockbox.org/945
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 04:17:36 +02:00
Franklin Wei
a65f6ceaed Superdom: some AI improvements and other minor changes
Change-Id: Ia2756a7263ec09b78714273af0f604fc9cdb50eb
Reviewed-on: http://gerrit.rockbox.org/944
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 04:17:16 +02:00
Franklin Wei
333a82c8eb Superdom: added option for persistent units
Change-Id: I4c28f3c567ed435ba7aee36c8b54c76fc75e12aa
Reviewed-on: http://gerrit.rockbox.org/943
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 04:17:05 +02:00
Franklin Wei
ad79a90e39 [WIP] Superdom: AI can now use nukes
Change-Id: Iff5093b0edb4c065096d41c36d33bb2126063cf6
Reviewed-on: http://gerrit.rockbox.org/942
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 04:16:48 +02:00
Franklin Wei
bc00d38987 [WIP] Superdom: game improvements
- macro-ify board dimensions, surrender thresholds
 - make AI skill level adjustable
 - let AI buy nukes in hard mode (still can't use them yet)
 - make nukes persistent (stay after an invasion)
 - make AI treat nukes with priority

Change-Id: I1add6250766810787080624bd9e36026df449509
Reviewed-on: http://gerrit.rockbox.org/940
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 03:58:43 +02:00
Franklin Wei
a231754af9 Superdom: code cleanup
Change-Id: I3285238cfc098546307862f7d2e51e3b8e456a98
Reviewed-on: http://gerrit.rockbox.org/931
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 03:48:44 +02:00
Franklin Wei
e47ed2a534 Superdom: whitespace cleanup
Change-Id: Iab7aa68c4ed34809e1e9200cba9ee5bc0a09be8e
Reviewed-on: http://gerrit.rockbox.org/930
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-14 03:48:00 +02:00
Szymon Dziok
4c6939fc3d Correct some file permissions.
Change-Id: I4a092a19d6a9c66dfeb2777c9655aa4b19d11e16
2014-09-08 16:04:39 +02:00
Szymon Dziok
c986655b64 Correction of the Sliding puzzle on Samsung YH-820.
Change-Id: Iceef613d8f99da75c7861e0ca472bc67e94a51f9
2014-09-08 15:23:13 +02:00
Szymon Dziok
5e0baf2922 Bubbles: make it work on Samsung YH-820 and align it on the occasion on Cowon M3.
Change-Id: I8d679ccba7f618cee78445b76452c368b00d2b60
2014-09-08 14:09:58 +02:00
Amaury Pouly
8146b40e73 Fuze+: add a configurable deadzone area for touchpad buttons
To stop erroneous button presses, allow users to add a deadzone between
the button via the Settings > General > System menu > Touch Dead Zone.

The configuration was chosen this way: the touchpad has the same DPI
in both direction so the setting applies the same on both the X and Y
axis. The setting ranges from 0 to 100 and is internally multiplied by 2
giving a maximum deadzone of 2*100 = 200 around each button, which
account for 400 total (once around each button), effectively reducing
each virtual button from 1000x600 to 600x200 when using the maximum value.

Change-Id: I8683c63d2950200eb32d1dda0a00bbd92d83d5be
Reviewed-on: http://gerrit.rockbox.org/677
Reviewed-by: Benjamin Brown <foolshperson@gmail.com>
Tested: Benjamin Brown <foolshperson@gmail.com>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-09-08 11:21:54 +02:00
Michael Sevakis
5b08f1a5b9 Remove I/O priority. It is harmful when used with the new file code.
HAVE_IO_PRIORITY was defined for native targets with dircache.

It is already effectively disabled for the most part since dircache no
longer lowers its thread's I/O priority. It existed primarily for the
aforementioned configuration.

Change-Id: Ia04935305397ba14df34647c8ea29c2acaea92aa
2014-08-30 14:01:21 -04:00
Michael Sevakis
7d1a47cf13 Rewrite filesystem code (WIP)
This patch redoes the filesystem code from the FAT driver up to the
clipboard code in onplay.c.

Not every aspect of this is finished therefore it is still "WIP". I
don't wish to do too much at once (haha!). What is left to do is get
dircache back in the sim and find an implementation for the dircache
indicies in the tagcache and playlist code or do something else that
has the same benefit. Leaving these out for now does not make anything
unusable. All the basics are done.

Phone app code should probably get vetted (and app path handling
just plain rewritten as environment expansions); the SDL app and
Android run well.

Main things addressed:
1) Thread safety: There is none right now in the trunk code. Most of
what currently works is luck when multiple threads are involved or
multiple descriptors to the same file are open.

2) POSIX compliance: Many of the functions behave nothing like their
counterparts on a host system. This leads to inconsistent code or very
different behavior from native to hosted. One huge offender was
rename(). Going point by point would fill a book.

3) Actual running RAM usage: Many targets will use less RAM and less
stack space (some more RAM because I upped the number of cache buffers
for large memory). There's very little memory lying fallow in rarely-used
areas (see 'Key core changes' below). Also, all targets may open the same
number of directory streams whereas before those with less than 8MB RAM
were limited to 8, not 12 implying those targets will save slightly
less.

4) Performance: The test_disk plugin shows markedly improved performance,
particularly in the area of (uncached) directory scanning, due partly to
more optimal directory reading and to a better sector cache algorithm.
Uncached times tend to be better while there is a bit of a slowdown in
dircache due to it being a bit heavier of an implementation. It's not
noticeable by a human as far as I can say.

Key core changes:
1) Files and directories share core code and data structures.

2) The filesystem code knows which descriptors refer to same file.
This ensures that changes from one stream are appropriately reflected
in every open descriptor for that file (fileobj_mgr.c).

3) File and directory cache buffers are borrowed from the main sector
cache. This means that when they are not in use by a file, they are not
wasted, but used for the cache. Most of the time, only a few of them
are needed. It also means that adding more file and directory handles
is less expensive. All one must do in ensure a large enough cache to
borrow from.

4) Relative path components are supported and the namespace is unified.
It does not support full relative paths to an implied current directory;
what is does support is use of "." and "..". Adding the former would
not be very difficult. The namespace is unified in the sense that
volumes may be specified several times along with relative parts, e.g.:
"/<0>/foo/../../<1>/bar" :<=> "/<1>/bar".

5) Stack usage is down due to sharing of data, static allocation and
less duplication of strings on the stack. This requires more
serialization than I would like but since the number of threads is
limited to a low number, the tradoff in favor of the stack seems
reasonable.

6) Separates and heirarchicalizes (sic) the SIM and APP filesystem
code. SIM path and volume handling is just like the target. Some
aspects of the APP file code get more straightforward (e.g. no path
hashing is needed).

Dircache:
Deserves its own section. Dircache is new but pays homage to the old.
The old one was not compatible and so it, since it got redone, does
all the stuff it always should have done such as:

1) It may be update and used at any time during the build process.
No longer has one to wait for it to finish building to do basic file
management (create, remove, rename, etc.).

2) It does not need to be either fully scanned or completely disabled;
it can be incomplete (i.e. overfilled, missing paths), still be
of benefit and be correct.

3) Handles mounting and dismounting of individual volumes which means
a full rebuild is not needed just because you pop a new SD card in the
slot. Now, because it reuses its freed entry data, may rebuild only
that volume.

4) Much more fundamental to the file code. When it is built, it is
the keeper of the master file list whether enabled or not ("disabled"
is just a state of the cache). Its must always to ready to be started
and bind all streams opened prior to being enabled.

5) Maintains any short filenames in OEM format which means that it does
not need to be rebuilt when changing the default codepage.

Miscellaneous Compatibility:
1) Update any other code that would otherwise not work such as the
hotswap mounting code in various card drivers.

2) File management: Clipboard needed updating because of the behavioral
changes. Still needs a little more work on some finer points.

3) Remove now-obsolete functionality such as the mutex's "no preempt"
flag (which was only for the prior FAT driver).

4) struct dirinfo uses time_t rather than raw FAT directory entry
time fields. I plan to follow up on genericizing everything there
(i.e. no FAT attributes).

5) unicode.c needed some redoing so that the file code does not try
try to load codepages during a scan, which is actually a problem with
the current code. The default codepage, if any is required, is now
kept in RAM separarately (bufalloced) from codepages specified to
iso_decode() (which must not be bufalloced because the conversion
may be done by playback threads).

Brings with it some additional reusable core code:
1) Revised file functions: Reusable code that does things such as
safe path concatenation and parsing without buffer limitations or
data duplication. Variants that copy or alter the input path may be
based off these.

To do:
1) Put dircache functionality back in the sim. Treating it internally
as a different kind of file system seems the best approach at this
time.

2) Restore use of dircache indexes in the playlist and database or
something effectively the same. Since the cache doesn't have to be
complete in order to be used, not getting a hit on the cache doesn't
unambiguously say if the path exists or not.

Change-Id: Ia30f3082a136253e3a0eae0784e3091d138915c8
Reviewed-on: http://gerrit.rockbox.org/566
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-08-30 03:48:23 +02:00
Kyryljan_Serhij
223038dfe0 Ukrainian language update
Change-Id: Ie06a1a1ecded66d1efb3beeee1aa7b69656715ef
Reviewed-on: http://gerrit.rockbox.org/921
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-24 00:06:34 +02:00
Frank Gevaerts
1bc89bde8c One last missing !defined(SIMULATOR) for chip8
Change-Id: Iab2d9150126f6c611604469d105186b936825012
2014-08-23 00:39:20 +02:00
Franklin Wei
e1c09cd5bd Hope this works...
Change-Id: I8a94f0be82f63ed1e81433beb41ff2d60a1e6eef
Reviewed-on: http://gerrit.rockbox.org/926
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
2014-08-23 00:25:12 +02:00
Franklin Wei
7e46440e4d Yellow go bye-bye
Change-Id: I12ce8b7781b4b1ce1c47b2973057586177f90157
Reviewed-on: http://gerrit.rockbox.org/923
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
2014-08-22 23:53:50 +02:00
Franklin Wei
8f9bd987e1 Fixed a chip8 bug
Change-Id: Ia28610713461eb02e8911be7fa0d5ad8ec8ba7fe
Reviewed-on: http://gerrit.rockbox.org/919
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
2014-08-22 23:36:26 +02:00
Franklin Wei
9fed5fd9e9 Added Clip/+ to 2048 targets
Change-Id: I9fb5a50f214e9dd87d1f1f62f4324876bdd94fe8
Reviewed-on: http://gerrit.rockbox.org/918
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-19 23:04:35 +02:00
Franklin Wei
7ac0056beb 2048: service pack 1 :)
- fixed some bugs
- added 1-bit LCD support

Change-Id: I7bb458d79d799dcd6b11d9d538773404f9a7f97c
Reviewed-on: http://gerrit.rockbox.org/917
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-19 22:37:54 +02:00
Avi Eisenberg
ec844f8b6d Always unboost at exit
Change-Id: I8b4a2d61a5f4491265888d84c0f2c684bcf38edb
Reviewed-on: http://gerrit.rockbox.org/915
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2014-08-18 04:12:43 +02:00
Michael Sevakis
528715a672 Fix warnings from 6ed0087
Forgot to (void) an unused parameter when priorityless.

usb-drv-rl27xx.c was using a compound init to initialize a semaphore
but the structure changed so that it is no longer correct. Use
designated initializers to avoid having to complete all fields.

Forgot to break compatibility on all plugins and codecs since the
kernel objects are now different. Take care of that too and do the
sort thing.

Change-Id: Ie2ab8da152d40be0c69dc573ced8d697d94b0674
2014-08-16 06:00:36 -04:00
Michael Sevakis
6ed00870ab Base scheduler queues off linked lists and do cleanup/consolidation
Abstracts threading from itself a bit, changes the way its queues are
handled and does type hiding for that as well.

Do alot here due to already required major brain surgery.

Threads may now be on a run queue and a wait queue simultaneously so
that the expired timer only has to wake the thread but not remove it
from the wait queue which simplifies the implicit wake handling.

List formats change for wait queues-- doubly-linked, not circular.
Timeout queue is now singly-linked. The run queue is still circular
as before.

Adds a better thread slot allocator that may keep the slot marked as
used regardless of the thread state. Assists in dumping special tasks
that switch_thread was tasked to perform (blocking tasks).

Deletes alot of code yet surprisingly, gets larger than expected.
Well, I'm not not minding that for the time being-- omlettes and break
a few eggs and all that.

Change-Id: I0834d7bb16b2aecb2f63b58886eeda6ae4f29d59
2014-08-16 05:15:37 -04:00
Franklin Wei
df99ef2c7b Added highscore highlight to xobox game
Change-Id: Idf6848fc80a56398889d5deeb16bf3707fcd3e30
Reviewed-on: http://gerrit.rockbox.org/893
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-12 18:25:56 +02:00
Franklin Wei
b61553c2b1 Added 2048 game
Change-Id: I4012dca4f93ca0db386a454635534f648ba906e9
Reviewed-on: http://gerrit.rockbox.org/888
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Tested: Michael Giacomelli <giac2000@hotmail.com>
2014-08-12 00:01:24 +02:00
Michael Sevakis
981d028c09 Do some kernel cleanup
* Seal away private thread and kernel definitions and declarations
into the internal headers in order to better hide internal structure.

* Add a thread-common.c file that keeps shared functions together.
List functions aren't messed with since that's about to be changed to
different ones.

* It is necessary to modify some ARM/PP stuff since GCC was complaining
about constant pool distance and I would rather not force dump it. Just
bl the cache calls in the startup and exit code and let it use veneers
if it must.

* Clean up redundant #includes in relevant areas and reorganize them.

* Expunge useless and dangerous stuff like remove_thread().

Change-Id: I6e22932fad61a9fac30fd1363c071074ee7ab382
2014-08-08 01:59:59 -04:00
Michael Sevakis
29f5385263 Fix up some more red
find_first_set_bit() becomes a small inline on ARMv5+ and checkwps now gets
made with -std=gnu99 (it eats all the GCCOPTS) like the rest of things.

Change-Id: Ie6039b17fec057a3dcb0f453d8fd5efac984df89
2014-08-05 21:32:13 -04:00
Kyryljan_Serhij
6536f1db3e Russian language update
Change-Id: I78af1702c1f60c2fc66ebeb738aed187f13906f3
Reviewed-on: http://gerrit.rockbox.org/903
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-08-05 19:09:36 +02:00
Peter Lecký
eaaff2680b Slovak language update
Change-Id: I3150dd77b3f5ce85d324ce3e9b6931c659dbde58
Signed-off-by: Bertrik Sikken <bertrik@sikken.nl>
2014-07-27 18:30:26 +02:00
Szymon Dziok
3f2c525c57 Reduce definitions of actions for fm radio.
Change-Id: I89188ecc820058b79b5c8fcf3e9b5ed49ae8aff4
2014-07-26 15:36:12 +00:00
Szymon Dziok
e3476f06d0 MPIO HD200: Fix action for fm radio.
Change-Id: I65a8e6f39d47f5d091e9676102b0ec08eb08690c
2014-07-26 15:36:12 +00:00
Szymon Dziok
facf708048 HDD1630/HDD6330: Add actions for fm radio.
Change-Id: I6acc21663fd0bc27509f8c37c71defb817ec7108
2014-07-26 15:36:12 +00:00
Chiwen Chang
9fb65294fb add supports for x,y value in percentage to several tags.
including
BAR_PARAMS, %xl, %dr, %T,%St, %xl and %Cl

Change-Id: I0811ebfff5f83085481dcbf08f97b7223f677bfe
Reviewed-on: http://gerrit.rockbox.org/900
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2014-07-21 04:54:53 +02:00
Amaury Pouly
e08331eef4 zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins
Plugins on the ZEN/ZEN X-Fi require to increase the plugin buffer size.

Change-Id: If4651c87b402060faa24530985c6e871379c8ea1
2014-07-17 10:40:17 +02:00
Amaury Pouly
2387d92c9c keymaps: cleanup
- remove useles define in pegbox
- improve keymap of nwz in mpegplayer
- fix whitespace alignement

Change-Id: I0d5e3c59f89ed8e0e02c386255286cfbb8693230
2014-07-17 10:29:18 +02:00
Nils Stec
c9816f57bf Introduce plugin keymaps for the Sony NWZ Series
Change-Id: I46b8766bd44118bce4931b7ee71815ae5f51cb2e
Reviewed-on: http://gerrit.rockbox.org/879
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-06-30 21:20:15 +02:00
Amaury Pouly
ae9b78ee2e Plugins: remove defined keys which are never used
Change-Id: I0195ae43f35c7355de66d5fa8caa24d8da6cb61e
Reviewed-on: http://gerrit.rockbox.org/883
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-06-30 20:35:12 +02:00
Thomas Martitz
5877f7b5c0 open_utf8: Actually use the result of read/write.
This silences warnings on some compilers but is anyway a good idea.

Change-Id: Ib566ab59a5d1cb433da466f3ce0c32ff150eb52e
2014-06-29 12:25:01 +02:00
Jonathan Gordon
7b377d29fb skin_engine: kill scrolling if the buffer moves
I have a suspicion that if there is any scrolling skin lines when
the buflib buffer moves it will cause the lcd code to crash.

This *hopefully* explains the random skin related crashed which
have been reported.

Change-Id: I04ee58292e1cea7c77ef9737b0641192f4f7e4ba
Reviewed-on: http://gerrit.rockbox.org/877
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2014-06-29 11:48:25 +02:00
Thomas Martitz
8f6c779ff6 Fix some build errors and warnings.
Change-Id: I149c00fc6ba47d5134ad4f74c364bffd24079824
2014-06-21 00:49:05 +02:00
Thomas Martitz
a1842c04f9 lcd-24bit: Introduce a 24-bit mid-level LCD driver
With LCD driver all calculation will be performed on RGB888 and the hardware/OS
can display from our 24bit framebuffer.

It is not yet as performance optimized as the existing drivers but should be
good enough.The vast number of small changes is due to the fact that
fb_data can be a struct type now, while most of the code expected a scalar type.

lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit
it enforces the generic C code.

All plugins are ported over. Except for rockpaint. It uses so much memory that
it wouldnt fit into the 512k plugin buffer anymore (patches welcome).

Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
2014-06-21 00:15:53 +02:00
Thomas Martitz
e49dcbf190 bitmaps: Use *x16.bmp also for upcoming 24bit targets (they are actually 24bit BMPs).
Change-Id: I5c7d16ad41e43c26a9ac3e01c52c3ca34a6b7495
2014-06-21 00:13:58 +02:00
Thomas Martitz
0267fafc5f bitmaps: Convert some bitmaps to 24bit BMP.
Change-Id: Ibd4171383be3383e0260686b920c78244989abd2
2014-06-21 00:13:58 +02:00
Michael Sevakis
221c495432 Fix a playback bug in shink_callback()
Invalid event data would be accessed if a play message isn't queued
which will cause crash problems.

It came about in the addition of time-based resume.

Change-Id: I1d5219064e2bf552b4183e9db4e7b380ffbe7a67
2014-06-20 04:54:18 -04:00
Bertrik Sikken
a77c6b9d96 Update dutch (nederlands) translation
Change-Id: If0aa2a0d3a667e8d23020ad757e15f93d7599f0e
2014-06-18 21:59:49 +02:00
Szymon Dziok
eacd76cb80 Radio and radio recording for Samsung YH-920.
There is no simple method to detect radio through the 3-wire interface, so it's
not implemented for the YH-925 for now. YH-920 always has a radio.

Change-Id: Iea484d752915fcd40dbbbd7dbbf13e81aaf548db
2014-06-18 18:06:17 +00:00
Szymon Dziok
7107f0ac86 HDD1630: Add keymap for recording.
Change-Id: Idb4162cae8c41d31fa3751674cf323ab0ff35e62
2014-06-18 18:06:17 +00:00
Jonathan Gordon
6e701d3232 fix indenting, editor went nuts
Change-Id: Ibe363e5c75260f50c6c6c6fc58a2758a7902ffc3
2014-06-02 22:01:36 +10:00
Jonathan Gordon
e417036f60 skin_engine: Don't double free buflib handles shared by skin images
Change-Id: I4158fb7dae664a746141f458c08bdcb84e148041
2014-06-02 21:26:22 +10:00
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