summaryrefslogtreecommitdiff
path: root/apps (follow)
Commit message (Collapse)AuthorAge
...
* ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be ↵Thomas Martitz2014-03-10
| | | | | | compiled headless. Change-Id: I4fa3b8ef7139313891ca70df11f7f17c5df38cb7
* Implements starting playback from a cuesheet.Michael Sevakis2014-03-10
| | | | | | | | | | | | | | | | | | | | | | 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>
* Implement time-based resume and playback start.Michael Sevakis2014-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Oscilloscope: Fix loading of the speed setting for waveform viewMichael Sevakis2014-03-06
| | | | | | | | 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
* kernel: Break out kernel primitives into separate files and move to separate ↵Thomas Martitz2014-03-03
| | | | | | | | | 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
* Fix greyscale and mono builds.Thomas Martitz2014-03-03
| | | | Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
* Touchscreen: Show a line separator in lists.Thomas Martitz2014-03-03
| | | | | | | | | | | | 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
* Fix regression introduced by eec89a9.Thomas Martitz2014-03-03
| | | | | | The icon pixel position must be calculated before y is modified. Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
* Fix FS#12951: The icons could be a pixel to far down.Thomas Martitz2014-03-03
| | | | | | | | | | | | 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
* test_disk: Add an additional dirscan test that calls dir_get_info() also.Thomas Martitz2014-02-25
| | | | | | | | 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
* hosted: Rename a bit in functions to avoid name clashes with unix headers.Thomas Martitz2014-02-23
| | | | Change-Id: I2baa5532ddcbca8a839c31434309013f02173ed8
* Fix for HAVE_MULTIDRIVE on application builds.Thomas Martitz2014-02-23
| | | | Change-Id: I089ea4756e0c824993c65062290c40b3e67f9181
* storage: Add STORAGE_HOSTFSThomas Martitz2014-02-23
| | | | | | | | | | | | 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
* Move VOL_NAMES definition to mv.hThomas Martitz2014-02-23
| | | | | | Fits better and including dir.h is more messy for some places. Change-Id: I3ec30dcc1ac2734ad3844c903238b6cc2f4e134c
* fix russian translate in 0f72c73b5bDmitry Gamza2014-02-17
| | | | | | Change-Id: I5237f4bdf49f2fb7d5a6e072f0e8a7bb58daa8de Reviewed-on: http://gerrit.rockbox.org/759 Reviewed-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
* fix red, strtok_r being annoying on sim buildsJonathan Gordon2014-02-13
| | | | Change-Id: Ifb884a53d801db9534dd0c5ab5921800e971963e
* main_menu_config: New plugin to configur the main menu orderJonathan Gordon2014-02-13
| | | | | | | | | | | | | 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
* FS#12949 - Diff to fill in incomplete Russian translation items.Jeremy Goodwin2014-02-11
| | | | Change-Id: I8f53d8811a3c6ee6507f1a81e3b007073909ca38
* Fixed bug where exiting textviewer after using up all the bookmarks caused ↵Avi Eisenberg2014-02-07
| | | | | | that file unable to be read the next time. Change-Id: I1924fe68c8528c03c4197f74a4f014edb0ac9f2a
* Samsung YP-R1 target portLorenzo Miori2014-02-05
| | | | | | | | | 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
* talk: On hwcodec disabling DMA interrupt is required during buflib moveThomas Martitz2014-02-03
| | | | | | | | | | | | 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
* Fix warnings.Thomas Martitz2014-02-03
| | | | Change-Id: If3cbcd7557797684f1b7fea8e1bb134777680dee
* talk/voice: Reduce the size of the commit buffer.Thomas Martitz2014-02-02
| | | | | | | | | The voice engine can now request more voice data during decoding, it does not require the entire clip to be available before start of decoding anymore. Therefore the commit buffer does not need to hold an entire voice clip anymore, and can be made greatly smaller. Change-Id: I3eca9026448e725b9b8d0dae1efca0ad185371da
* talk.c: The new cache management is good enough to use it for .talk clips as ↵Thomas Martitz2014-02-02
| | | | | | | | | | | | | | | well. This unifies the talk.c for all possible voice payload. .talk clips are placed onto the same unified clip cache, along with normal clips. This allows for more effecient memory usage. The cache handling makes a slight difference between normal clips and .talk ones: .talk clips can be cached multiple and are always freed first.The extra logic to avoid loading multiple copies of .talks is not necessary because the will be freed first anyway. Change-Id: I88d056a0a613b129f5875f50fdb757b58bac0a42
* talk.c: The new cache management is good enough to use it on all targets.Thomas Martitz2014-02-02
| | | | | | | | | | | | | | This unifies the talk.c for all targets. The only separation is left is TALK_PROGRESSIVE_LOAD: When this is defined the talk buffer will not be initially prefilled. This is useful for super slow storage or when the buffer is not large enough to prefill it with useful clips (the prefill code could be made smarter too). The buffer size can be adjusted. By default lowmem uses 100k while other targets load the entire file. The bigger the more clips can be cached but with diminishing returns. Change-Id: Ife38fb101c53093117e6638c40c65f7d177a31d4
* talk: Smarter cache management for TALK_PARTIAL_LOAD.Thomas Martitz2014-02-02
| | | | | | | | | | | | | | | | | | | | | | Previously the clip cache of TALK_PARTIAL_LOAD reserved space N clips, each slot was as big as the maximum sized clip which was necessary to replace clips in-memory in MRU-style. The cache management now uses buflib to allocate and free each clip, using the clip's real size. This allows the clip cache to be much more compact, because no space is wasted for the max. sized clip. This makes use of buflib's ability to easily manage differently-sized memory chunks by moving them to make free space. As an example: for english.voice TALK_PARTIAL_LOAD allocated 288k in advance. for just 64 clips. With this patch ~70 clips can be stored in a 100k buffer. This, the memory usage is cut by 2/3 and almost optimal (there's still the buflib per-alloc cookie overhead). As a result the TALK_PARTIAL_LOAD buffer is restricted to 100k which still allows for more clips than previously, on average. Change-Id: I257654071e9a95770cd6db2c2765f020befce412
* talk: Add debug menu entry to view statistics about talk engine.Thomas Martitz2014-02-02
| | | | | | | This engine includes voicefile, memory usage and cache hits/misses for TALK_PARTIAL_LOAD. Change-Id: I331981ddda39ea30c57b4b74504accb3c556c3b9
* talk: Make talk_voice_required() local to talk.cThomas Martitz2014-02-02
| | | | Change-Id: I3a04760d550efab7f011a917597ef29c039b05bd
* talk/hwcodec: Do always free the clip buffer in shrink_callback().Thomas Martitz2014-02-02
| | | | | | | | This is necessary because when voice is active audio is disabled. But only audio was able to shrink it's buffer to let other memory allocs succeed. talk needs to be able to do this too when it owns the audio buffer exclusively. Change-Id: Idea8ab90da7169f977c0c766cccb42c4fe6d6e81
* talk: Remove superflous call to talk_init().Thomas Martitz2014-02-02
| | | | | | | talk_init() is called by settings_apply() already which is called on boot. Doing it again means loading the voicefile a second time which isn't necessary. Change-Id: I4decd16401e63bf87338d3163c99d06d69fe3a3c
* Correct the number of codepages on charcell.Dominik Riebeling2014-01-27
| | | | | | | | 63cfbe0 fixed the number of codepages for bitmap targets. The same issue is present on charcell, so update the number for that as well, fixing UTF-8 missing in the list. Change-Id: Ib5d3494ed3d80e839ae3f59ec0a4277e5aa9d6fd
* talk: When no voice file is loaded don't even attempt to load the clip, it's ↵Thomas Martitz2014-01-27
| | | | | | hopeless. Change-Id: I420155d7f01ca0ea301c0678ac7245d251d365b0
* hwcodec/talk.c: Give the thumbnail buffer regardless of the talk buffer policy.Thomas Martitz2014-01-26
| | | | | | | | | | | When the policy is not set, it'll by default not give the clip buffer away. Callers of core_alloc_maximum() suffer from this. However, the thumbnail buffer can be easily freed when needed because nothing needs to be reloaded from disk when it is reallocated (thumbnail clips are loaded on demand, when in the file browser). Do this to give core_alloc_maximum() callers a better chance to succeed with the default talk buffer policy. Change-Id: I8c0da29c520612ca903f6c930bd7c74ae97eca3b
* Fix incorrect language string reference in eq_menu.cPurling Nayuki2014-01-26
| | | | | | | | | | | In most of the translations strings with SYSFONT in title is translated. This leads to displaying problem in (at least) graphical equalizer due to the lack of non-latin character support in the built-in font. Change-Id: I0d27a5358e4eb539d4247c84975d8501d7668836 Reviewed-on: http://gerrit.rockbox.org/727 Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* Fix red on monochrome.Thomas Martitz2014-01-22
| | | | Change-Id: Ice40c81d0d07f7ec2014697e4de446dcb956afe8
* skin_engine/backdrops: Have to reload default backdrops from setting when it ↵Thomas Martitz2014-01-22
| | | | | | | | | | | | | | changed. When skins use the default backdrop (via %X(-) or no %X at all) and the setting changes it needs to be reloaded, otherwise when changing themes the new theme could show the backdrop from the previous theme. The same needs to be done when re-selecting the same theme after USB because the backdrop file was potentially overwritten. Fixes FS#12892 and FS#12942. Change-Id: Ic2d20740cc385fa99667ce8a71507dbda2efceaf
* rockbox: Improve button repeat handling.Thomas Martitz2014-01-18
| | | | Change-Id: I1259c43019c51828b2af73f312aee9cf399d57cf
* There are 15 codepages to choose from, not 14.Frank Gevaerts2014-01-18
| | | | | | | 2d9c0bab added a codepage but didn't increase the number of choices for the setting, so UTF8 dropped off the list. Change-Id: I154032bddaabcb783212370a12b2e5cdea305302
* rockboy: Fix button read method.Thomas Martitz2014-01-18
| | | | | | | | | | The old method simply polled the lastbtn variable in button.c. This approach does not clear the button event queue which overflows as a result (panic in the simulator). Use proper APIs to fix that and adopt the method from the old read_scroll_wheel() function, which reads buttons until the button queue is empty, for all targets. Change-Id: Ibf198f6e597e7f51ab4ebcfcae4ebebbe8d7845c
* rockblox: Fix compilation under recent mingw-w64-gcc.Thomas Martitz2014-01-17
| | | | Change-Id: I703d967e9288e5c74556b54ad4f72ef2f6247083
* Fix chinese-trad translationPurling Nayuki2014-01-16
| | | | | | Change-Id: Ifccb5c17d165d18e5076fb7ebc1af3cda3e2f778 Reviewed-on: http://gerrit.rockbox.org/726 Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
* buflib: Add crc field protecting buflib cookie integrityMarcin Bukat2014-01-16
| | | | | | | | | | | | | | | This should catch the case of buffer misuse which results in corrupted cookie of next allocation. The check is performed on move_block() so it may be a bit late. There is buflib_check_valid() provided which checks the integrity of all cookies for given context. On DEBUG build with --sdl-thread this check is carried out for core_ctx on every context switch to catch problems earlier. Change-Id: I999d4576084592394e3dbd3bdf0f32935ff5f601 Reviewed-on: http://gerrit.rockbox.org/711 Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* ipods: fix DEBUG buildsMarcin Bukat2014-01-16
| | | | | | | | | iap-core.h defines LOGF_ENABLE unconditionally but hexstring() helper function was not compiled if logf support was not selected in configure. The regular builds worked by accident because logf() lines where discarded by preprocessor. Change-Id: Id76af478e7c760d81168ebf9bf3eb973a679987c
* Fix Player warning.Thomas Martitz2014-01-16
| | | | Change-Id: I43989c92935710b36b68891a637db2e2cafb0401
* usb screen: Crop logo to the UI viewport dimensions.Thomas Martitz2014-01-16
| | | | | | | If the UI viewport is too small only the most top/left parts of the logo will be displayed. This goes one step further than bac85f2. Change-Id: I832b0e787e57e3b102a9c097cf1cccd7d4ad92d9
* usb screen: Push the usb screen onto the activity stack. This enables %cs ↵Thomas Martitz2014-01-16
| | | | | | tag support for it. Change-Id: Icecb72007aa3aba501c702e1aa65c801fcbc3857
* menus: Stop scrolling before entering the USB screen or remnants of the ↵Thomas Martitz2014-01-16
| | | | | | previous list could appear on it. Change-Id: I2753c239ef787e0a6af64c3d9c5bdeb26326a9d0
* usb: Do not disable themes in the USB screen.Thomas Martitz2014-01-15
| | | | | | | Fonts can now be assumed (by the code) to be available during USB. Make use of this fact in the USB screen and don't disable the skins. Change-Id: I525359aae16660604e8fe89addc0bdf97a3fafc1
* tagtree: Use strnatcasecmp() for the database browser too.Thomas Martitz2014-01-15
| | | | | | | | | | | Even though you can insert leading zeros that makes ascii sort work for numbers, sometimes the leading zeros don't suffice. In order to always sort numerically strnatcasecmp() is needed. With the default tagnavi.config this affects albums with discnum > 9 or tracnums > 99. This FS#12888. Change-Id: Ie265c86eaf6dd07b6beda9e5eef25eb81eef8fd4
* Fix PlayerThomas Martitz2014-01-15
| | | | Change-Id: Ie489f91f78a9bdbded9b4ce09c74602dbca3934b