1
0
Fork 0
forked from len0rd/rockbox
Commit graph

124 commits

Author SHA1 Message Date
Christian Soffke
131497d786 PictureFlow: Don't sync playlist after every file
Since we manually do it later, syncing after every
file is unnecessary and can make the audio
queue overflow

Change-Id: Ia7ab6ee345b25a453c56f48ed0d330b04da6da94
2022-01-05 18:28:06 +01:00
Christian Soffke
122ce0089a PictureFlow: Don't insert tracks if track list not available
Change-Id: Ic6d5083bfe7daf3a8639b1405b8be9dae73eb30c
2022-01-04 18:06:42 -05:00
Christian Soffke
de8ee6c9e9 PictureFlow: Switch between albums from track view
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-04 18:04:53 -05:00
Christian Soffke
d183959676 PictureFlow: Show track list loading message
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-04 18:04:02 -05:00
Christian Soffke
dded97be34 PictureFlow: Fix buffer overflow
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-04 18:02:12 -05:00
Christian Soffke
e3b8b7fa80 PictureFlow: Utilize "Current Playlist" menu (+ GS fixes)
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-04 18:00:49 -05:00
Christian Soffke
abfee36ce0 PictureFlow: enable theme in settings menus
Submenus for adjusting settings
were previously left unthemed

Change-Id: I073c7aabfdd9ce4e4c10c4c0dc689112c29b2a58
2022-01-01 22:00:09 -05:00
Christian Soffke
e8b9123205 Database: show song's album in PictureFlow
Adds a 'PictureFlow' command to database context
menus for quickly bringing up the album for a
song in PictureFlow.

Change-Id: I88cd89e93d9418558c698a15fc7fb5d9a90fb262
2021-12-28 11:06:10 -05:00
Christian Soffke
6c6f0757d7 PictureFlow: Show background cache building progress
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-24 11:08:26 -05:00
Christian Soffke
6b5c811d1c PictureFlow: reset idle timer when art cache is being built
- 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-24 10:38:37 -05:00
Christian Soffke
2bd0d5738f PictureFlow: Preliminary fix for infinite loop
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
2021-12-03 23:51:12 -05:00
Christian Soffke
09e1cd489f PictureFlow: Add alphabetic browsing (iPod&fiiom3k)
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
2021-12-03 23:51:12 -05:00
Christian Soffke
c94acc771d PictureFlow: Read bitmaps in one go
As suggested by amachronic, this may significantly benefit performance.

Change-Id: I4dcf096278ab8042065cf6dce5ff886cdd27dc3d
2021-12-03 02:58:19 +01:00
Christian Soffke
101d431d79 PictureFlow: Fix playback behavior after appending
- 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
2021-12-03 02:58:19 +01:00
Solomon Peachy
9597d7256d Fix lingering yellow from 8325b59f3b
Change-Id: I83b7fbd88b2f47c9bd31943bdc9c4cc8f2d24f4e
2021-12-02 19:52:04 -05:00
Solomon Peachy
0f12a77d60 Fix red from 8325b59f3b
Change-Id: I38f53d1cee1572ef5d82ed07bc184403fa2f7b00
2021-12-02 18:09:48 -05:00
Christian Soffke
8325b59f3b PictureFlow: (grayscale) invert ‘Added to Playlist’ message
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
2021-12-02 17:37:49 -05:00
Christian Soffke
2ee4f50fa6 PictureFlow: whitespace fixes
Change-Id: I53c75c99110c2eeceed52854bc2ca0ec63770a0c
2021-12-02 17:37:49 -05:00
Christian Soffke
0da0390b85 PictureFlow: Warn Before Erasing Playlist
Respect system-wide setting, in
consistence with browser behavior

Change-Id: I7df90554a466ed5ca1b99da179cc7d95360499b6
2021-12-02 17:37:15 -05:00
Christian Soffke
fd50baa23f PictureFlow: Reversible and interruptible animations
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
2021-11-27 09:02:17 -05:00
Christian Soffke
5bd9ed801f Fix: PictureFlow splash() crash on grayscale targets
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
2021-11-22 08:06:44 -05:00
Christian Soffke
f9ce8720c4 Fix: PictureFlow crashes
- 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
2021-11-22 08:06:44 -05:00
James Smith
990c543ebc Revert "Pictureflow: Update for tag_virt_canonicalartist."
This reverts commit 60125f6bc9.

Reason for revert: See g#3947.

Change-Id: I34bae3cf5a87a5c99b9a4e5755e1a4a69961b28a
2021-11-21 12:44:57 -05:00
Christian Soffke
fbf83dc4ce Add setting for disabling wrap-around lists
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
2021-11-11 17:31:10 -05:00
Christian Soffke
a7d09f8104 PictureFlow: remember inspected album artwork
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
2021-11-10 15:43:57 -05:00
James D. Smith
60125f6bc9 Pictureflow: Update for tag_virt_canonicalartist.
Change-Id: Ie9fc906b6f863347174b383b01514961b307c4f1
2021-09-17 21:42:05 -04:00
William Wilgus
aad15d5cd7 code cleanup encase ;; in brackets {;;}
Change-Id: I253e19695709b4184ceb4a0748300f7c68437c1c
2021-08-13 11:51:21 +00:00
Aidan MacDonald
5cbeb88541 FiiO M3K: keymap improvements & fixes
- Add support for skip and seek while the player is locked.
  (Thanks to @bahus for the suggestion)
- Fix touch zones because the down button zone ended up being
  a lot smaller than expected due to the touchpad's wonkiness.
  Also added a visual display of the touchpad to its debug menu.
- Fixes the pictureflow keymap because it was mostly unusable.

Change-Id: Ic0da4f8df3613ff7828ce1cb940ed9e77ada3281
2021-05-22 12:20:44 +00:00
Solomon Peachy
7d0d32dbc6 Nuke the never-functional iriver ifp-7xx port
It never worked, and hasn't compiled in something like a decade, Given
the HW capabilities (limited onboard flash, no expandability) there's
really no point in trying to fix/complete it.

Change-Id: I7d175089840396f8891645bd10010d730dd5bfdc
2021-04-26 07:42:58 -04:00
Solomon Peachy
3ba2f6e5c7 Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX
They were never finished, never saw any release ever, and haven't
compiled for the better part of a decade.  Given their HW capabilities [1],
they are not worth trying to fix.

[1] 1-2MB RAM, ~256MB onboard flash, no expandability

Change-Id: I7b2a5806d687114c22156bb0458d4a10a9734190
2021-04-26 07:41:51 -04:00
Aidan MacDonald
afe80742a5 Fix Pictureflow bugs
It turns out that aa_cache.buf, used to store decoded album art during
background scanning, was not correctly allocated and overlapped with
memory allocated for buflib. This was what caused all the segfaults.

Also fixed a logic error in read_pfraw(), which returns a buflib handle
on success, but also returned 0 on failure -- since 0 is a valid buflib
handle, it should return -1 on failure instead.

Change-Id: Ifaa1c02ec19b0859e43c40c0462ed7738d07fec3
2021-04-17 13:06:29 +00:00
Solomon Peachy
d121aa3fe8 build: We don't need sh-specific flags in the pictureflow build.
Change-Id: I1e9ab4332cbeb5aabc01edf825eace6152347e0a
2021-03-25 12:20:15 -04:00
William Wilgus
3237ae4a4f LCD core move buf ptr and address look up function viewport struct
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly  after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags

Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26 12:28:48 -04:00
Moshe Piekarski
12f3ed1699 make the plugin API frambuffer agnostic
Change-Id: I5abdc231093054c517ff53b9a456997e440e3f6e
2020-10-26 12:28:48 -04:00
Solomon Peachy
7a1bf01541 Undo the hacks that allowed targets without LEFT/RIGHT (UP/DN) to build.
Replaced them with warnings until they are fixed *PROPERLY*

Change-Id: I4425200e60f8b5224262a54f105b974cec471d22
2020-10-08 20:30:08 -04:00
William Wilgus
3550283442 Add open_plugin to core
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
2020-08-17 10:15:14 -04:00
William Wilgus
d553bb1149 root_menu move tag cache init check to pictureflow plugin
let pictureflow decide if the tag cache is ready instead of core

Change-Id: I2ab9b375d773dbbc28ea41fbf7bb6fb361ace8fd
2020-08-16 10:35:57 -04:00
Solomon Peachy
a3398a2143 plugins: Fix the builds for targets lacking HAVE_BACKLIGHT
Change-Id: Ifdb1501834b7ea63ca6f731bbd6414305d7e0001
2020-07-24 18:17:19 -04:00
Solomon Peachy
092c340a20 [1/4] Remove SH support and all archos targets
This removes all code specific to SH targets

Change-Id: I7980523785d2596e65c06430f4638eec74a06061
2020-07-24 21:20:13 +00:00
William Wilgus
45915101d5 Pictureflow Bugfixes & Usability fixes
First I discovered a bug in the code to display the currently playing
album from the WPS
--on a NULL id3->albumartist field PF would crash
  now checks for a match in id3->albumartist and then id3->artist
  if neither exists then the search uses <untagged>
  ditto for album

The album index feature (recently added) did not check for enough
room in the buffer on restore
--save and restore code cleaned up a bit
  moved all buffers to their own struct

tracks with no title now show filename rather than <UNTAGGED>

Reworked album search function
 album search was going quadriatic resulting in some outrageous
 index build times [40mins+ for 4000 albums]
 building now done in stages and duplicates removed at end
 *MUCH FASTER*

Album art
 empty album art is no longer stored in the art cache

 PF will now allow you to cancel building album art without
 forcing a rebuild next run,
 it will continue searching for album art in the background
 album art is now updated in the background on each start as well

tracklist now rolls over at the end

artist_index is now discarded after album_index is created

Cleaned up some of the myriad of global variables

Added quit prompt for index building

Added sanity checking for album_index loaded from disk

Change-Id: I8494cb7abcb1ae8645c223fc3c11dc0ee749883a
2020-07-14 03:57:56 +00:00
William Wilgus
d9e084b530 Pictureflow Whitespace Cleanup
Change-Id: I7cda111a8d7a24cae31e3eeca1454480e27ebaaa
2020-06-26 07:08:32 -04:00
William Wilgus
aa4ec918e4 Pictureflow Fixes UniqBuf
rework of the unique name buffer

shares 1/4 of the total buffer

Change-Id: I17e46292ac880a082cb3f035e3c21abc318d8a31
2020-06-26 00:00:33 -04:00
William Wilgus
7c291250ef Revert "Pictureflow Fixes: Sansa C200"
This reverts commit b7f2cc5d6d697aa40d8a568cf573ee100c32b9c4.

Change-Id: I51ec9f5fade10ce0173ed45739af6baaa5c7f746
2020-06-26 03:43:26 +00:00
William Wilgus
6f0fd91343 Pictureflow Fixes: Sansa C200
Sansa C200 fix

Change-Id: I548b7142dde9ea4da5455686bed650aa40c9c90a
2020-06-25 22:35:24 +00:00
William Wilgus
3074ade465 Pictureflow Fixes -- Fixes
The name buffer is using too much ram for some targets
will revisit later...

removed extraneous call to set_scrol_lline

Change-Id: I56d658149bcb0c50857d25924e37bcb46a612c75
2020-06-25 12:02:16 -04:00
Adrián Tinoco
e8a3ade0ea PictureFlow fixes:
- Extra data structure to store artist info.
      - Create_album_index modified to perform a different query.
      - Added load and save functions to store the data index in HDD.
      - Album collisions fixed.
      - New config options to perform rescans.
      - Extra fields added to lang files: english and spanish.

	Update CREDITS

Change-Id: I31814b38d8b4e7fa4b65f5e6e51aa5f00d271ece
2020-06-25 14:56:07 +00:00
Solomon Peachy
46e2528992 av300: Continue cleaning out keymaps.
(A lot of work was done on this thing, for a target that hasn't been compileable
 at least since we moved to git..)

Change-Id: Ibface9392f3251b5be4bf1e0c4d12639c4f1662d
2020-04-13 22:59:29 +02:00
Solomon Peachy
b1f2c795a6 Speech feedback in the pictureflow plugin
Patch by Igor Poretsky

Change-Id: I99d789e43d1093c69b4d76f58704303d3c1b3c80
2019-08-07 09:50:27 -04:00
Solomon Peachy
0662793ca0 Add cleaned-up xDuoo X3 support
Cleaned up, rebased, and forward-ported from the xvortex fork.

(original credit to vsoftster@gmail.com)

Change-Id: Ibcc023a0271ea81e901450a88317708c2683236d
Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
2018-07-28 10:56:31 -04:00
Marcin Bukat
fbb6a2ff6d Agptek Rocker: Build plugins
Patch provided by Aapo Tahkola.

Change-Id: I37a42a950d78d6b8aa3927ec7aeb30030f7be7a5
2018-06-12 10:31:15 +02:00