...Unless it's the very first character (and will get stripped).
So detect and complain about this!
Change-Id: I5e333e8ee134160f64a67783b0d5aa564716d44e
In verbose mode it will log valid the strings found, otherwise it will
only complain when we encounter a missing string.
Unfortunately a missing string is not inherently a problem, due to
conditional expressions. So all we can do is complain in checkwps
or if wps debugging is turned on.
Meanwhile, this is the first step in actually enumerating the translated
strings used by themes.
Change-Id: Ia93b333085e825d5b085c4d372ad8e13aa3e3ba1
This is because a language may have a specific correction that should
take precedence over the global one, but if the global one is applied
first, then the language-specific correction gets skipped.
Change-Id: I45f736f20d6c83864df0bf764ca3d75ec4b9626a
We normally treat "same as English" as a translation errors that needs to be
corrected. However, many languages effectively use english words as-is, so
we need a way of distinguishing the "intentionally the same" situations with
our tools "automatically copying missing translated strings from English" to
avoid blank or missing UI strings.
The solution is to make sure these "intentionally same as english"
strings are actually different. This will be accomplished by prepending
'~' to the these strings. This special character is stripped from the
binary data files used by the player and the voice generation tools.
Change-Id: I90088cbd74de0e5cb9d65f75f26afe04f7e301bf
The original one was picked at random; while I personally find it
pleasing, it's soft spoken and doesn't work well when voicing over
already-playing music.
Change-Id: I0ed033f02a54f42e2d0729cab883068ecaad6faa
Annoyingly, this makes all of the '.S' files we compile get treated as
divided syntax, so we need to make the syntax in them explicit.
Change-Id: I56a3916b7b24c84a1214a5d6bc4ed4d651f002cf
Eg this was happening before:
'11 - Breña.mp3' --> '11 - Breña.mp3'
As well as resulting in incorrect voicing, it was breaking the encoding
of the .wav to .talk.
Change-Id: I6cf844d843ddf1a459f92e1ebd55c9feec886f55
add sorting directories as files
move picross files to a hidden folder
use directory for lua_scripts, sgt_puzzles
make plugin browser able to handle 1st level directories
Change-Id: I30852d71dc992c378d5790756e94f06f5a2e9bef
We do this by parsing out the format specifiers and making sure the
translation has the correct number, type, and order of specifiers.
Percent literals ('%%') are ignored.
Mis-matched formats can lead to much badness, so to be safe, use the
untranslated string instead and flag it as a problem on the translation
site.
Change-Id: Ib48c2e5c3502735b1c724dd3621549faa8b602b7
Picross is a puzzle game also known as Picture Crossword, Nonograms, or
Paint By Numbers. See http://en.wikipedia.org/wiki/Nonogram for
information on how to play.
Update 1: nicer graphics with less images, fixed directory listing,
changed how the board works to make a lot of math more sane
Update 2: added missing rb.yield to viewPicture loop
Update 3: you can now save a game in progress
Update 4: fixed a file pointer leak, improved the numbers font
Update 5: no images, use vector num draw library add zoom, freedraw -- Bilgus
Change-Id: Idc476b46b6eaa10818400fa789701d5bac83467f
https://github.com/rhasspy/piper
High quality, offline, neural-network-based, with good language coverage
Note that you have to manually download the piper voice models, and set
PIPER_MODEL_DIR appropriately. The configure script will let you choose
from the available models and remember your choices.
Change-Id: I8eba9fcf78b51b01b89491539aac3e423cc42f16
This will use the configured tts engine and language to generate
the talk clips for a specified directory.
TALKDIR=/path/to/somehere make talkclips
TALKDIR=/path/to/somehere make talkclips-force
If 'TALKDIR' is not defined then it will error out gracefully.
Normally if a talkclip is present already it will not regenerate the file,
but 'make talkclip-force' will regenerate it anyway.
Change-Id: I62683f9e5ca395fd303ac6029096c20da1e96d01
This covers the voiced directory and filenames
* Don't regenerate a talk clip if one is present (?)
* Format awareness; ie if the TTS engine generates an mp3 file,
convert it to a wav file so we can encode it properly
* Use a global variable for the wavtrim threshold
Change-Id: I9f441b573704bdf7675794fd0e1984446308463b
I updated the scripts to use a generic '.enc' as the filename as we
haven't used true '.mp3' files for some time (and even then, only on the
Archos devices) but I missed the voicefont generation tool.
Change-Id: I450de9215664b6559058b175afc25aa874d11dcc
* Language and dialect need to be specified separately
* Convert the mp3 files generated by gtts into wav into rbspeex
(Uses ffmpeg currently)
Change-Id: I6d7b9494e70a61537519221522202ea28469cc70
Some distros, including Ubuntu/Debian, don't provide a "python"
command unless an additional package is installed. Using "python3"
explicitly should work everywhere.
Using "/usr/bin/env" respects the user's PATH, so they can choose
a specific Python version instead of forcing the systemwide copy.
Change-Id: I02e3ead92939c42df6def79dec3dc2a62c62b1c3
* 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
In my opinion this API is just not very useful - design is kind
of questionable. There are hidden limits on the struct size and
bugs on 64-bit platforms due to assuming sizeof(long) == 4.
At the end of the day, the only major user was the tagcache and
it's actually less code size to do endian swapping manually.
Change-Id: I451c7f1a10cf3e28744c32c0f1f39a710d5cc100
Apparently _most_ targets have a dbtool built as a simulator variant,
but _some_ are built as an application target. This commit fixes
simulator-based targets, which weren't ever broken.
(Prior commits fixed things for _app_ targets, which haven't worked
since at least 2020, maybe never..)
Change-Id: I7fef2b10e5128059b293118617701630bf3dc1fb
This makes it far more useful, as before it insisted on scanning from
the root directory and putting the generated db files in /.rockbox
Change-Id: I0d0e3c6c6c7ee1fc5473185482fbfb9a2a2be29f
Three separate problems:
1) Make 4.4 defaults to a named pipe for jobserver control, this
was incompatible with how glibc did recursive makes
2) Make 4.4 passed long arguments ( --foo ) into MAKEFLAGS and this
broke stuff that wasn't expecting it
3) Circular dependency in a header generation due do make 4.4 being
stricter/more consistent in how it orders rules vs which makefiles
they came from. This one was the real !@#!@ to deal with.
This patch set fixes the hosted arm (glibc 2.19) and mips (glibc 2.25)
toolchains.
Change-Id: Ie6d6a0ab7e1b36f24c43e524fee4afc0bd3a14d6
eg, our current toolchian generates this:
GNU ld (GNU Binutils) 2.26.1
But the system toolchain on the buildserver generates this:
GNU ld version 2.37-37.fc36
Change-Id: I0166f12d660654c1456289954fb256db98213618
NO_CROSSREFS_TO() was first introduced in binutils 2.27.
It is used to have the linker report errors when symbols
from a list of sections refer to a specified section,
which is useful for verifying that normal code does not
refer to INIT_ATTR code.
Note this doesn't actually start using NO_CROSSREFS_TO()
for builds -- that will have to wait until the toolchain
upgrade when we'll have a new enough binutils -- it just
detects support for the feature so it can be conditionally
enabled in linker scripts.
Change-Id: If1553eaa671fcbbdfe6af357a6331931e7c4f997
Previously, it was hardcoded to the english convention of units-last, so
"100%" would be voiced as "one hundred percent". This adds a new
language flag that makes the units be voiced first, ie "100%" will be
voiced as "percent one hundred".
So far only the Chinese-traditional and Chinese-simplified languages
utilize this feature (taken from an old ticket, FS#10340) but I'm sure
others would want this feature too.
Change-Id: Idf825ec9299dc0ed09921cf67aec61b1ab262fc6
This turns on -fwrapv and -fwrapv-pointers.
As per GCC docs:
"This option instructs the compiler to assume that signed arithmetic
overflow of addition, subtraction and multiplication wraps around
using twos-complement representation. This flag enables some
optimizations and disables others."
All of our targets fall under this category.
For some time now we've been using -Wall which implies
-Wstrict-overflow=2, which only warns when the compiler actually
implements a possibly questionable optimization, so I'd expect this to
not affect our code size at all.
Change-Id: I8e1c10183e390c6d0897e81f84a5df4590b02d84
Make 4.3 and newer doesn't interpret comments in a shell call,
whereas Make 4.2 and older do. Escaping the comment directly
works on old makes, but on new makes the backslash is passed
as well -- which we want to avoid.
The safe way to pass a literal "#" character to the shell on
both versions is by embedding it in a variable and expanding
that. It's ugly, but it works...
Change-Id: I1a217c42d747fd5aa83f9990c234e06966ac1a00
GNU grep 3.8 warns about "\#" when compiling. The "#" has to be
escaped for Makefiles and shell, but it isn't special to grep so
grep thinks it's an invalid escape sequence.
Change-Id: Ieb2607d42b7daa1939ca0101b915ec0c7afd4298