When the sd card is mounted into the root namespace the database
picks up files through both paths
previously we hid the mounted drive but this causes issues with users
databases when the drive letter changes
Adds a way to keep track of volumes mounted in the root namespace
Hides the enumerated volume in root
Database:
we can just parse the root directory ('/') and get to any mounted
volume but we can also enumerate a volume in the root directory
when this occurs it leads to multiple entries since the files can
be reached through multiple paths ex, /Foo could also be /SD1/Foo
Instead we will attempt to rewrite the root with any non-hidden volumes
failing that just leave the paths alone
Change-Id: I7bdba8cfaf63902d2a3852d28484bcf8ca317ebd
* Inform you what target it is compiled for
* Complain if it doesn't find the '.rockbox' directory
(Instead of creating the directory if it's not found!)
* Report basic (starting/finished) progress
Change-Id: Ic336dd686ce4419172a1c287995966d0f00e6107
The supplied time may be more accurate than the calculated time from the bitrate (can be quite inaccurate for long vbr files and even for cbr due to padding)
Change-Id: I1f8291eab45fbd91a161b51776c391a0f7886a5c
Captured ADTS streams might start from some garbage data from previous frame. We should check for sync errors even for first frame.
Change-Id: I70171298b79713aeedf9fa2e6098a03063487649
first_frame_offset is not set for mp4 files so seeking to it doesn't make any sense. It can lead only to additional re-buffer request. So instead let's just allow seek back for m4a_check_sample_offset check. And do seek_buffer(0) before reading metadata (fixes possible hang introduced in fc65bdab)
Change-Id: Ia7fae14b0137d73b5e263390be5f143deb7ca789
Define CONFIG_CPU if not defined
This fix makes sure that AAC-LC decoding is used both on device and simulator.
It's important for testing purposes as proper AAC-LC decoding requires changes both in decoder and in metadata handling.
Fixup for 4cd65b9d9.
Change-Id: Idef88825458761fffa3f5c5f4f221b555c509d89
Add HW volume control via ES9018K2M, and reorganize
eros_qn_codec.c/.h, audiohw-erosqnative.c.
This automatically detects the presence of the new DAC and
uses its hardware volume scaling. If not present, use same
SWVOL we have been using so far.
Add debug menu readout of SWVOL/I2C result.
Break out es9018k2m stuff into its own file so that
maybe it can be useful to other ports.
Note that we may need to get smarter about detecting the DAC
type if/when another model emerges.
Change-Id: I586a1cf7f150dd6b4e221157859825952840af56
Includes ipod video (5G) and earlier models, sansa c200 and others players not capable to decode AAC-HE.
Allows to play backward compatible files as AAC-LC.
Change-Id: Ic9f5c0f255d9a4308c3414d402f8f27f4328ca94
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
clearing the viewport stops the scroller
so instead clear the viewport ourselves
[this might cause some glitching but should be acceptable]
in testing this causes no discernible ill effect -- time will tell..
Change-Id: Ia73a459205e37c8aebdf1cd82cd742df3d803af8
Sourced from the UnifontEX (https://github.com/stgiga/UnifontEX) fork
The existing one is over 15 years old (5.1.20080820) and there has been
a LOT of progress since then, even before the additional work done
in the UnifontEX fork.
Change-Id: I86d115d09c0b4bce9c11e92295ec7265464f94ae
when you do the math yes there are 8 slots
between y = 16 and h = 8 and y = 24
16 17 18 19 20 21 22 23
1 2 3 4 5 6 7 8
but 16 + 8 = 24
ah an off by 1 error
Change-Id: I7b0625da1351910b27e5526c0a9f969c067758c6
This is basically identical to the GD5F1GQ4xExx series, except for
the addition of double-data-rate transfer modes (which are useless
for us). These devices may be found in some Surfans F20s.
Change-Id: I2c04c86bd88f2e27d813de7fe01712ce365ba077
sending GUI_EVENT_NEED_UI_UPDATE ensured we got redrawn but it also
sometimes resulted in the yesno screen being overdrawn
depending on which event callback was called last
now increasing the update frequency,
clear the dirty bit on whatever vp we are replacing
and well as call our redraw function instead of sending UI_UPDATE
also found a potential bug in get_font()
Change-Id: I1da6defa6db799a4778590daa0c107aba00a9d34
make sure we have a chance to get the dirfilter otherwise
it may be rejected
adds some sanity checks and safeguards too
Change-Id: Ibdad288ace0c8bf6ac7b8f46722a43aebead829e
since the plugin browser is now closed when running plugins
rb->set_current_file() had no valid browser context and used 'random' memory
instead
also adds a way to discard levels so we can load the desired directory
instead of returning to the previous
https://forums.rockbox.org/index.php/topic,54694.0.html
Change-Id: I624246e56d42972bf6a1ce566a209b745de6f30b
The lcd_blit_yuv() function shadowed a variable, but was "fixed" by
removing the inner declaration entirely, causing the inner loop to
clobber a variable used by the outer loop.
Fix this by declaring these variables independently, and for clarity
moved the inner loop declarations to a narrower scope.
Change-Id: I07652199929b84298b783374b8551a49baf093f3
remove some duplicated strings previously allocd off the stack
just removing string duplications that are easily handled with truncation
now available with path_append_ex()
this also has an advantage of less stack used in worst case scenarios
Change-Id: I3a43e33ef8a8c36599e4c6c036a0ccdd8ed0c883
Looks like this was a regression introduced in 01cbb79.
The duplicate img uses an existing buflib handle for
the data, but still didn't have access to the dimensions
from the bitmap struct.
Test case: DancePuffDuo theme for Sansa E200. Only one
dancepuff was displayed. Thank you to goatikins for
reporting the issue.
Change-Id: I32c3ebd1f00738f7db52e7a66f98c4ab3489ee4a
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
This should have probably been included in e9b4275,
since a control file generated with that build will
potentially cause issues when used with older versions,
in case -8 appears as an insert position.
Change-Id: I4a7097a2bd33c0dbbdad481a341b49be505f34f7
PLAYLIST_COMMAND_CLEAR needs to save the index of the
currently playing track, or a track with index 0 will
be left queued after resuming from control commands
Change-Id: If7449bff92acd556b03c46e82301e8fec5c997d7
Moves currently playing track to the front of
the playlist when shuffling.
Also fixes issues with an incorrect resume index
after repeatedly applying shuffle.
Change-Id: Ieff76e47318a07ee5004b063ded439f2af4bae2f
add_track_to_playlist_unlocked only increased a playlist's
first index as necessary when its position parameter was
negative (i.e. one of the special insert positions was
specified).
A negative value was not stored in the control file, but
was always converted into an absolute position. Thus, any
adjustments to first_index weren't repeated when resuming
from the control file.
In particular, shuffled playlists were affected (in case of
first_index > 0), when inserting at positions <= first_index,
including appending a track to the end of a playlist. This
works by inserting at first_index and increasing first_index
by 1 afterwards.
Similarly, adding tracks in a shuffled fashion could increase
first index, whenever that was the value randomly calculated
for a track position, effectively appending it (I assume this
is on purpose).
To make sure that first_index adjustments are recovered when
resuming from the control file, and to be able to differentiate
between a prepended or appended track, store the special value
PLAYLIST_INSERT_LAST_ROTATED as the insert position in the
control file whenever first_index would have been used before,
and a special position (other than PLAYLIST_PREPEND) was
provided to the function.
Change-Id: I31f26796627fb136daeddd046cb1892bdf1b4014