summaryrefslogtreecommitdiff
path: root/apps/tree.h
AgeCommit message (Collapse)Author
2018-12-14Fix tree.c->tree_get_entry_at() buffer overflowWilliam Wilgus
I observed a crash on buflib>move_block after dumping ram I noticed that the buffer for filetypes was being corrupted tree_get_entry_at returns a entry from the buflib 'tree entry' buffer filetree.c->ft_load writes data to this buffer before checking if it has reached the last entry resulting in buffer overflow that overwrites the next entry in the buffer ['filetypes'] Patch checks that the index passed to tree_get_entry_at() is in range otherwise it returns NULL Added checks + panic in other functions using tree_get_entry_at() Fixed tree_lock_cache() calls in playlist and filetree Change-Id: Ibf9e65652b4e00445e8e509629aebbcddffcfd4d
2018-10-18Fix menu warningsWilliam Wilgus
change offending bool return to int warning: cast between incompatible function types from '_Bool (*)(void)' to 'int (*)(void)' [-Wcast-function-type] forgot to remove -- typedef int (*menu_function)(void); Change-Id: Ie4c8d3ddb0fb7843c4ec584203350d658d6bee3e
2014-03-10Implement time-based resume and playback start.Michael Sevakis
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>
2011-12-19Add more INIT_ATTR and add config.h includes to header files with INIT_ATTR.Boris Gjenero
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31370 a1c6a512-1295-4272-9138-f99709370657
2011-12-14FS#12378 : Remove various unused code, and comment out some unused code and ↵Boris Gjenero
data for reference or future use. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31256 a1c6a512-1295-4272-9138-f99709370657
2011-11-15FS#12251 - User shortcuts in the main menu.Jonathan Gordon
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-08-30GSoC/Buflib: Enable compaction in buflib.Thomas Martitz
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-03Cleanup tree.c cache handling a bit.Thomas Martitz
* 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-04-30Don't (partially) apply changes to max entries in the file browser ↵Magnus Holmgren
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
2010-12-15Rename the NO_CONTEXT flag to NO_CONTEXT_MENU so that the name more clearly ↵Alexander Levin
conveys what the flag does git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28837 a1c6a512-1295-4272-9138-f99709370657
2010-12-15remaining of FS#11777. Use rockbox_browse() to display playlists in Playlist ↵Teruaki Kawashima
Catalog. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28836 a1c6a512-1295-4272-9138-f99709370657
2010-12-14FS#11777: enhancement for rockbox_browse()Teruaki Kawashima
* 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-10-22simplify rockbox_browse a bit and reuse buffer.Teruaki Kawashima
use const for argument of set_current_file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28328 a1c6a512-1295-4272-9138-f99709370657
2010-08-27Use system headers a bit more: use host's fcntl.h for O_RDONLY etc.Thomas Martitz
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-27Make getcwd match the posix variant, make get_current_file() behave similar ↵Thomas Martitz
to it and add a few sanity checks. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27903 a1c6a512-1295-4272-9138-f99709370657
2010-03-03FS#10756 - Free unused init codeThomas Martitz
Introduce a new .init section for initialisation code, so that it can be copied to an area which is later overwritten before calling. The stack/bss can then overwrite that code, effectively freeing the code size that the initialisation routines need. Gives a few kB ram usage back. Only implemented for PP and as3525 so far. More targets could be added, as well as more functions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25013 a1c6a512-1295-4272-9138-f99709370657
2009-09-20Redraw the list after exiting the context menu to get rid of various ↵Thomas Martitz
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-05-21Remove some unused declarationsBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21010 a1c6a512-1295-4272-9138-f99709370657
2008-10-08Fix FS#8949 - Alphabetical directory listing reversed after "Error Accessing ↵Nils Wallménius
Directory", patch by pondlife, some long line police by me, also kill a few error splashes in functions that could be called by threads other than UI git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18742 a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg
later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-02-10Better bookmark resume handling, in particular when resuming a directory. If ↵Magnus Holmgren
Load Last Bookmark is set to Yes and the last bookmarked file could not be found, play the selected file instead. When selecting a bookmark for a missing file in the bookmark list, show a message that resume isn't possible (and don't play any selected file if Load Last Bookmark is set to Ask). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16267 a1c6a512-1295-4272-9138-f99709370657
2007-08-05Accept FS#7486 - shortcuts plugin.Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14191 a1c6a512-1295-4272-9138-f99709370657
2007-06-10Move the root_menu() call out of tree.c.Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13609 a1c6a512-1295-4272-9138-f99709370657
2007-05-24Remove unused struct membersNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13491 a1c6a512-1295-4272-9138-f99709370657
2007-04-18Move the inbuilt filetype info into filetypes.c and rename the defines. Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13201 a1c6a512-1295-4272-9138-f99709370657
2007-04-09FS#6997 DB/tree Cleanup - remove unused field "currextra2".Miika Pekkarinen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13078 a1c6a512-1295-4272-9138-f99709370657
2007-03-17#ifdef code that only makes sense for multivolume targets, make private ↵Nils Wallménius
functions 'static' git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12813 a1c6a512-1295-4272-9138-f99709370657
2007-03-06Fix FS#6716 - make it easier to follow the selected file going in and Jonathan Gordon
out of the trees git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12638 a1c6a512-1295-4272-9138-f99709370657
2007-03-01Introducing the root menu!Jonathan Gordon
Blind users: get a new voice file as there are lots of lang changes and new strings. FS#6630 or RootMenu on the wiki for more info. complaints to /dev/null :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12528 a1c6a512-1295-4272-9138-f99709370657
2007-02-14Cuesheet support by Jonathan Gordon and me (FS #6460).Nicolas Pennequin
Everytime an audio file is loaded, a cue file with the same name is searched for. A setting allows to disable this (default is off). Cuesheet files can also be viewed in the file browser. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12304 a1c6a512-1295-4272-9138-f99709370657
2007-02-06More HAVE_TAGCACHE by Austin Appel Jonathan Gordon
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12213 a1c6a512-1295-4272-9138-f99709370657
2006-08-15Finally, the new button action system is here, thanks to Jonathan Gordon. ↵Linus Nielsen Feltzing
Some button mappings have changed and other things may break. Comments should go to the forum, http://forums.rockbox.org/index.php?topic=5829.0 or the mailing list. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10582 a1c6a512-1295-4272-9138-f99709370657
2006-08-03Barry Wardell's keymappings for H10Daniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10446 a1c6a512-1295-4272-9138-f99709370657
2006-04-10Enabled the quickscreen for iAudio X5. Globally, REC enters the menu and ↵Zakk Roberts
holding REC enters the quickscreen. Also moved the quickscreen #define to model config files, which simplifies the checking for it and makes checking more consistent. Cleaned up keymappings in quickscreen.h. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9590 a1c6a512-1295-4272-9138-f99709370657
2006-04-04iAudio X5: joystick click selects in the file browser, like on the iriver ↵Linus Nielsen Feltzing
targets git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9484 a1c6a512-1295-4272-9138-f99709370657
2006-04-02Patch #2711 by Alexander Spyridakis with some changes by me: adds load/save ↵Hristo Kovachev
of presets to different files; Also fix the preset menu context menu not working on the remote git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9425 a1c6a512-1295-4272-9138-f99709370657
2006-04-02Updated quickscreens, now they look better than before while still retaining ↵Zakk Roberts
the ability to scroll - this is about as good as it gets until viewports are implemented. Also enabled the quickscreen for iPods. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9421 a1c6a512-1295-4272-9138-f99709370657
2006-03-29Add support for loadable vkeyboard layoutsFrank Dischner
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9347 a1c6a512-1295-4272-9138-f99709370657
2006-03-28Moved main menu button to REC for both file browser and WPSDaniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9333 a1c6a512-1295-4272-9138-f99709370657
2006-03-26swap PLAY and REC for x5, I liked that way!Daniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9268 a1c6a512-1295-4272-9138-f99709370657
2006-03-26Initial version of tagcache! There are still some bugs in the engineMiika Pekkarinen
and much more problems with the UI. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9256 a1c6a512-1295-4272-9138-f99709370657
2006-02-24first gigabeat commitMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8831 a1c6a512-1295-4272-9138-f99709370657
2006-02-24Button driver for iAudio X5Linus Nielsen Feltzing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8828 a1c6a512-1295-4272-9138-f99709370657
2006-02-22Remove some unused/deprecated definesHristo Kovachev
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8777 a1c6a512-1295-4272-9138-f99709370657
2006-02-05Use the iPod 4G button mappings for the iPod 3G as well (at least for now)Dave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8591 a1c6a512-1295-4272-9138-f99709370657
2006-02-02Patch #1421422 - Backdrop image patch started by Linus, finished by me. ↵Dave Chapman
Adds ability to set backdrop images for file browser and menus (store full-screen bitmaps in /.rockbox/backdrops/) and also the ability to set a full-screen background image in a WPS using the %X|filename.bmp| WPS tag. Currently only implemented for targets with colour LCDs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8536 a1c6a512-1295-4272-9138-f99709370657
2006-02-02iPod: Fix some button-mapping bugs and inconsistenciesDave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8531 a1c6a512-1295-4272-9138-f99709370657
2006-01-20iPod: Change button mapping in the file browser. Now MENU is mapped to ↵Dave Chapman
menu, and PLAY/PAUSE is mapped to the WPS git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8399 a1c6a512-1295-4272-9138-f99709370657
2006-01-18Matt v.d. Westhuizen's iAudio X5 keypad adjustmentsDaniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8366 a1c6a512-1295-4272-9138-f99709370657
2006-01-12Work-in-progress iriver iFP-7xx port by Tomasz MalesinskiDave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8342 a1c6a512-1295-4272-9138-f99709370657