Some of the splashf messages that were converted
to support voicing in commit 39f8685 already had
a voice equivalent that was more appropriate,
since it also voiced parameters, and included
pauses between announcements where necessary.
Change-Id: Ia91a01c82acd6148afb4afadd64b1105802aea36
Basically, this just replaces str(STRID) with ID2P(STRID).
The voiced version of these strings cannot not have any format
specifiers (enforced by the language tooling) and are instead more
generic.
As many of these are error conditions, it is doubly important for
them to be voiced in some way.
There are some places in the code that perform their own voicing
for splash messages (eg the shutdown code); those are left alone.
Change-Id: I7d51af351e8fa5c4beee42fbfc02719f1d6591b8
When the Playlist Catalogue first appeared in the main menu
in 2011 (FS#11808), the 'Playlists' menu item was renamed
to 'Playlist Catalogue' which seems more verbose than is
necessary these days.
Since we don't have a 'Playlist Catalogue' menu item in the
onplay menu anymore, either, LANG_CATALOG can be eliminated.
Change-Id: I7f38b0847e9b982506371f4a4b473d1fb2551ad0
remove nvram and use the existing settings framework for it
add a crc check to the user_settings data to see if we need to save
the user setting file or if we can just save the status file (resume.cfg)
move volume to the system_status struct so we don't write the whole settings file
over volume changes
allow user to still export volume with save sound settings
allow the user to also export pitch and speed
name the file .resume.cfg
Rename all the SYSTEM_STATUS save file variables to TLAs to save space and
discourage tinkering
Cleanup DEBUG_AVAIL_SETTINGS output
when saving user_settings it calls status_save as well this cause the resume
file to be written twice. instead remove the callback for status_save
when setting_save is called
remove header text when saving .resume.cfg
convert status_save() to status_save(bool force)
add SYSTEM_STATUS_UPDATE_TICKS
for ATA device set this to 5 minutes
since we arlready wait for the disk to be up before saving
we don't want to miss our window
for all other every 15 minutes
that way if the battery is too low by the time shutdown comes around you
don't lose much progress
Change-Id: I27214ffd6e5d5494ee5ca83b14f04a41ba426ad7
Revisit this after discussion with chris_s on IRC and forum
Pitch menu now changes icon when pitch has been changed
uses NVRAM to save the pitch settings unconditionally
Manual updated
Change-Id: Idcb4c2b7fe42f7a203dc4bfc46285657f370d0fd
Instead of responding with a "Nothing to resume"
message when user tries to resume a playlist that's
finished playing, offer to start from the beginning
again.
Change-Id: Icc4894d4e2d2e29beb1c7646462f9af69e5733aa
The database or playlist catalogue can now be set
as the browser that is launched when pressing
ACTION_WPS_BROWSE on the WPS, unless another browser
has more recently been opened.
Previously you'd always have to exit the File Browser
first, after the player had been restarted, which is
annoying for users who prefer the database.
The playlist catalogue has become part of the MRU
browser list, so pressing ACTION_WPS_BROWSE after
selecting a track from a playlist in the playlist
catalogue will now take you back there.
Settings menus have been slightly restructured.
- Eliminated "Set WPS Context Plugin" and "Hotkey" menus
from the General menu
- Added "What's Playing Screen" menu in Settings-General
with option for setting default browser. The "WPS Hotkey"
and "WPS Context Plugin" menu options have been moved to
this menu.
- "File Browser Hotkey" is now part of the File View menu,
which means it is accessible from the browser's context
menu as well.
Overview of resulting menu structure in Settings->General:
What's Playing Screen
Default Browser
WPS Hotkey
Set WPS Context Plugin
File View
(...)
File Browser Hotkey
Change-Id: Iaa3619a791c20ce3562a1efd2cf90c72933b729a
supersedes g#5499 run .link shortcuts within menu shortcuts
and just extends it to the whole plugin stack which makes
sense as long as it doesn't cause any new bugs ;)
Change-Id: If152f53cf6894430c1173a2af1410e7d0857825e
When saving the current playlist, entries written out
to disk were rotated, but its indices were not, resulting
in first_index being out of sync between the two. Thus,
an incorrect index was used for any playlist commands,
from the moment you saved the playlist until the next
time you resumed, which didn't produce the right playlist.
Change-Id: Ie4b02ce9e07e565b1b15c938cc4b820db08e8f1f
Prefer to use designated initializers to avoid having to specify
unneeded parameters. Non-initialized members are zero-initialized
by the compiler.
Change-Id: Ia6a03c45cb3ef0b30f458d7d0ae1604a350c737c
just a few updates to open_plugin save a bit of space by granting access through a getter function
Change-Id: I2c0eaa1ade867510798b213006064ee1c00aa016
Eliminate flashing when plugins are launched
from WPS, by not enabling the SBS, and by
deferring other lcd updates.
Also prevents flashing root menu activity when
returning from plugins.
Change-Id: I7d761867027f2275c4ab8e16ada3107c7ba0be6e
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
When selecting an item, Rockbox only checked that
playback was stopped before entering the viewer and
went to the WPS if music had started playing afterwards,
but returned to the root menu otherwise
The WPS will now be displayed whenever a new item has been
selected, even if audio was paused or playing before.
boomark_autoload required slight adjustments to its return values,
so that the WPS would not be opened after a user cancels out of
the bookmark selection screen for a playlist, since it previously
returned true in that case, too.
Change-Id: I231ea788e2f80fdda5fe4ad4d2420450931f686f
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
replace applicable calls to strlcpy with calls to strmemccpy
which null terminates on truncation
in theory the strmemccpy calls should be slightly faster since they
don't traverse the rest of the source string on truncation
but I seriously doubt there is too much of that going on in the code base
Change-Id: Ia0251514e36a6242bbf3f03c5e0df123aba60ed2
Database and File Browser were sharing
each other’s selected item history before.
Since the database isn’t browsed
recursively, it’s probably unnecessary to
include its own history in the tree context
and its backups, saving.a little bit of memory.
Change-Id: I87c9aed6f7056bc481b8b7299089851ef28f9bc5
the loading track splash flashes and is ugly
add a function to display a progressbar along with the splash message
spruce up database commit message as well
Change-Id: I2749b958c1ee5dad2631a5f999a4b00ddca7f225
Rockbox could enter into an infinite loop when last_screen
and next_screen were both GO_TO_PREVIOUS, which
happened when trying to quit PictureFlow in the following
scenario:
1) start playback from PictureFlow plugin
2) return (or be returned) to WPS directly
3) wait for playback to finish and to be returned to PF
plugin
Change-Id: I0b52d4df56d416f81cef027d9024e964a734fcdc
we shouldn't need to save the last_screen unless the plugin were to
bypass the normal shutdown procedure
if its a crash do we really want to resume the plugin?
its it is intentional save the settings prior.
Change-Id: I994ed256e7b9e88add0c846825a39b298e2644dd
since the plugin browser now exits before running plugins
it has already loaded the dest data for the plugin
the plugin will be run from the root menu with the open_plugin run key
BUT, since the calls originated from the shortcuts menu
it overwrites the run key with its own
this patch allows the shortcuts menu to overwrite the dest
key as well so it can run the loaded plugin
Change-Id: I63912071d720df01c6fda25d92d9541818e52a43
recent changes broke shortcuts when they originated from the root menu
I mistakenly thought GO_TO_ROOT only happened at start and otherwise was
GO_TO_PREVIOUS
this commit also adds a few missing features for Start In Previous
to resume the last plugin running at shutdown
Additionally GO_TO_ROOT now overwrites the global last_screen so you can
return to the main menu on next startup
Change-Id: I86bf842616e25dc3d4f684ff9d476e6a5ba96b04
now that the plugin browser is resumable
exit it before running plugins
this causes a problem with the open plugin
shortcuts that call other plugins
but its now handled in count limited loop
so plugins can run plugins in a chain
and overall with less overhead too..
the problem remaining --
the plugin exits on USB, returns to ROOT
the browser resumes the
directory next time you select plugins
making for an unwanted auto return
Change-Id: If401f698207cbae824e95d69a378f13456a5dee4
make the plugin browser remember the last item between invocations
this has bugged me for the longest time dealing with the plugin_menu
Fix a very old bug fix for reloading lang strings in the lang menu
FS#8117, sending multiple ENTER_MENU_ITEM callbacks from different
areas of the code makes it hard to keep track of where your callback
is originating
Change-Id: Ib0a61558c11ee4c772134378a7020ac0e10fc4ee
On language change Stored plugins may fail to run due
to hashing on lang dependent string
allows searching by langid when the supplied key is LANG_PTR
Fixes error on hash flush where previous entry was not restored
Adds routine to update file in-place (for ATA targets)
Other targets make a temp file to copy entries
breaking changes:
ROCKBOXDIR is no longer hashed since
/.rockbox directory may soon be able to be changed
packed attribute added to op data structure -- oops
Change-Id: Ieead26609559b9c5bdadc6a95227cb2bfbb9f71c
if you added a plugin through the core settings and then used the shortcut
immediately the entry would never get flushed to disk
Change-Id: I62e876bbf0a8fa96acba1cc2582e2563401547f1
if you ran a plugin from shortcut menu that originated from the WPS
next time you pressed select in the wps it would attempt to run the
wps context plugin
Change-Id: Id72eb6a20522586efeb479aea0b1c50b53942346
leave plugin entries in ram and try not to save them unless necessary
doesn't use more space just a bit of careful ordering with the buffer
Change-Id: I1973e9ad4655c2544f596b37cee35601a0cffa94
Change Browser shortcut to the plugin icon
drop back into WPS on opx return
allow same action to exit shortcut menu as entered -- might be problematic
Change-Id: Id7013a514c8e8862ee1da44b033d10b7519e9127
Fix returns from shortcuts -- should now run plugins
Fix formatting of file names to remove path from browser shortcuts
Change-Id: I46e337110d04b84bedcb0c2945d5dd29a1860847
open_plugin allows arbitrary plugins to be called
in hotkey and start screen
replaces PictureFlow Integration
shortcuts menu plays plugins now too
rather than store paths and parameters in the settings
that reside in memory instead entries in a file are searched by hash.
after all, the plugin has to be loaded from disk anyways
----------------------------------------------------------------------------
shortcut_viewer.rock-- can now call plugins rather than taking you to them
in the browser
-----------------------------------------------------------------------------
Added a new option to menus:
F_CB_ON_SELECT_ONLY
instead of option callback every time a item is accessed
F_CB_ON_SELECT_ONLY fires callback only when item is selected
-----------------------------------------------------------------------------
Added manual entries
-----------------------------------------------------------------------------
Change-Id: I078b57b1d2b4dd633c89212c1082fcbc1b516e6a
keep running into the rigid nature of do_menu
it isn't too bad when you don't need voice but once
you do the fun awaits
do_menu likes to talk on menu enter which is in a loop when you use do_menu
I would like to move the processing to the callback
TOO BAD you only get an action and the menu_item_ex struct
you sent it when calling the function
Change-Id: Iaefd0cc133435d675b7dd27a558c504d6ccb327a
Dynamic menus had a buffer_len variable in the parent function but it
was discarded before passing to the callbacks
Why!!?? No clue but everything that used it was assuming MAXPATH
Wouldn't be surprised to see some bugs pop out from this one..
init_menu_lists() was assuming MENU_HAS_DESC and setting the
menu title + icon based on such even though it could be invalid
didn't see anywhere in the code that was currently using MENU_DYNAMIC_DESC
in relation to a top level menu but considering it caused all kinds
of corruption to the menu when I tried its probably been tried
and abandoned before...
Change-Id: I8d961d748918bfa8ea6adb5ad60491af4d739d6e
- Only load when database is ready
- Assign to file browser only when returning to WPS
- Minor speech fixes
Patch by Igor Poretsky
Re-synchronized by myself
Change-Id: If9c943b3af415a2decd3dd5803d730bd790d09fe
Reorganization
- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone
hosted targets. Most device specific code is in the
firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed.
32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.
Code cleanup
- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory
leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf,
logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and
fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
(see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.
Misc
- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.
Includes
- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/
Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight
interface and new option for hold switch, touchscreen, physical button
interaction.
Rockbox needs the iBasso DX50/DX90 loader for startup, see
http://gerrit.rockbox.org/r/#/c/1099/
The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit
gracefully and the loader will restart Rockbox on USB disconnect.
Tested on iBasso DX50.
Compiled (not tested) for iBasso DX90.
Compiled (not tested) for PLATFORM_ANDROID.
Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7