With no control file present, the message
"Error accessing playlist control file"
was displayed, due to playlist_resume being
called from gui_usb_screen_run.
You were likely to only run into this after a clean
install, if you hadn't listened to any music yet.
It probably makes sense to move the check for the
existence of the control file into playlist_resume,
and not even have it show a separate access error
message when the file doesn't exist.
Change-Id: Ib3a643c43d3d4d499fa5a13c01955779d69cd357
people don't like having to remember to run the TSR plugin so
lets meet them halfway
all tracks are added with timestamp, elapsed, length, trackname
added buffering for ATA devices
still needed:
-Done -- a plugin that parses for duplicates and reads the track info
to create the actual scrobbler log
(log can be truncated once dumped)
this should allow you to run the plugin at leisure
later I'd like to expand this logging to allow
track culling based on skipped songs..
remove the TSR plugin as hard disk no longer need to use it
Change-Id: Ib0b74b4c868fecb3e4941a8f4b9de7bd8728fe3e
- After rebooting, unless the current playlist
had been manually resumed already, the "Save
Current Playlist" option in the root menu's/
playlist catalogue's context menu failed to work.
- Eliminate error message attempting to view current
playlist when no control file present.
Change-Id: I58f1d3dc6f256fcee106ff5a17f69fa46d67b2e4
...On non-multidrive targets it will always evaluate to true because
it effectively ignores the argument passed in.
Instead use 'x < NUM_VOLUMES'
Fixes regression introduced with a41a001258 on non-multivolume devices
Change-Id: I1a620af113c87cf3227ef8b40d0b51b2600cd816
Turns out they did not swap the stereo switch lines on us,
so this setting isn't really useful. Repurpose it to allow
the user to force the device into headphone or line output mode.
Note that settings other than "Automatic" will cause jack detection
to not work.
Default Automatic.
Change-Id: If94499fbb8f0d92111811fe51f6107ce213b66ad
* volume_partition() wasn't defined for hosted targets
* wrap the "special" volume stuff in HAVE_MULTIDRIVE
Change-Id: Icbea256ab6438e1f7e45d361ed61724feec7ef0b
This is an example of what could happen:
HD1: Not present
ouping Not present
ouping Not present
ouping Not present
We have up to 4 fixed volume slots (==partitions) per drive, but
shouldn't display an entry if the slot isn't used, ie the normal case.
Instead, we _were_ displaying a partially-unitialized entry!
There is a special case for targets that support multiple *drives*, in
that we want to show 'not present' for the first volume slot of the
2nd drive.
Change-Id: I717edd305cd654ff4e13ba9ffb57e7a4c9935c17
This option is especially useful for theme creators that want to create themes with lockscreens. When text is scrolling, it is breaking the lockscreen so setting this option to true prevent this. Text will continue to scroll normally in all other contexts.
Change-Id: I194f6837217881d50f567a775b81d0b422caf35c
* Create new 'sector_t' type alias:
* uint64_t for all targets with HAVE_LBA48 or HAVE_SDUC
* unsigned long for the everything else
* Alter all storage APIs to use sector_t instead of 'unsigned long'
* Alter Volume/Partition/storage info structures to use sector_t
* Disk cache converted to sector_t
* ATA Core:
* convert to using sector_t for sector addresses and drive sizes
* Always fill out upper 16 bits of LBA48 addresses
* IDENTIFY INFO is fixed at 512 bytes, not SECTOR_SIZE
* USB mass storage:
* convert to using sector_t for sector addesses and drive sizes
* Implement READ_16/WRITE_16 for LBA48 addresses
* Convert FAT code to use sector_t for all sector references
* output_dyn_value() now accepts int64_t instead of 'int'
* Corrected "rockbox info" to work for (MULTIVOLUME & !MULTIDRIVE)
* Better reporting of disk and (logical+physical) sector sizes in debug info
* Detect SDUC cards and report on storage debug_info screen
To-do: SDUC
* Refactor SD core to remove duplicate code in every driver
* Card probe and init state machine
* Implement core SDUC support
* SD2.0 needs to be 2.0+ (fixed for jz47xx and x1000)
* Host and Card ID (ACMD41)
* 32-bit addressing for all read/write/erase operations (CMD22)
* ADD SDUC to target device drivers, defining HAVE_SDUC as appropriate
Change-Id: Ib0138781a0081664d11511037685503df1b93608
This adds a "Legal Notices" entry under the System menu that will
launch the text viewer plugin to display:
1) COPYING.txt (containing the GPLv2 overall license for Rockbox)
2) LICENSES.txt (containing all other relevant licenses and notices)
Change-Id: Id41ae491b6f9a6ec5663090246d0f6b661cddea5
'sleep' can now appear in the data field of a 'time' shortcut
without being followed by a number, allowing you to stop a
running timer, or to start a new one using the default sleep
timer duration (the duration setting can already be added to
the Shortcuts menu as well).
Also see here:
https://forums.rockbox.org/index.php/topic,54312.msg250940.html
Change-Id: I9d0e62ef1b6187c35133067349729a4d94273c7a
Hopefully this should cover our bases so we can change
the behavior of the stereo switch to keep line out working
when they change the hardware on us!
Change-Id: Ic36bcb3778d5681a5f3f158c689df9c1420c1d7e
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
The "Reload After Saving" setting was added in
g3347 (4f83e66) to solve FS#13287, by allowing
you to bookmark a modified playlist after saving,
without having to manually reload it first.
Since the rewrite of playlist_save in g5192
(90e3571), a modified playlist doesn't have to be
reloaded anymore in order to be bookmarked after
it's been saved, unless it contains queued tracks.
To cover the remaining use cases of the previously
available option, Rockbox will now offer to remove
any queued tracks from a playlist when saving it.
Change-Id: I2d6f12bcce14d8ff41a4d921ce84d628774103ac
sprintf, strcpy, memccpy can all just go thru path_append
with the added benefit of some path sanitizing too
Change-Id: I33510b56a364b8b3a0b06f2ff14b76491f6e3870
The resume index into the playlist file
that was used for bookmarks created immediately
after saving a shuffled playlist, or for reloading
the saved playlist (in case "Reload After Saving"
was enabled), tended to be incorrect.
The playlist file effectively isn't shuffled
anymore after saving it to a file, but the
resume index may still have to be rotated unless
playback has been stopped and resumed before
bookmarking, due to indices that are shifted
by first_index.
Change-Id: Id335a7a71adc216989d7b415bfa48237d92fd7b0
+ update misleading comment for catalog_add_to_a_playlist's
m3u8name parameter (the keyboard picker will be shown even
if it's not NULL)
Change-Id: I7576a83fd40cdcdb7a912c90d8c1d9a8f25e277c
playlist_save() was a poorly thought out mess. This fixes the
glaring issues and hopefully ensures that saving the playlist
never loses state (such as queued tracks or modified status)
after save+resume.
Indices are now updated on the fly, which is faster and needs
no extra memory. But if an error occurs, the playlist will be
corrupted. There is currently no attempt to handle this since
errors should be unlikely, but some error handling needs to be
added in the future.
Change-Id: If8a5dbd6a596460be08ee0b7bab9f24337886ea4
adds a new function:
gui_syncyesno_run_w_tmo(ticks, tmo_default_res, main_msg,yes_msg, no_msg)
when a database needs committed on start-up
a yes no prompt will appear if not answered within 5 seconds
it defaults to Yes
if instead you choose No next start-up you will be asked again
you could rebuild the db still and waste time but it wouldn't hurt
anything so I don't think that path needs blocked
Change-Id: I58411f6e6bfebb6f142d99f33a1e8885ae7785c1
The suggested name was identical to the complete path
of the played folder, with a slash at the end, which,
if accepted, resulted in a file called only ".m3u8"
being saved there.
In case the path contained one or more dots, the string
was also stripped of the last dot and all chars following it.
Use Playlist Catalogue as the destination folder instead,
and pick last path component as the file name.
Change-Id: Ia2b7f7ebca746613d650bbab6d7a62ca1106efc6
moves the callback to settings_list
audio_set_playback_frequency now accepts an actual frequency
44100 192000 etc rather than an index
Change-Id: Ieb3fc79a7fe3f1ff050465c8cd8061027e4572ff
shuffle and sort were called on startup before playlist_init
and also on setting switch even without select
repeat is also now handled in settings_list as well
after moving the callbacks to settings_list.c
there was then a problem of unintended callbacks on exit of the menus
fixed that with F_CB_ON_SELECT_ONLY
since the callback was called regardless of the setting being changed
on F_CB_ON_SELECT_ONLY which is preferable in some circumstances
I co-opted F_TEMPVAR to allow the callback only when the setting was changed
with the flag F_CB_ON_SELECT_ONLY_IF_CHANGED
Change-Id: I5265233bbb556dc06c45273e742be5d78510a806
When saving a playlist to an existing file on disk,
warn user, unless the playlist's file name remains
unchanged.
Change-Id: I10d82667de5fadb5323be4f981bea9263849f07a
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
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
Prefer to use designated initializers to avoid having to specify
unneeded parameters. Non-initialized members are zero-initialized
by the compiler.
Change-Id: Ia6a03c45cb3ef0b30f458d7d0ae1604a350c737c
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
left the union with function(void) and function_w_param(param)
as a few areas might still need to use both (onplay.c)
there might be a few I missed yet..
Change-Id: I593a6875301923e19ba04ad1b0f3173dc9ebdf1f
Since synclists are now re-initialized after leaving
Settings menus where the callback was used, it
shouldn't be needed anymore.
gui_synclist_init_display_settings can also be made
local to list.c now.
Change-Id: I674e4da49153440b48298fed7c4d98b421b7beaa
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