removing trackks after create appears to cause crashes
removing the playlist appears to be sufficient to prevent
append to the currently saved random_playlist.m3u8
added yield on screent update, since we have no sleep this could be an issue
Change-Id: If04517f852e329088e30885d964f2407a2ebf318
Remove battery_read_info() which is a simple wrapper
function only used by debug screens. Use the polling
functions directly to save a bit of code size.
Change-Id: I2919f78105bab186f6933dc1823f9fa67fe74f3e
LIST_WRAP_ON seems to only be used in 3 places
at this point.
- Keybox Plugin
- Puzzles Plugin
- (File) Properties Plugin
Switch them them over to LIST_WRAP_UNLESS_HELD
as that is used everywhere else and is arguably
preferable (the option to turn off list wrapping
completely remains, of course).
Change-Id: Id8017dcbb123a0568cb6db527a8966b63ba06d47
- Don't include the 'battery capacity' setting unless the
target allows changing it.
- Clean up the preprocessor conditionals used to check for
variable battery capacity support.
- Don't use a variable for battery capacity unless it is
actually needed.
Change-Id: I3d8a338f107014f2c5098bc0a44ef0cfb4df9356
Give iBasso DX50/DX90 empty adc-target.h headers like all
the other hosted targets to avoid special cases.
Change-Id: Iaae15642fdec4ff18bc9ac01245753135128f676
Supposed to prevent situations where PictureFlow
enters into an infinite loop while unsuccessfully
looking for a slide cache slot.
Technically more of a bandaid than a fix at this point,
since it masks behavior that shouldn't occur in the
first place, but at least it will make the issue essentially
unnoticeable by the user for the time being.
Change-Id: I8a9b30448949dd53f624eae918484b740b4f873e
Offers more efficient navigation when number of albums is large.
Scrolling with the touch wheel or touch strip works as before,
but the prev/next buttons jump between album artists by first
letter now.
- Keymap has only been adjusted for iPod and Fiio M3K at the moment.
- requires separate fix for infinite loop
Change-Id: I68da7304d2c7714a5a1aecdf83e937bc9daae3e1
uses the database to create random playlists of specified size
with the advanced GUI you can..
set the number of songs (up to max playlist buffer)
set the number of tracks before a repeat is allowed
play the tracks when finished
-- fix a parsing bug where first and last entry in database
were corrupted
-- Incremental loading for very large databases, allows decent speed and lower ram usage
Change-Id: Ia95469b6a04625b621129ec61e5db4b2b00adc5e
- Once items have been appended, the existing playlist can
not be reused when selecting an album for regular
playback, since the playlist will be out of sync with the
album's track list
- Don't re-shuffle playlist after appending items
Change-Id: I3b6035033ad1d59f9916c711f13737bb0987c4f6
Makes warning for "Insert" hotkey consistent
with that of "Insert Shuffled hotkey" (both
will result in the current playlist being erased
if playback is stopped).
Change-Id: I7c6a01438c227a963209b8689ee6941b820a004d
Feels less interruptive this way, since the background doesn't
suddenly switch from dark to light.
Also moved message to separate function and added missing
lcd_update() after clearing display.
Change-Id: Id196554b42fa4de16a6b23136d27358159b746b6
Makes PF usable on older devices with few FPS,
and makes it quicker to navigate on current devices.
- PF_BACK while zooming in to zoom out again
- PF_SELECT or PF_PREV/PF_NEXT while zooming in to skip animation
- PF_BACK while zooming out to skip animation
- PF_PREV/PF_NEXT while zooming out to skip animation + scroll
- PF_SELECT while zooming out to zoom in again
- PF_CONTEXT while zooming out to skip animation and append
- PF_CONTEXT while scrolling to append
- PF_SELECT while scrolling to zoom in
Change-Id: I8d041b53f5990181059fe837a8ca121ebf37a676
Limit for devices with more than 8MB of memory had
previously been increased from 300 to 500 bytes
for individual fields, and to 1800 from 900 bytes for
buffer containing all fields.
See a8846e3
Change-Id: I63305c50f6f486ad321664babdb94052ea9209a9
Scrolling via the scrollbar is now a bit smoother -- it's
now drawn pixelwise, and dragging it will scroll the list
pixelwise instead of rigidly snapping to items.
Several other general UX issues were fixed:
- List and scrollbar now occupy the full viewport height,
to maximize use of screen space.
- Fixed issue with last item in the list suddenly appearing
or disappearing while scrolling.
- Prevented scrolling into blank space after the last item.
Change-Id: Ib279ac87ec2f2ffc8834c19ff0af45286e2d6d4d
rb_info is just a test plugin
just some info from the running rockbox install
the real star here is the generator scripts to make actions_helper.c and button_helper.c
Change-Id: I23f7bbdae3f2cffca2490c4df40bb13b0b5d5064
On targets where the grayscale framework is used, splash()
won't work (and may crash) if the overlay is not
switched off first. This is not reproducible in the simulator.
Change-Id: Ia22087c4978c8fa247d6d4c64c4b600e4393eebf
- After appending albums, when memory had been borrowed
from the buflib buffer by shifting memory up using buflib_buffer_out()
in create_track_index(), memory was later not shifted down using
buflib_buffer_in() (the latter was only called after displaying the track list).
- The picture loading thread was able to allocate memory from the
buflib pool while the main thread was moving the buffer around.
Slide loading will now be paused before shifting operations, and
continued afterwards.
Change-Id: I1c92b6c931fd14ebb885be4bc275148039b76a9a
In absolute pointing mode, the quickscreen now accepts
a touch anywhere in the middle third of the screen edge
to trigger an item, and pressing anywhere else on the
'grid' will exit -- the same as how 3x3 mode works.
Previously it required a touch inside the text viewport
to trigger an item, and exited after any touch outside
the viewports. This made it very difficult to use since
the text viewports are too small to reliably touch.
Change-Id: I971eaeb4a2c67bebef3d7b070a29b897df07b8e7
In absolute pointing mode the keyboard is virtually unusable since
the keys are too tiny (just 8x6). There are other issues too: for
example putting the keys on top doesn't make sense on touchscreens
and there is a lot of empty space in between keys that serves no
real purpose.
Until these issues can be addressed properly simply force 3x3 mode
when in the keyboard.
Change-Id: I3ea95ae479372f5b5f86ffcc2dbde10a03663820
The behavior of the top/bottom items is not intuitive when used
with settings like volume or brightness -- pressing up will
actually *decrease* the setting, and down will increase it.
This patch inverts the direction, so the top item will increase
the setting.
The reason for this is that historically, the quickscreen seems
to have had only 3 directions -- left, right, and bottom. Bottom
therefore selected the next value, and when top was introduced
it selected the previous value.
The counter-intuitive nature of this was later reported as a bug
on the Fuze V2 and got an incorrect fix (commit 2271995517) under
the assumption that ASCENDING_INT_SETTINGS was the issue.
Change-Id: I3be92534469cea4f5efd81ab024288c052367411
Add the 6th format specifier for the 6th parameter and show seconds,
too. Most radio stations will update once per minute only, but still...
Change-Id: Ia878bc001c903112df3ed336df260e30eae68e3b
Should prevent a delay, dropouts and memory corruption
that can occur when applying a skin while music is playing
Change-Id: Ic2c8fd788117a7d797fb315a36e366a2e34d3460
When running and USB plugged announce status ack'd the USB and then un intentionally fell through to EV_EXIT
this caused the thread to exit but not the TSR hook
Now: plugin keeps track of usb status and doesn't announce till usb is unplugged again
on unplug the start-up beep is played to announce its presence
announce_status on startup blocks usb since USB handling is done in the thread that hasn't started yet
Now: don't start if USB is plugged
Plugin now beeps if it couldn't play the announcement excpept for missing voice file unfortunately
Change-Id: I69cf7e687508ce02358432e7bd1adc27c78c4072
Allows user to decide whether scrolling lists will wrap around
to the opposite end after the first or last item has been reached.
Change-Id: I22156812cf4c857ddc4b6c48c1cef013b1985260
handles the folder selection for autoresume paths and database paths
folder_select uses the pluginbuf to build the directory tree
hopefully having it as a plugin will make it stop corrupting
TSR plugins like battery_bench and announce_status
I left the original include and source in the gui directory for now
there are currently no other users..
Change-Id: If40ccb5a2bec4286a0616c10dfa7e1479a592808
Reverts to the behavior pre-commit dfff938 with the additional change
that it will not skip the last entry.
Change-Id: Ia03da03b1bdccd8a9591548cd0ca9f58f4767947
Each time PictureFlow was launched, it would rebuild the
album artwork cache from the beginning.
Depending on the number of albums, this could take a while
and resulted in choppy scrolling.
PictureFlow will now remember how many albums have been
inspected already, and only rescan and write new artwork
when the album index cache gets updated or rebuilt.
Change-Id: Icd78106dacea44b80904ac609caa355cc9113168
- Shortcuts Menu would delete SHORTCUT_TIME shortcuts
when deleting any other shortcut.
- Shortcuts would crash or show wrong number of items
after deleting a shortcut and then launching a shortcut
when simplelist_show_list was executed again.
Change-Id: Ia87c94a364c516fd662cb3c7d245c566a3fa91ca
| with some code refactoring we can eliminate the static
char buffer in get_full_path()
I'm guessing making the functions recursive prompted the static buffer
I don't see any reason we can't just pass the same buffer
|
During tested I noted failure after buffer was full
-- splash added for buffer full notification
added some logic to not add partial entries and try to find a
| selected item that will fit in the remaing buffer
------------------------------------------------------------------------
While looking through the source I noticed a few potential
pitfalls with the current code.
Namely the stack allocated temporary buffer
sized to setting_len.
I also noted the rigid vect[32] with the timeless --
/* 32 separate folders should be Enough For Everybody(TM) */
and decided to make it a bit more robust
The saved items are hashed with crc32 on all the paths
and a hashed_len is kept to aid in the buffer full message before the
user actually goes to save the changes
(assuming they even get the message)
In the old code, buffer might be the same since it ran out of
space and didn't get their later selections
the hashed_len could easily be turned into a way to get a needed buffer
size as well for someone in the future just pass a really large maxlen
I made get_full_path non recursive since it liked to blow the stack
while embedded in all the other recursive calls making it a pain to debug
(the real reason the buffer was static?)
traverse first from the current folder to root mutating the
parent pointers to point at the previous child
next traverse back to the folder unmutating & taking names on the way
Folder depth is now uint16 65535 levels is probably excessive
children_count is also uint16 as well
I made the first folders below root '/' stay below root
instead of shifting since the horizontal real estate is limited
slightly smaller than it began but hopefully faster & more reliable
Change-Id: I348f61baf865cccdeacddfd9d50641a882e890fc
save to a .tmp file on save and rename on next load
I think this should pretty minimally invasive as the same file
still gets overwritten in subsequent attempts until it is loaded again
the save path is still static
so it won't cause issues holding up shutdown.
load might be a bit slower with the searching for tmp+current file
and renaming them
Plus there is now a backup of your last settings file
Change-Id: If95618b93a0ba7954d5d8cab1d6ea3f07e658509
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