summaryrefslogtreecommitdiffstats
path: root/apps/plugins
AgeCommit message (Collapse)AuthorFilesLines
9 daysProperties plugin: Eliminate redundant Track Info codeChristian Soffke1-164/+72
When opening an audio file from the file browser or database using the Properties plugin, it will now use existing code from the Show Track Info screen for displaying metadata. The menu option has been renamed accordingly. Change-Id: I5a824865b9f980151b91aff3c3c18ec45830a12c
11 dayspictureflow: fix album index alignment in load_album_indexAidan MacDonald1-0/+1
Change-Id: I7c3c86ffdab62859ce88faeeb84160ea52a4626a
11 dayspictureflow: fix bug in calculation of album art buf sizeAidan MacDonald1-1/+2
I intended to check for enough space in buffer but this isn't really doing it and it is making aa_bufsz slightly too big so it's a possible buffer overflow. Restore the old ALIGN_DOWN(..., 4) rounding in case it's important, if not, then no harm done. Change-Id: I904f255ac79a77d5328b44667502ceae8308e659
2022-05-02Fix some non-portable alignment valuesAidan MacDonald1-24/+10
UBSan reports an avalanche of unaligned pointer bugs stemming from hardcoded 4-byte alignments used in certain places. Use sizeof(long) instead to align to the machine word size. Change-Id: I28e505212462c5268afa24e95df3a103ac3e2213
2022-05-02plugins: fix out of bounds read in chopperAidan MacDonald1-13/+12
GCC complains about this when compiling with UBSan. Change-Id: I4bd8ff2b47882ab95620dc7750a9a80f823cc2ea
2022-04-18ImageViewer: Fix buffer overflowChristian Soffke1-1/+5
np_file is a buffer of size MAX_PATH. After removing only the file name component and leaving the rest of the path, the available space may not be sufficient for appending another file name (possibly of size MAX_PATH itself) to it. This can occur after a file of acceptable length is opened in ImageViewer, and you then advance to another file whose path (including the file name) is longer than MAX_PATH. Change-Id: Ideadd9451359bd5735bce92fca5d983e61f300e9
2022-04-16Fix remaining red from 3fcdadce24Aidan MacDonald1-1/+2
Change-Id: I619a637bdf1fb932c3618f1f40aaa1c9e7f98300
2022-04-16PictureFlow: Disable 'Album Not Found' splash when stoppedChristian Soffke1-5/+8
...and go to last album, even if it hadn't been selected for playback Change-Id: I44013e930a1feb873f128c2885ecb8ddaf4ae3ff
2022-04-16PictureFlow: Delay LCD Update until center slide is loadedChristian Soffke1-3/+12
Eliminates flashing of slide right after launch or when changing sorting on the M3K using the volume buttons Change-Id: Icd317e0b0d5b939269dc8dafd30d0c0f9daa5fd9
2022-04-16plugins: Add multiboot select pluginAidan MacDonald4-1/+352
This plugin provides a menu for easily editing the root redirect file on targets that support multiboot. You can select a new root from a list of Rockbox installations detected on the filesystem or remove all redirects to boot from the default location. To avoid searching the whole filesystem, only subdirectories of the volume roots are checked for valid installations. Only installations that are compatible with the current player will be displayed. Change-Id: I7dcbadfd97873b87817870e61d2ae37956d2da00
2022-04-16apps: Add ability to do a clean rebootAidan MacDonald7-1/+10
Allow a clean shutdown to end in either power off or reboot. Add a new event SYS_REBOOT to signal it and sys_reboot() to trigger the event. SYS_REBOOT signals a reboot request and should be listened for alongside SYS_POWEROFF events. Change-Id: I99ba7fb5feed2bb5a0a40a274e8466ad74fe3a43
2022-04-09imageviewer: limit progress bar LCD update rateAidan MacDonald1-1/+13
The progress callback doesn't rate limit LCD updates, which causes excessive slowdowns (up to 150x!) on some targets. Limiting updates to 20fps solves the problem and should boost load speed across the board, particularly for large images and animated GIFs that may run the progress callback thousands of times. Change-Id: Ia48924d4dcb24c1111509329581809be494d0165
2022-04-07keyboard.c Use viewports, move text box posWilliam Wilgus4-0/+49
allows items to be moved around with less code changes remove scrolling I was not overly impressed with it add test_kbd plugin Change-Id: Ic183c7221bda9405891632704f3a7bbfd79bfe83
2022-04-02lastfm_scrobbler check for back to back repeat entriesbootloader_shanlingq1_v2bootloader_fiiom3k_v3William Wilgus1-4/+20
if you skip a track after the halfway point the scrobbler may double post with slightly different timestamps but the same track info take a crc of the non-unique part and check against the previously written track Change-Id: I676342c4cd76f632131d9cb6d9f7d2f59df357e6
2022-04-02lastfm_scrobbler check pointers for validityWilliam Wilgus1-4/+11
we need to make sure we don't deref NULL pointers Change-Id: I9c564b681cd20222c3a134680e60a310b2eb846c
2022-04-01ImageViewer: M3K keymap allow scrolling up/downChristian Soffke2-0/+10
Change-Id: I385354688b1d8f8df4d44e7e177e23bdb6ed3df4
2022-04-01lastfm Scrobbler: Substitute album artist for empty artist.James D. Smith1-5/+6
Change-Id: I66dda13ec2cbb592ebe0d269f0c7eff749bc737a
2022-03-27PictureFlow: Configurable album sortingChristian Soffke1-49/+401
Now offers sorting by: - Album artist, then album name - Album artist, then album year - Album year - Album name Years are determined by the most recently released track appearing on an album, if the value differs between tracks. On the M3K, instead of by going into Settings, volume buttons can also be used for quickly adjusting the current sorting Change-Id: I2c50059617114fb418336c466fdd37415473ac7d
2022-03-27PictureFlow: Prevent queue overflow & simplify lockingChristian Soffke1-15/+9
Change-Id: I41f620a4fdaf155913a944e7caf4c015990a53d4
2022-03-27PictureFlow: Write bitmaps in one goChristian Soffke1-7/+1
Analogous to an earlier change w.r.t. reading bitmaps Change-Id: I68e71160b51eb893f18071cc77d9c9a3ef84de0f
2022-03-26lastfm_scrobbler fix yellow for targets w/o storage callbackWilliam Wilgus1-1/+2
Change-Id: I0a3dbcf8c8c0c72efa2506d1998fd24d228ed91d
2022-03-26lastfm_scrobbler fix red for devices w/o storage callbackWilliam Wilgus1-0/+7
Change-Id: I2062534b6e2a82171b856cc76efe8b78dbf9b13c
2022-03-26LastFm remove scrobbler from core make a TSR plugin WIPWilliam Wilgus3-0/+586
remove scrobbler from core make it a plugin Change-Id: I606810eba7d570dfb332789aed913c6f8adc7fb7
2022-03-06keyremap add plain text import and exportWilliam Wilgus1-15/+507
allows users to edit and view keymaps in a text editor (parser requires one entry per line (LF or CRLF work as line endings) allow naming of files on save Change-Id: Id6627171eb96210b2deeef8d15bab3f8d1e0ab3f
2022-02-24keyremap plugin use yes_no prompts, bugfixWilliam Wilgus1-32/+22
use the supplied yes_no dialogs for file delete, key reset, save prompt return to root menu automatically after loading a file fix bug where deleting the last file in the list exited the menu Change-Id: Ib98f6b200b9dee3e4350ad4d7ef80bbb95c77481
2022-02-23Core Keyremap Allow setting keymap from pluginWilliam Wilgus1-1/+34
Allow setting and removing keyremap on the fly It was pretty annoying trying to work out a keyremap with a restart required to set the remap and was quite annoying when I was no longer able to navigate to the plugin or filebrowser due to setting the wrong remap now you can try out a keymap and if it doesn't work a restart will sort things out Change-Id: I848fb3bd759f9684ac2497324a371f92b7464f7b
2022-02-23Add custom action mapping to coreWilliam Wilgus8-1/+1630
results of an idea I discussed in IRC changed the way the lookup in the remap file works.. entries consist of 3 int [action, button, prebtn] context look up table is at the beginning action_code contains the (context | CONTEXT_REMAPPED) button_code contains the index of the first remapped action for the matched context [0] CORE_CONTEXT_REMAP(ctx1) offset1=(3), count=(1) [1] CORE_CONTEXT_REMAP(ctx2, offset2=(5), count=(1) [2] sentinel, 0, 0 [3] act0, btn, 0 [4] sentinel 0, 0 [5] act1, btn, 0 [6] sentinel, 0, 0 Note: last entry of each group is always the sentinel [CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE] contexts must match exactly -- re-mapped contexts run before the built in w/ fall through contexts ie. you can't remap std_context and expect it to match std_context actions from the WPS context. -- Done -- Code for reading core remap entries -- Done -- import of core remap entires from disk -- Done -- plugin to set new key mapping (the hard part) The plugin is started and FULLY functional you can add actions and contexts you can change context, action, button, prebtn delete keymap files load keymapfiles save user keymaps test keymaps before applying them loading keymaps to core still requires restart ----------------------------------------------------------------------------------------------- Change-Id: Ib8b88c5ae91af4d540e1829de5db32669cd68203
2022-01-30PictureFlow: Fix broken (iPod) keymapChristian Soffke1-4/+0
I must have only tested de8ee6c9e9 using my custom iPod keymap. Re-mapping the "Left" and "Right" buttons in this context badly breaks existing behavior in Pictureflow when using Rockbox's default iPod keymap. Change-Id: I2aff6297d7e229a056383afe6074c41829b38e2d
2022-01-09ImageViewer: Fix FS#13329 (GIF File handle/memory leaks)Christian Soffke3-16/+40
Change-Id: Ib3ef22716c8ba35c7bb78231ca4f5c7155f16018
2022-01-09ImageViewer: Fix GIF Decoder progress barChristian Soffke1-1/+1
Change-Id: I9db9b27f9e12f08323534038bc6f0882329a2c00
2022-01-09ImageViewer: Fix gifs sporadically crashing on targetsChristian Soffke1-1/+1
ensure 32bit alignment Change-Id: I11e0df599403a888fa63dab8f1c5a94a5f35d9ad
2022-01-09ImageViewer: Improve smoothness of animated gif playbackChristian Soffke2-3/+7
Don't disable grayscale overlay, don't show "resize" messages between frames and and don't clear display unless actually necessary Change-Id: I9f501d8280ce0c8f26f4345088d805d1b84cf143
2022-01-09ImageViewer: Fix crash when zooming on grayscale devicesChristian Soffke1-1/+3
lcd_update was called while the grayscale overlay was running regression, apparently introduced by 0ceaff2 (only reproducible on target, not in Simulator) Change-Id: Ife0ef359e19a03a6dc033070a11ae5843ee555e6
2022-01-05PictureFlow: Don't sync playlist after every fileChristian Soffke1-2/+2
Since we manually do it later, syncing after every file is unnecessary and can make the audio queue overflow Change-Id: Ia7ab6ee345b25a453c56f48ed0d330b04da6da94
2022-01-05Printcell.c fix list item scrolling behaviorWilliam Wilgus1-12/+34
make every item in a selection scroll when no columns are selected otherwise title & currently selected column will be the only scrolling lines Change-Id: I3bab480f47997b89a01563a69dc68e6633152cf5
2022-01-04PictureFlow: Don't insert tracks if track list not availableChristian Soffke1-4/+15
Change-Id: Ic6d5083bfe7daf3a8639b1405b8be9dae73eb30c
2022-01-04PictureFlow: Switch between albums from track viewChristian Soffke1-4/+41
Prev/next buttons on iPods or Fiio M3k can now be used to select another album without having to return to the albums view first. Scroll wheel/strip handles scrolling up and down in the track list as before. Other targets probably have the necessary buttons for this, so the keymap can be extended in the future (same goes for alphabetic browsing) Also prevents queue overflow and handles failure case for track list tagcache retrieval. Change-Id: Ic8ff4471e1583d1ab1f7d16911b15705a7f60aca
2022-01-04PictureFlow: Show track list loading messageChristian Soffke1-0/+15
When tagcache or storage are busy, it can take a few seconds for the list to appear. Meanwhile, the screen used to be either blank or the cover was left suspended in mid-animation, if the animation was skipped. Change-Id: I655320c4f92ff496834e252cc77ece47723a8677
2022-01-04PictureFlow: Fix buffer overflowChristian Soffke1-101/+126
create_track_index appears to have relied on buflib_buffer_out returning a certain amount of space without checking that it was actually available. In at least one test case, as little as 16 bytes were returned, leading to a buffer overflow and later a segfault. Change-Id: Ic0783f3cd5bf015803b7ce90537ba38ab3434bea
2022-01-04PictureFlow: Utilize "Current Playlist" menu (+ GS fixes)Christian Soffke1-91/+125
When appending tracks, they were always inserted last. You can now choose from the usual options offered by the "Current Playlst" context menu to queue or to insert tracks at the requested position. The splash after appending that forced you to wait for 2s has been eliminated. Also fixes crashes on targets that use the grey_core lib if a splash showed up when playback was started, e.g. LANG_PLAYLIST_CONTROL_ACCESS_ERROR, or when PictureFlow quit. Change-Id: I661c59057b5315ba793ee1674f7a2ea1ffd7968d
2022-01-04printcell_helper.c bugfix scrollbar spacingWilliam Wilgus1-2/+15
when the scrollbar was on left and number of items was < nb_lines the spacing between title and items was off by sb_width selected item no longer draws separators when no colums are selected Change-Id: If564261759721eb7bcf3b7b4ba58bf9c130771b0
2022-01-01gui lists add callback for owner drawn itemsWilliam Wilgus4-17/+632
allow the guts of gui_sync_list to be used with owner drawn items WIP printcell_helper-- goal: allow data to be displayed in a spreadsheet format with an easy to use interface printcell_set_columns(gui_synclist, title, icon) sets title and calculates cell widths each column is identified by '$' character ex 3 columns title = "Col1$Col2$Col3" also accepts $*WIDTH$ ex 3 columns varying width title = "$*64$Col1$*128$Col2$Col3 printcell_enable(gui_synclist, enable) sets the printcell function enabled After setting the columns and enabling the printcell function items can be added to the list like normal column items are supplied delimited by '$' ex item = "Item1$item2$item3" they will be placed in cells defined by set_columns and scroll if the cell is too small --Fixed for 1 bit & 2 bit displays Change-Id: I49bd7903005d7a54e93af4379b0cdea63c860656
2022-01-01Solitaire: Fix Quit option with no saved gamesChristian Soffke1-1/+1
Selecting "Quit" would start the game instead of quitting if no games had previously been saved. Change-Id: I4874288cc1087697dfb593a371e25da473870c8e
2022-01-01PictureFlow: enable theme in settings menusChristian Soffke1-0/+4
Submenus for adjusting settings were previously left unthemed Change-Id: I073c7aabfdd9ce4e4c10c4c0dc689112c29b2a58
2021-12-28Database: show song's album in PictureFlowChristian Soffke2-6/+38
Adds a 'PictureFlow' command to database context menus for quickly bringing up the album for a song in PictureFlow. Change-Id: I88cd89e93d9418558c698a15fc7fb5d9a90fb262
2021-12-24PictureFlow: Show background cache building progressChristian Soffke1-8/+17
There was no easy way to see how far along PictureFlow was in building the art cache, once background scanning had commenced. PF now uses the screen area normally used by the FPS meter to show completed percentage until building the art cache has finished. Change-Id: I60fa7187b522cda219e35f5a9f630835ecac6883
2021-12-24PictureFlow: reset idle timer when art cache is being builtChristian Soffke1-0/+18
- creating the album index and art cache can take longer than what the idle poweroff timer is set to, so make sure to reset it periodically - when finished, make sure progress is stored to disk immediately, so it isn't lost on idle poweroff Change-Id: Ibe88a260e4495b1bd007f37950e8c5fbc9364975
2021-12-23battery_bench: Log battery current informationAidan MacDonald1-1/+16
Works on targets supporting CURRENT_MEASURE. Change-Id: I021b995c46fab923287ad54e72863695ef9ed58a
2021-12-09Credits plugin: use black backgroundChristian Soffke1-0/+4
Sets the lcd background color to black and foreground color to white when displaying the 16bit logo, so that it always blends in with the background regardless of theme colors. Change-Id: Ia3afde178866b84d194c2dd839dac24f8c6e8d05
2021-12-08Credits plugin: whitespace fixesChristian Soffke1-11/+11
Change-Id: I21689357ad7e0ce86cc31ecfa7a94f1f8b620120