Extend genlang to create files holding the voice strings in a binary format
similar to lng. Create such files for all languages during a normal build, put
them in a zip file and add them to rockbox.zip so they are installed with a
main build.
Creating a voice file requires access to the voice strings, which are currently
not distributed with Rockbox. Therefore it is necessary to either have access
to the source code of the installed build or to use a build the genlang service
on rockbox.org can retrieve the strings for, making it impossible for normal
users to generate a voice file for custom builds, test builds and older builds
that aren't supported by the rockbox.org script. It also requires a network
connection when creating voice files with Rockbox Utility even if creating a
voice file by itself isn't network related.
Furthermore, putting the voice strings on the target is also a prerequisite for
eventually supporting a TTS on the player.
Strip voice strings path.
Change-Id: Ic2f86130909b3b257986a348e5cfcf618c4500c3
mkimxboot requires passing a structure which got extended with another field.
This wasn't adjusted in Rockbox Utility, causing an out of bound access to an
array, which results in a segfault.
Change-Id: I0252849ed0b41f1d8804537c053debc9b0ecd08d
voicefont uses the id prefix VOICE_ to recognize voice-only strings. Unused ids
get a NOT_USED prefixed entry to keep order correct. However, since this
applies to voice-only entries as well voicefont doesn't recognize those as
voice entries and puts them at the end of the lang strings table. This messes
up the order in the created voice file, so add VOICE_ as prefix so voicefont
can identify them.
Change-Id: Ic3f2ec038ce1ed93c84286979e6583b478fa697e
Make hardcoded format version a parameter to allow adjusting depending on the
installed Rockbox version. Rockbox Utility will read the version from the
installed version. Since the command line voicefont tool is only intended for
use in the current tree it uses a fixed version.
Change-Id: I1ec935d47c71961e93b3c6bc6c5d816cd9fc83ff
When the voicefile binary format changes there is no easy way to figure which
format is compatible with a given Rockbox installation. Add the version number
to rockbox-info.txt so tools like Rockbox Utility can easily retrieve it and
therefore support different versions.
Change-Id: Ia5b8f00f89065f0dd0adf061612d844dcaff39c6
Reviewed-on: http://gerrit.rockbox.org/269
Tested-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
Reviewed-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
Voice-only strings are identified when reading the strings, so there is no
reason to first store that information and then count them later.
Change-Id: Ie6bd2c4bbf5736630e58d06a20739ef527e3cd69
Those macros actually swap to big endian. Since the macro names didn't tell
what way to swap (and on big endian they don't swap anything at all) they are
somewhat confusing. Change names for clarity.
Change-Id: Ie4b0026458a69d7533abb66109a6f83bc5ee2c0e
The server now provides a single build-info file (instead of two separate ones
for development builds and stable releases). Update to use the new file, since
it simplifies things.
Change-Id: If3b949f4d78eecb54e47622da887f51005f6d155
The voice file installed needs to match the Rockbox version installed. If not
the voice might not match the actual entries.
Rockbox Utility always was sloppy on this and installed the latest archived
(previously "daily") builds voice file for the latest development (previously
"current") build. Archived builds aren't supported anymore in Rockbox Utility,
so remove support for installing archived voice files as well.
There are no pregenerated voice files for development versions provided, and
Rockbox Utility can generate voice files anyway. Also, those files are only
provided and most users seem to prefer to use the voices they have installed on
their PC.
Change-Id: I17817da8a14dc5f8b0ef208579d8d75fa86ab610
The server timestamp is more meaningful as version identification than using
the revision of the currently installed build.
Change-Id: Ib57766f8e0f57ea9a4f805929acb589c2560fbd5
Folders in a zip file usually but not necessarily have their filename ending
with a slash. In these cases recognizing a folder entry by the last character
fails. Check the external attributes as well, which also contain the FAT file
attributes.
Change-Id: I81b039b3774b803b2b528bc83846aafd208e5571
Our current PS and RT parser is very strict: it requires
all segments to be received in order. This is too strong
of an assumption even when the reception in good, particularly
for long RT messages. This parser handles segments in any order
and completes a message only when all segments are present. To
avoid keeping obsolete segments, each segment has an associated
timeout and is trashed if not updated for a certain period.
Change-Id: I79841bb5ab1f838c7702d8281044e226f6510199
Reviewed-on: http://gerrit.rockbox.org/237
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Compute a serial number using the ocotp OPS bits like the OF.
Also add a comment about the first character of serial number
being a indicator of the enabled interfaces.
Change-Id: I9b90aed4e3b803f12fec003c9bc8ee8a046f4e42
It just cannot work anyways because init_tagcache is called before
audio_init. Besides, FS#12684 may be helped for now as well.
Change-Id: I2bb4f81f807bae509b220ee6656a6a109b5eb011
...from the compiled code standpoint anyway. frame_out was being
incremented before updating size...sometimes...depending on what
GCC was up to. This seems to help.
Change-Id: Ie4ee3337a2937bd2c26f0a9c4a1a00467954821b
Basically it uses the default SI4700 radio chip driver, the only thing that's different is the I2C access,
written specifically to interact with my kernel module.
Next things to add are:
- RDS support!
Change-Id: I0ed125641e00f93124d7a34f90dd508e7f1db5a4
Signed-off-by: Lorenzo Miori <memorys60@gmail.com>
To support fm radio a kernel module was written. This module is added to
the patched firmware that loads Rockbox. It's pre-compiled but its source
archive provided.
The kernel module provides raw-access to the built-in si4709 radio chip.
Our existing si 47xx drivers can be re-used this way.
The module itself was written Lorenzo Miori, I only integrated it
into the tree.
Change-Id: I6205d28a505d57791eaeb627e6856b9a1eaeaeaa
Emulates the basic "Meier" crossfeed (2 capacitors, 3 resistors)
as discussed in
http://www.meier-audio.homepage.t-online.de/passivefilter.htm
This crossfeed blends a bit of low-pass filtered L signal into
the R signal (and vice versa) while adding about 300 us delay
to the crossfed-signal. A difference with the crossfeed already
present in rockbox, is that this algorithm keeps the total
spectrum flat (the one currently in rockbox accentuates
low-frequency signals, making it sound a bit muffled).
This implementation is quite lightweight, just 3 multiplies per
left-right pair of samples. Has a default C implementation and
optimized assembly versions for ARM and Coldfire.
The crossfeed effect is quite subtle and is noticeable mostly
one albums that have very strong left-right separation (e.g.
one instrument only on the left, another only on the right).
In the user interface, the new crossfeed option appears as
"Meier" and is not configureable. The existing crossfeed is
renamed to "Custom" as it allows itself to be customised.
There is no entry for the user manual yet.
Change-Id: Iaa100616fe0fcd7e16f08cdb9a7f41501973eee1
Doesnt fix an actual bug because closing a handle is a no-op on all
native targets and others dont use overlay.
Change-Id: Ie55e3fd4abd08b174d86ca25aed54a970dddbebd
Refactor native/hosted implementation seperation while at it
(no wrappers starting with _ anymore).
Change-Id: If68ae89700443bb3be483c1cace3d6739409560a
The logic got broken by 6b8330d2.
Since the ifp700 port is basically unmaintained and unfinished and doesn't
build anyway, we can remove the special-casing for it. This simplifies the
logic to "hosted or native, except for bootloaders", which simplifies
further to "not bootloaders".
Fixes FS#12685
Change-Id: Iaaad534067da22b74bf647aa58dcbb678bbc5f70
When allocating the voice buffer, it's supposed to start at the beginning
of the audio buffer, not at the end of the voice buffer. ;-D
Might clear up a thing or two.
Change-Id: I94796ff21090bcc56813cdc569957a1a9178abcd