Commit graph

609 commits

Author SHA1 Message Date
Jonathan Gordon
101693fd30 FS#12251 - User shortcuts in the main menu.
Custom shortcuts which give the user fast access to regularly used files/folders/settings/whatever.
Thanks to Alexander Levin for the manual part of the patch

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30990 a1c6a512-1295-4272-9138-f99709370657
2011-11-15 13:22:02 +00:00
Björn Stenberg
0942e2a0f7 Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30756 a1c6a512-1295-4272-9138-f99709370657
2011-10-15 19:35:02 +00:00
Jonathan Gordon
ccaf55a8ae fix FIX_PTR macro so it actually fixes every pointer (was skipping x == current case)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30577 a1c6a512-1295-4272-9138-f99709370657
2011-09-21 13:32:37 +00:00
Andree Buschmann
e14bda521d Fix some 'set but not used' warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30565 a1c6a512-1295-4272-9138-f99709370657
2011-09-17 20:53:28 +00:00
Thomas Martitz
7e14b935df Dircache: Allow dircache to be enabled without reboot.
Also add two dircache function, one of which does what dircache_disable()
did previously as this now also frees the dircache buffer.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30393 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 21:07:46 +00:00
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

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

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

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Thomas Martitz
d0b72e2590 GSoC/Buflib: Add buflib memory alocator to the core.
The buflib memory allocator is handle based and can free and
compact, move or resize memory on demand. This allows to effeciently
allocate memory dynamically without an MMU, by avoiding fragmentation
through memory compaction.

This patch adds the buflib library to the core, along with
convinience wrappers to omit the context parameter. Compaction is
not yet enabled, but will be in a later patch. Therefore, this acts as a
replacement for buffer_alloc/buffer_get_buffer() with the benifit of a debug
menu.

See buflib.h for some API documentation.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30380 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:33 +00:00
Thomas Martitz
95c1e7d8b0 Fix oops in r30242. I didn't want to change/reduce the buffer size.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30244 a1c6a512-1295-4272-9138-f99709370657
2011-08-03 10:39:46 +00:00
Thomas Martitz
98096970e0 Cleanup tree.c cache handling a bit.
* Rename stuff to not re-use the term dircache
 * Move cache to own struct
 * Encapsulate retrieving entries a bit

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30242 a1c6a512-1295-4272-9138-f99709370657
2011-08-03 09:49:25 +00:00
Thomas Martitz
86724a205d Remove dead rolo related code (boot_changed was never set to true).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30233 a1c6a512-1295-4272-9138-f99709370657
2011-08-01 13:03:21 +00:00
Jonathan Gordon
97a4c1efa4 FS#11808 - Major playlist handling changes (on disk playlists)
* Playlists are treated similar to directories in the browser, they now open in the viewer when selected instead of automatically starting the playlist.
* Make the "Playlists" main menu item useful, it now displays the playlist catalog (and has been renamed accordingly)
* Default to storing playlists in the catalog
* Add a UI to move the catalog directory

(other minor stuff too)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30177 a1c6a512-1295-4272-9138-f99709370657
2011-07-20 14:11:15 +00:00
Magnus Holmgren
c2ff646b78 Avoid false warnings of full dirs when the number of visible entries in a dir equals the limit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29823 a1c6a512-1295-4272-9138-f99709370657
2011-05-04 18:33:12 +00:00
Magnus Holmgren
ed2cfb8c1d Don't (partially) apply changes to max entries in the file browser immediately. The setting affects a buffer that is allocated during boot, so code using that buffer should use the value that was in effect during boot. Add a note to the manual that a reboot is needed for the changes to be applied.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29798 a1c6a512-1295-4272-9138-f99709370657
2011-04-30 11:00:26 +00:00
Alexander Levin
794bda72cf Rename the NO_CONTEXT flag to NO_CONTEXT_MENU so that the name more clearly conveys what the flag does
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28837 a1c6a512-1295-4272-9138-f99709370657
2010-12-15 18:14:13 +00:00
Teruaki Kawashima
e6b4d8fdee remaining of FS#11777. Use rockbox_browse() to display playlists in Playlist Catalog.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28836 a1c6a512-1295-4272-9138-f99709370657
2010-12-15 12:47:30 +00:00
Teruaki Kawashima
08af5d8404 FS#11777: enhancement for rockbox_browse()
* Add struct browse_context to be passed to rockbox_browse.
* Show proper title when selecting e.g. .wps file or .sbs file from the settings menu.
* Add select only mode to rockbox_browse(). when a file is selected, it's path is stored to buffer and the browser exits without 'playing' the file.
this will allow to use the browser in more places to select file including plugins.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28831 a1c6a512-1295-4272-9138-f99709370657
2010-12-14 13:37:58 +00:00
Thomas Martitz
2c2416094f Get rid of get_user_file_path and do the path handling in wrappers for open() and friends.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28752 a1c6a512-1295-4272-9138-f99709370657
2010-12-06 22:26:31 +00:00
Teruaki Kawashima
368e89e3bc simplify rockbox_browse a bit and reuse buffer.
use const for argument of set_current_file.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28328 a1c6a512-1295-4272-9138-f99709370657
2010-10-22 12:50:14 +00:00
Jonathan Gordon
efbcece07b New setting to control the file browser start location.
Set using the menu item in folder context menus, clear in the filebrowser settings.
    
    Can be abused to start selecting a *file* (or have a folder selected) instead of a starting inside a folder by removing the trailing / in the .cfg
    
    This only affects the file browser when it would open in / before (on boot, or when entereing after backing out of the browser before (*not* when exited with the menu action)



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28206 a1c6a512-1295-4272-9138-f99709370657
2010-10-04 10:34:38 +00:00
Thomas Martitz
2c2e261648 Use system headers a bit more: use host's fcntl.h for O_RDONLY etc.
Removes the need to fix up those in the simulator.

Also work around some posix-mingw incompatibilities (e.g. getcwd()).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27904 a1c6a512-1295-4272-9138-f99709370657
2010-08-27 12:38:25 +00:00
Thomas Martitz
79798ff5f3 Make getcwd match the posix variant, make get_current_file() behave similar to it and add a few sanity checks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27903 a1c6a512-1295-4272-9138-f99709370657
2010-08-27 10:33:09 +00:00
Michael Chicoine
f3774df8be Fix FS#11547 - When selecting radio skin the currently loaded skin is not hilighted when menu is entered
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27835 a1c6a512-1295-4272-9138-f99709370657
2010-08-17 12:38:18 +00:00
Jonathan Gordon
43c85a4424 "Fix" FS#11349... %cs got confused because for some reason when the root menu was introduced the fm preset loading was never fixed to go back through that menu... problem is do_menu() is getting in the way now, so be like other files and dont try to reload the screen after loading... i.e go into the fms manually
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27830 a1c6a512-1295-4272-9138-f99709370657
2010-08-16 13:16:29 +00:00
Magnus Holmgren
113764d9c0 Fix FS#11175. playlist_peek() wasn't thread safe (due to a static filename buffer), so frequent calls from the main thread would cause the audio thread to buffer the wrong track.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27773 a1c6a512-1295-4272-9138-f99709370657
2010-08-11 19:01:50 +00:00
Thomas Martitz
850efead04 A few post-fixes to the get_user_file_path() commit.
Remove unneeded restriction from set_file that prevented filename settings to
work if they were outside of ROCKBOX_DIR.
Add the get_user_file_path() call to a few further places where it was
forgotten.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27667 a1c6a512-1295-4272-9138-f99709370657
2010-08-02 19:13:22 +00:00
Thomas Martitz
9c0b2479f7 Rockbox as an application: add get_user_file_path().
For RaaA it evaluates user paths at runtime. For everything but codecs/plugins it will give the path under $HOME/.config/rockbox.org if write access is needed or if the file/folder in question exists there (otherwise it gives /usr/local/share/rockbox).
This allows for installing themes under $HOME as well as having config.cfg and other important files there while installing the application (and default themes) under /usr/local.

On the DAPs it's a no-op, returing /.rockbox directly.

Not converted to use get_user_file_path() are plugins themselves, because RaaA doesn't build plugins yet.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27656 a1c6a512-1295-4272-9138-f99709370657
2010-08-01 16:15:27 +00:00
Thomas Martitz
c853097c2a Move the array to where it belongs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27557 a1c6a512-1295-4272-9138-f99709370657
2010-07-25 16:57:36 +00:00
Thomas Martitz
e513f69d25 Add default case back to silence gcc false positive abount ext and dir being used uninitialized.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27556 a1c6a512-1295-4272-9138-f99709370657
2010-07-25 16:47:47 +00:00
Thomas Martitz
9ecfcb06ab A bit more cleanup in rockbox_browse().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27555 a1c6a512-1295-4272-9138-f99709370657
2010-07-25 16:40:35 +00:00
Thomas Martitz
d4b5922d3a Rewrite r21464 in a more compact/readable way. Reduces code duplication as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27554 a1c6a512-1295-4272-9138-f99709370657
2010-07-25 16:27:41 +00:00
Jeffrey Goode
847bd281e2 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25906 a1c6a512-1295-4272-9138-f99709370657
2010-05-09 02:07:42 +00:00
Jeffrey Goode
1ad76ff25b FS#11250: Hotkey setting method changed to menu item vs button pres in context menu. Manuals updated to match.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25905 a1c6a512-1295-4272-9138-f99709370657
2010-05-09 02:02:51 +00:00
Steve Bavin
b08222caec Minor const police raid.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25879 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 16:35:37 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Jeffrey Goode
853572e946 Corrects bug in r25558 that could have resumed the wrong file under a certain condition.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25560 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 23:19:13 +00:00
Jeffrey Goode
9983a04253 Partial fix for FS#10614. Can now resume from a bookmark even if the bookmark index is wrong.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25558 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 20:08:48 +00:00
Jeffrey Goode
d5e6bc7a8c FS#11081 - Hotkey patch. Many targets supported, but some keymaps need work before they can be switched on
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25414 a1c6a512-1295-4272-9138-f99709370657
2010-04-01 03:14:44 +00:00
Andree Buschmann
4d5e88245a Remove more tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24550 a1c6a512-1295-4272-9138-f99709370657
2010-02-07 18:38:47 +00:00
Bertrik Sikken
f736159e5c Make a few global variables static instead of global where possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24206 a1c6a512-1295-4272-9138-f99709370657
2010-01-09 17:42:54 +00:00
Jonathan Gordon
e425371e10 Fix FS#10289 - screens showing a list need to check the show_icons setting before setting the callback. the List will now always draw icons if a callback is set (like its always done for voice)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24022 a1c6a512-1295-4272-9138-f99709370657
2009-12-16 08:36:46 +00:00
Jonathan Gordon
b2eb44ce0e FS#10824 - viewport/statusbar API rework.
Hopefully the only user visible changes are:
- fm and recording screens go by the statusbar setting (sbs or inbuilt)
- plugins go back to using the theme as they should for menus and lists
- splash screens might get cut a bit... entirely theme and splash dependant.. if there is a problematic one we can look at it later.
- hopefully nothing more than very minor screen flickerings... let me know exactly where they are so they can be fixed

New GUI screen rules:
* Screens assume that the theme (sbs+ui viewport+ maybe background image) are always enabled. They may be disabled on a per display basis, but MUST be re-enabled on exit
* Screens must not be coded in a way that requires a statusbar of any type.. the inbuilt bar will be removed shortly.
ALWAYS RESPECT THE USERS SETTINGS unless the screen requires the full display to fit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23904 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 07:25:46 +00:00
Jonathan Gordon
d86fe9fa4e crappy band-aid fix for statusbar being screwed after leaving plugins...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23720 a1c6a512-1295-4272-9138-f99709370657
2009-11-23 06:57:13 +00:00
Thomas Martitz
de7f241046 Add a browse (remote) custom statusbar item in the theme settings.
Uses the same icon that browse wps uses for now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23261 a1c6a512-1295-4272-9138-f99709370657
2009-10-19 16:08:43 +00:00
Thomas Martitz
fc30b183c8 Redraw the list after exiting the context menu to get rid of various non-blocking splashes in it if custom ui vp is used.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22744 a1c6a512-1295-4272-9138-f99709370657
2009-09-20 00:04:39 +00:00
Nils Wallménius
3200d04d75 Make the formatter functions used by the settings return a pointer to avoid usless copying of lang strings, this brought with it a long chain of const correctness and a few random cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22440 a1c6a512-1295-4272-9138-f99709370657
2009-08-20 16:47:44 +00:00
Jonathan Gordon
3e7444ff87 part two of the grand overall wps/skinning engine cleanup work:
* rename wps_engine to skin_engine as that was agreed on
* rename music_screen back to wps
* clean up the skin display/update functions a bit
* make skin_data_load setup the hardcoded default if a skin cant be loaded for whatever reason instead of doing it when it is first displayed

ignore any gui_wps or wps_ or gwps_ nameing in skin_engine/ ... these will be renamed as this work gets finished


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22135 a1c6a512-1295-4272-9138-f99709370657
2009-08-03 04:43:34 +00:00
Thomas Martitz
5c882be608 Fix FS#10478 - Used wrong directory in Browse theme files by explicitely setting current[] to '\0' in an else case.
current[] was used unitialized, so browsing themes actually used current[] from a previous call to rockbox_browse()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22094 a1c6a512-1295-4272-9138-f99709370657
2009-08-01 15:23:06 +00:00
Jonathan Gordon
5e5fc64cb2 Start of some apps/ and wps cleanup work... Move everything related to the actual drawing of the wps into apps/gui/wps_engine, things related to the actual screen are in apps/gui/music_screen.c (names are temporary unless noone comes up with anything better)
No real code changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22062 a1c6a512-1295-4272-9138-f99709370657
2009-07-27 07:21:05 +00:00
Nils Wallménius
3d4701a6e4 FS#10080
* Move strncpy() from core to the pluginlib
* Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins
* Drop strncpy() from the codec api as no codec used it
* Bump codec and plugin api versions


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-07-14 13:57:45 +00:00
Andrew Mahone
1bc67c81b6 Fix type mismatch warnings and errors exposed when building with EABI toolchain.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21769 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 00:22:26 +00:00