path: root/apps/plugins
AgeCommit message (Collapse)AuthorFilesLines
20 hoursplugins: Simplify plugin/codec API versioningHEADmasterAidan MacDonald3-8/+16
Replace the minimum version bound with a check on the size of the API struct. The version only needs to be incremented for ABI breaking changes. Additions to the API won't need to touch the version number, resulting in fewer merge conflicts. Change-Id: I916a04a7bf5890dcf5d615ce30087643165f8e1f
41 hours[Feature] lastfm_scrobbler add option to set beep volume levelWilliam Wilgus1-7/+17
Change-Id: Id045f0f844b67f07ba5cd47d084f5d8f1841dad8
2023-02-07tagnavi make track submenuWilliam Wilgus1-8/+1
add some faster options to the track menu add a shortcut for basename formatting sort basename results filename - by sorted filename title - just title no formatting untagged items are unsorted as well title mm:ss - title and duration Change-Id: I90aea95051f6231580ef7f1fc08cd2d0d69601fb
2023-01-29pdbox: Move core thread off COPAidan MacDonald1-1/+1
This is all but guaranteed to be broken since pdbox doesn't use SHAREDBSS_ATTR or SHAREDDATA_ATTR, needed to share memory safely with COP threads. Judging by the codec performance comparison on the wiki, if the iRiver H100 and H300 can run PDbox on one core, PP targets should have no problem doing it - they are 2-4x faster even on codecs that don't have multi-core optimizations. Change-Id: I8f556013146cb670f69cc42e80b1c768ba0f74cd
2023-01-22Add perceptual volume adjustmentAidan MacDonald3-23/+8
The perceived loudness change of a change in volume depends on the listening volume: at high volumes a 1 dB increment is noticeable, but at low volumes a larger increment is needed to get a comparable change in loudness. Perceptual volume adjustment accounts for this fact, and divides the hardware volume range into a number of steps. Each step changes the dB volume by a variable amount, with most of the steps concentrated at higher volumes. This makes it possible to sweep over the entire hardware volume range quickly, without losing the ability to finely adjust the volume at normal listening levels. Use "Volume Adjustment Mode" in the system settings menu to select perceptual volume mode. The number of steps used is controlled by "Number of Volume Steps". (Number of steps has no effect in direct adjustment mode.) It's still possible to set a specific dB volume level from the sound settings menu when perceptual volume is enabled, and perceptual volume does not affect the volume displayed by themes. Change-Id: I6f91fd3f7c5e2d323a914e47b5653033e92b4b3b
2023-01-19database: make parent tables work with pluginChristian Soffke1-28/+66
Enables the use of PictureFlow and the Properties plugin with parent tables of ALLSUBENTRIES, such as an album or album artist, instead of individual tracks. Change-Id: I18c4779ed116a48c732ae32b9629e7e0d93ce7c8
2023-01-19PictureFlow: fix_path_part checked too many charsChristian Soffke1-1/+1
Shouldn't have any effect if album_name is null-terminated, but still.... Change-Id: I51acb6c7858347d3bd922758ac4f0fcde349c9e1
2023-01-19plugins: lrcplayer: eliminate redundant functionChristian Soffke1-17/+1
Change-Id: I93fff9eb616f08bdad021180f83fea1fdb758870
2023-01-19PictureFlow: id3 functions refactoringChristian Soffke6-203/+308
- Move multiple-id3 functionality into lib - Extract retrieve_id3 function In preparation for using these functions from the Properties plugin. Change-Id: I7252581340680e32df763f1f4b41646a055fe19e
2023-01-19PictureFlow: Eliminate 'prompt' launch parameterChristian Soffke1-12/+5
This was added in commit d553bb1 and doesn’t seem to be used anymore. Return PLUGIN_OK since an error message is already produced. Change-Id: I5eaf7e7eb7c850a6fa9c3d2717c440e335f5efd1
2023-01-14PictureFlow: Add ability to insert into playlistsChristian Soffke1-3/+60
Songs or albums can now be added to new or existing playlists directly from PictureFlow. Change-Id: I6ea27e393fee0d5688385f9e91cf835be1756a7a
2023-01-14Fix red in 7f265eeChristian Soffke1-0/+1
Change-Id: Ib2496af0ed6176ea537e1f61804c1ba514374fb6
2023-01-10PictureFlow: Add 'Track Info' for tracks or whole albumsChristian Soffke1-15/+243
Context menu gains new option to view metadata for individual tracks or albums. Will display an album's length and total file size. Other fields are displayed only if they are identical across all tracks (except for the album year, which is determined by the highest value encountered). Change-Id: Ibc14cfaf2cb3d91b8d1cfbee05c6261db4975355
2023-01-06plugins: Properties: Add 'Last Modified' for audio filesChristian Soffke1-1/+1
In commit f3358eb, the Properties plugin started using the Track Info screen for audio files, which didn't show when the file was last modified. This adds it back. Change-Id: I3ce519da234a4bcadab1d64b67de0298cada8f6e
2023-01-06Fix red in 9bd5249Christian Soffke1-1/+1
Change-Id: I4aa18b4afd68e35b1af5fe40dc02cc406ee31978
2023-01-05plugins: Credits: Fix logo sizesChristian Soffke21-8/+54
Commit 1930ca8 repurposed the 'Logo' plugin's logos, whose dimensions are different from those used by show_logo, which was previously called to display the logo. Change-Id: I4d0c5f597dadfdadae244d895518bbcfefebb581
2023-01-02lua: rocklib_events fixAidan MacDonald1-1/+1
Do not spawn threads on COP as PP lacks cache coherency between cores, making it unsafe to access cacheable memory that might be accessed by the other core. Change-Id: Idf910e9cc9dad3f0bf5bdb63800ed4abaa97558a
2023-01-02Add locked actions to all soft lock targetsWilliam Wilgus2-4/+2
fiio m3k native is currently the only player with defined buttons different from the standard mapping. This allows the user to use the keyremap plugin to specify differing keymaps for their device in the locked state Change-Id: Ie0b447bba0d5978e8d23fed423df30c794afc6f9
2022-12-31[Feature/Bugfix] keyremap add Context flagsWilliam Wilgus1-14/+97
Add context flags to keyremap CONTEXT_LOCKED CONTEXT_REMOTE CONTEXT_REMOTE_LOCKED --CONTEXT_PLUGIN-- Removed -- Plugins need a custom action list supplied and a method of supplying them Change-Id: I5201d275ad0ab6130c2d05d5afb0c450f5c1746c
2022-12-31[BugFix] printcell_helper selection out of boundsWilliam Wilgus1-2/+8
on load printcell.selcol is -1 whioch is out of bounds as an index into an array Change-Id: I1e823712d268537d5d444458993ec2aa2cd253ff
2022-12-31[BugFix] keyremap browse missing root, entry count off by 1William Wilgus1-2/+5
browse_context was missing its root causing a NULL deref Export User Keys was looking for at least 4 entries when it only needed 3 Change-Id: If92ecccb36bd54e1b850ac2a969fe262b5d7fd14
2022-12-29plugins: Xobox: Fix highscore table on 2bit grayscale displaysChristian Soffke1-2/+7
After finishing a game of Xobox, background and foreground were both the same color, making the high score table invisible.. Change-Id: Iab4bad0e7d3f247a4b600ff9ec8e57207bc3832f
2022-12-29plugins: SpaceRocks: iPod keymap, use Menu button for MenuChristian Soffke1-4/+4
Missing from faa2cb9 - Thrust is now Right instead of Menu - Teleport is Left instead of Play/Pause - Pause is Play/Pause Change-Id: Idd9758a68250bcfb2adec14589dffbe1a091511c
2022-12-29plugins: Improve usability of iPod keymapsChristian Soffke50-78/+331
- Reduce need to press multiple buttons at the same time to quit a plugin - Have "Menu" be default way to quit plugins or to access plugin menu - Fall back to (Long) "Select" or Long "Menu" in cases where Menu button isn't available (e.g. in ImageViewer and many games) out of scope: boomshine, lua_scripts, Rockpaint, Doom, Duke3D, Pacbox, Quake, Sgt-Puzzles, Wolf3D, XWorld, Minesweeper, Pixel Painter, Spacerocks Change-Id: I6d4dc7174695fe4b8ee9cbaccb21bdbfe6af5c48
2022-12-27plugins: VU Meter: Ignore backlight timeoutChristian Soffke1-0/+13
Change-Id: Ic61cbd61dab18afe951b00a84b9ebeb15a8ee5f0
2022-12-20[Bug Fix] Credits Plugin don't set the back/foreground on greyscale displaysWilliam Wilgus1-7/+2
Change-Id: I2e5a37111dd055932b84962b70ff6c3eace945c7
2022-12-19remove rockboxlogo after boot INIT_ATTRWilliam Wilgus2-13/+72
nets about 5k on clipzip (less on mono, more on others) to move rockboxlogo to .initdata section Remove show_logo completely and move to main.c remove plugin stub give credits plugin its own copy credit fallback is now show_info() Change-Id: Id9ed787e605ed29e7ab1e7a74d3821cd0f840ed4
2022-12-17Remove browse_context_init()Aidan MacDonald6-51/+63
Prefer to use designated initializers to avoid having to specify unneeded parameters. Non-initialized members are zero-initialized by the compiler. Change-Id: Ia6a03c45cb3ef0b30f458d7d0ae1604a350c737c
2022-12-17settings: Remove setting ID return from find_setting()Aidan MacDonald3-5/+5
Now that all users have replaced setting IDs with direct pointers, find_setting() and friends don't need to return an ID value. Change-Id: I8c5c31bb68d3bca5350d43538335265a55fd5517
2022-12-17menus remove reserved 'param' parameterWilliam Wilgus3-41/+38
-- missed the plugin menu -- Change-Id: Iac2c9b0b8212ab5f3ac2ef90e1ac2723d212f86c
2022-12-14wps.c cleanup gui_show_wpsWilliam Wilgus1-1/+1
remove some old cruft move a few things around clean-up flow Change-Id: I138c6cd9e2d58ef526eb686333da413819df725d
2022-12-11Eliminate skin updates in between activitiesChristian Soffke1-1/+1
1) Adds way to pop activity without refreshing the skin at the same time. Activities are sometimes popped in immediate succession, or one activity is popped before another one is pushed right away. This can lead to the UI appearing glitchy, due to an activity only appearing for a split-second, which is especially noticeable with complex skins that change the dimensions of the UI viewport depending on the current activity To fix this, prevent superfluous skin updates * when switching between: - WPS and browser - WPS and Playlist Catalogue - WPS and playlist - WPS and Settings/System/Plugins * when accessing Track Info or when displaying bookmarks using the context menu on the WPS * when switching from QuickScreen to Shortcuts Menu 2) The playlist viewer activity was pushed & popped redundantly by playlist_view. ---- NB: Behavior has remained unchanged in all instances of the code where pop_current_activity() has been replaced by pop_current_activity(ACTIVITY_REFRESH_NOW). Change-Id: I56b517b8c9dba823a9fed3a3f558d7469dcea9fd
2022-11-23Fix Red lib/helper.hWilliam Wilgus1-0/+10
missing brightness defines Change-Id: I7f6d67e2eb1be9c156a02ad3ff1ba4141e7cd08c
2022-11-23plugins HAVE_BACKLIGHT helper remove ifdefs in favor of dummy functionsWilliam Wilgus38-178/+140
lessen the ifdef hell Change-Id: I52f830284e4599f3fc3a75c27dda27058b8de1a3
2022-11-23PictureFlow: Add hotkeys for changing sorting on iPods / Update manualChristian Soffke1-2/+11
Adjust current sorting by pressing both the Select button and Menu (or Play) at the same time. Change-Id: I474b79a16e278d34e3983384125015bdfb6f484a
2022-11-20Properties: Refactoring & Minor fixChristian Soffke1-110/+110
- Extract functions for * determining whether it's a file or dir * showing stats for dir or file without id3 - Remove typedef for struct - Fix unit string not being displayed correctly during scanning (use %s instead of %cB) Change-Id: I31440ebd96bca791a96c66511c3de9727608218a
2022-11-17open_plugins add name when plugin can't open & check LANG_LAST_INDEX_IN_ARRAYWilliam Wilgus1-12/+19
can't open '' was confusing for users so pass the key to open plugin in theory you could have a plugin that defaulted to these lang_ids run but its good enough to tell the user what failed to open IMO lang_id changes mess with open_plugin since it uses them as look-up keys so add checks for LANG_LAST_INDEX_IN_ARRAY to the checksum the plugin now removes entries with an invalid checksum devices with harddrives only append their .dat file so have them skip entries with invalid checksums and only notify user if a valid entry wasn't found (these users can run the open_plugins plugin to remove invalid entries) Change-Id: Icf157675beaccda785643d5a9ed032a7cde30f12
2022-11-16lua Fix potential event stack OVFLWilliam Wilgus1-1/+3
you could return values in the event callbacks that would never be processed this would eventually cause a lua stack overflow settop(0) eats all return values (if any) Change-Id: Icac6b27e592b385421275d4bd899ed3fe1065669
2022-11-16Bug Fix test_viewports.c call scroll_stop before changing viewportsWilliam Wilgus1-0/+2
Change-Id: I0dd0374dfff7fef7e4f431e7231345ee1ae6cb2b
2022-10-22PictureFlow: Minor fixes & changed defaultsChristian Soffke1-25/+46
- Fix FPS counter overlapping the artist string when "Show album title" was set to "Show album and artist at the top" - Fix disappearance of center album if certain Settings menus had been accessed while list of tracks was showing and you then returned to the list of albums - Fix disappearing album artwork after cache had been created until you started scrolling - Enable context menu even if WPS integration is disabled - Make splash screen appear only on first launch and for database updates, when it is actually on screen for long enough - Eliminate 'Loading' splash if tagcache is in RAM - Show both album and artist by default on displays whose height > 100px Change-Id: Ie70c0d9093789294d288a4f88338ee4a588bf4a5
2022-10-13Revert "RFC: Get rid of mpegplayer plugin"Solomon Peachy53-0/+20747
This reverts commit d25d24812e8120c0eb133a412287ac030eb185c9. Change-Id: I1563223e343fb1e2eda72a45823b38350025ff93
2022-10-13Revert "Remove YUV blitting functions and LCD modes"Solomon Peachy1-0/+91
This reverts commit fe6aa21e9eb88f49005863efd2003d0982920048. Change-Id: I8bb1e5d6c52ed1478002d2140ef494ec5d62b8e3
2022-10-10keyremap: Use '%z' when printing size_tSolomon Peachy1-1/+1
Change-Id: Ie752c8b8e35b98e52ed8999e92d5c65181109240
2022-10-05gui: Remove "enum list_wrap" from list action functionsAidan MacDonald14-24/+17
Removing the "list_wrap" argument is actually pretty easy. In practice, almost all lists are using LIST_WRAP_UNLESS_HELD behavior so we can make that the default. A couple of lists disable wraparound with LIST_WRAP_OFF; this is now achieved by setting the list "wraparound" flag to false when setting up the list. LIST_WRAP_ON was unused and is of questionable value, so it has been removed entirely. This makes list wraparound behavior a property of the list, controlled solely by the "wraparound" flag. The result is a simpler list API and implementation, without changing the behavior of any lists. Change-Id: Ib55d17519e6d92fc95ae17b84ab0aaf4233bcb5a
2022-10-05gui: Remove gui_synclist_limit_scroll()Aidan MacDonald11-13/+0
Since gui_synclist_do_button() overrides the setting at runtime there is no reason to have a public API call to set it. Really it should be a local variable, but it will be simpler to do that after refactoring how list wraparound behavior is handled. Change-Id: Id09d42197814102693752a9f64db8325118ca796
2022-10-05gui: Remove redundant copies of list scrolling settingsAidan MacDonald1-2/+0
gui_list_screen_scroll_step() and gui_list_screen_scroll_out_of_view() just copy the global setting into a local static variable. Since they don't do anything special when the setting changes it's simpler to use the global setting directly. Change-Id: Ib6a7bf4e09b6dabbc1597cf28ddbafc0bc857526
2022-10-03Remove YUV blitting functions and LCD modesAidan MacDonald1-91/+0
None of this is needed now that mpegplayer is gone. Change-Id: I360366db8513e4d988021e8d7b7d8eb09930efb8
2022-10-02RFC: Get rid of mpegplayer pluginSolomon Peachy53-20747/+0
It might have made sense once upon a time, but in today's world... Change-Id: I5d638e6f7a2308c50ab12bd901338f02cf426aae
2022-10-02gui: Remove show/hide selection option in listsAidan MacDonald2-2/+0
The implementation of the "show_selection_marker" option in lists isn't great. It's a cosmetic option used to hide the selection, but it causes the list to do funny things to the selected_item and doesn't play nice with voiced menus, since these rely on the selection to determine what item is spoken. There are only two user-facing lists that use the option, the "Rockbox Info" screen and a menu in the superdom plugin. The rest are debug screens, and cosmetics don't matter much there. Given how little used the option is, and its issues, removing it seems reasonable. Change-Id: I2c70b3e4c74ff3cc6dbac46366a371d271dd2d58
2022-10-02gui: Constify list title textAidan MacDonald1-1/+1
Use const char* pointers for list titles. Only one debug menu actually modifies the title, and in that case it's legal to cast away const because the title points to a known mutable buffer on the stack. Change-Id: Idb8ab307b9a6ec23a93d8420c5e19fafd9f59c30