This overhauls most of the code to be easier to understand in terms
of the interactions with the flash. I found the original to be rather
confusing with how it kept switching between byte and word offsets.
My solution was to make all external access to the flash in terms of
sectors and bytes. Whatever the flash uses internally is now handled
by the subroutines for performing the erase, program, and verify
operations.
This helps make it far more consistent for the code that actually uses
these operations as they do not need to concern themselves with word
sizes and offsets anymore.
As a side effect of this change the flash operations are now done
entirely by subroutines; even the batch operations that used to use
custom loops.
Additionally some functions were merged with other functions in order
to reduce the amount of functions as well as consolidating common
code fragments.
Change-Id: I4698e920a226a3bbe8070004a14e5848abdd70ec
Replace the Speex license tab in the about dialog with one that lists
all used libraries and their respective licenses, including Speex.
Previously only Speex required including the license in binary
distribution; the recently added bspatch also wants this. Show
the license for all used libraries so we can more easily add new ones in
the future.
Change-Id: Ic8b403f8a2a05d0f1734ddf092782b85ddfa5ed9
- Change signal-slot connections to new style, and fix renamed signal
for Qt6.
- Make more use of RAII.
Change-Id: I14e52eb6bfdbb89bccafb33e4988af25b5d82713
Since we're now automatically falling back to using the command line
lame if we cannot load the library we can enable it on macOS as well.
Change-Id: I0df1bb4a011d019a340fe54f1db6fc4645f9081b
When loading libmp3lame fails fall back to using the command line lame.
Avoids an unresolvable error when trying to create voice / talk files
for Archos.
Modernize code a bit.
Change-Id: I2e8fd5786fda972cb24adbcb9ced531e08093b4f
Some mSATA adapters seem to have trouble working with Rockbox using our
normal PIO timings; the timing value we use is probably out of spec and
is different to the OF. Switch to using the OF's timings according to
which PIO mode we select. This may not completely resolve problems with
these adapters but allows Rockbox to boot and play audio.
Change-Id: If73210700eb4af01864b373709ee1d15c775fb11
We only use lame as external encoder for voice on the Archos targets.
Simplify the implementation by removing (unused) handling of (potential)
other encoders.
Change-Id: I175cc21868fb7ef9524247d78cfb7bdf65e9e162
Make sure the target version isn't the default one so it also runs on
older macOS version than the current one.
Change-Id: Ib3517c97eee23ce1648e644ffc9daba2d1e7b599
Add target to build a dmg containing Rockbox Utility, ipodpatcher and
sansapatcher as single app bundle, and create a more fancy dmg using
dmgbuild.
Change-Id: Idb36776c05f820afc98efecf45a011dc75a13c31
Also audiohw driver to specific device name, rewrite alsa controls code to
cache more data, thus making the code easier and use less stack. Avoid using
short/long in pcm alsa code since it's the wrong size on 64-bit (simulator
for example)
Change-Id: Ibc1ec44396e37b6cbdedbcf37300878638e5d2d3
several issues I saw that could pontentially cause problems
scroll engine doesn't take text height into account when checking bounds
NBELEMS was one whole row too large hopefully I got them right this time
Change-Id: If303da8320429c3964fc675351cb088d46303745
Nothing in the core has used it for some time. It's exported to the
plugin API but the last plugins to use it were switched to the mixer API
back in 2011.
This allows us to get rid of pcm_play_dma_pause() from all audio drivers
Change-Id: Ic3fa02592316f84963e41d792d1cabb436d1ff6b
First the argument should be const since the original parameter is.
Second the pointer arithmetic for detecting whether rockbox is running
from ROM or not is incorrect. It ends up being at a location twice as
far as intended since the arithmetic does not account for the pointer
type's underlying size. It should also be dependent on the target's
FLASH_SIZE.
Third the LCD setup is moved to the entry point since it is the best
place to setup and restore the LCD changes.
Change-Id: If9ddaf2cd937f1edf61c82a8a27f48d01807068a
The main change is revising how the checksums are guarded by macros.
But both are also converted to static linkage so they can be better
optimized by GCC. I also change the types around to reflect how the
space the data types actually need. Furthermore I make use of C99
changes to how variables can be declared to move them closer to where
they are used.
Change-Id: I0b21b655f3f4a7c4bbd4365a384a551e75451159
This moves the checksum into the local stack and turns the second
parameter into an optional argument. This also reads the model
segment that was previously unused so it can also be checked as
an extra safeguard in the event the checksum somehow matches
yet the model is incorrect.
Change-Id: I9a8c2d731e4f1818e6e4aee3c3978777c16ccf19
AUDIOHW_SETTING() defines number of decimals and step size.
This is taken into account in sound menu but ignored in lists
(had been recently fixed in WPS).
This was not a problem so far since all drivers used 0 decimal
places and step size equal 1.
Change-Id: I8807d5b6f2f3d412a2bc5769905bd776553ece0b
First neither of these functions can fail on supported targets
so they have become void functions. Their return values were
not being used anyway.
Second support for other flash chips not even used on the
supported targets has been removed. It appears they were
only ever used on the discontinued Arch devices.
Third cfi_read_id was restructured to remove obsolete code
for error checking that is not necessary at all. The datasheets
appear to indicate that the commands used cannot fail.
Fourth cfi_get_flash_info was restructured to use a new approach
to initializing the flash_info struct. It no longer initializes
the structure twice.
Fifth the relevant code has been updated to use the full 16 bits
that are exposed by the flash rom ID interface.
Change-Id: I25b1ada3d4621e2d80ac66d3d9a964964268cb3b
Qt6 doesn't contain QTextCodec anymore but instead provides it in the
optional core5compat module.
Change-Id: Ia45985a32df3826faf041981b8935c839946e5c9