Similar as done with SAPI / MSSP make the current implementation for executable
based TTS engines a base class and create derived classes for each supported
TTS. Removes the need for the implementation to know about the individual TTS
engines.
Add support for speaking directly (i.e. without going through a temporary wave
file, currently only used by espeak).
Change-Id: I59bbbd6ee4c2c009b2a8d8e0ab4a9b39ea723d6e
While the current implementation of getTTS() will always return an object this
might change later. Check the returned object before using it to be on the safe
side.
Change-Id: Ic949cae7cfbe6f3086dee6aab741b0acafe14640
When retrieving USB IDs create a list of players matching to a USB ID instead
of assuming only one player. This prevents non-unique IDs overwriting each
other and will be used for improved autodetection later.
Currently only the first ID is used during detection, and no additional IDs
have been added yet.
Change-Id: Ieac5594108bae708e364bd2c8df88f61fcdcbdcd
MSSP is accessible via vbs by simply changing the object to be used (both
SAPI5 and MSSP use the ISpVoice COM interface). Add command line parameter to
sapi_voice.vbs to switch the COM object used, and add the necessary
implementation of the SAPI class to Rockbox Utility.
Important: you will need to install the Speech Runtime separately and install
the version matching the bitsize of Rockbox Utility. I.e. you will need to
install the x86 version even on a x64 machine (unless you build a 64bit binary
of Rockbox Utility).
Change-Id: If760cd69c556c17a2ae539965d0941d16fdc10e1
Based on the previous change add a derived class for SAPI4 support. Note that
SAPI4 support had been disabled, so it's also disabled to not show in the
selection dialog for now.
Change-Id: Iffda7daafd9327ef8821c4fe4b1b0fc581607f49
Move command line template for listing voices and generation into protected
member variables and initialize them in the constructor. This allows derived
classes to overwrite these, allowing to change the command line call. Make the
name used for storing the classes values to the configuration parametrize at
all.
Remove SAPI4 support, this will be handled in a derived class later.
Change-Id: Ib5a261c56cdf93a44fffdfa6edea409d89fd84ba
The currently used comma for separating voices for the /listvoices command is
used by Speech Platform based voices. Change the character to a semicolon
which isn't used by voices.
Change-Id: I1a7e6e4229f864f56635143e864dadf38cdd7e73
Since especially Windows puts the eject functionality behind an icon in the
systray which is usually hidden and doesn't complain if a USB drive is
unplugged without ejecting it first ejecting such a device might not be
obvious to everyone. Add a button to the main window allowing to eject the
selected player.
Currently only implemented for Windows.
Change-Id: I785ac1482cda03a1379cf6d0fd0d9a0ff8130092
While TalkFileCreator uses the current mountpoint for writing logging
information it does not use it for constructing the correct path to generate
talkfiles for.
Since there is not much point in generating talkfiles for files that are not on
the player (and the UI limits the paths that can get selected to folders on the
player) make TalkFileCreator use the mountpoint for creating correct paths.
Fixes FS#12748.
Change-Id: Id682a3738649e4167556255599553edc6e2acd48
Archos devices don't need a bootloader, but the automatic enabling of the
bootloader installation didn't handle this case, making a first time
installation impossible. Fix this by respecting the "none" bootloader case
separately.
Change-Id: I9b06348401f525c5447cf4ce061f2463083c0e61
Windows can show the version in the file properties. This requires an
additional entry in its resource. Restructure global version defines since the
former requires a different format than used previously.
Change-Id: I2bf261a02ea8e0af6dc081568960debfb779d396
- Move a GUI-only implementation class around.
- Make some strings non-translatable which don't make sense translating.
- Rename internal state in installation class. There is no current build
anymore.
Change-Id: I7384c5601de36bc48f858fe5c7b009653d439d94
When installing themes without any themes selected show a notice in the log and
continue instead of stopping.
Change-Id: Ieeb03e4656b041ce1dda25b2c44b6b6f0aa0ca80
When Rockbox Utility can't figure if the installed bootloader is a Rockbox
bootloader don't tell the user that it can't uninstall the bootloader but be
more specific stating that no Rockbox bootloader has been found.
Change-Id: I8e1eae4bdba30da87d10d2dc11fb9d48e176de2a
Bootloader handling is different on nano2g compared to the other supported Ipod
models. Since ipodpatcher handles this internally make ipodpatcher also provide
a way to check this when using from Rockbox Utility to avoid duplicating the
(already existing) checks in the latter.
Fixes wrong "bootloader already installed" message on nano2g.
Change-Id: Ibc658d775fbac7cf9a7e329d445fe97828a455d8
If neither an old selected build nor a release is available fallback to
selecting the development build.
Remove some old code that was not supposed to be be kept.
Change-Id: I883535bd8e7981e68bc3fac3bcd5f375e1237242
Check the correct image when looking for the Ipod firmware version. On nano2g
this is a different image.
Change-Id: Ic7981363399d44e03247a81277522bc1d271090a
Give the user a chance to cancel the backup if the selected file already
exists. Since the filename is automatically generated from the installation
version information this can happen when trying to create a second backup of
the installation.
Change-Id: Iee34e576c4b3b94a4ccf99836741806b52a8affd
The Quick Start tab turned out to be used a lot but not explaining what its
functionality actually does, leading to various amount of confusion. The Quick
Start tab and its functionality have been completely removed.
As replacement the reworked Installation tab now includes both the entries from
the old Installation tab (Bootloader and Rockbox) and the Extras tab (Fonts,
Themes, Game files). Each of the items can be enabled or disabled individually,
and the selection is saved in the configuration. The only exception is the
bootloader option, since installing the bootloader is only needed once. To help
with this the bootloader checkbox is automatically enabled if no Rockbox
installation is found, and disabled if one is found. While it would be nicer to
check if the bootloader is actually installed this is not possible for various
players so the implementation simply relies on a Rockbox installation.
This should also make it much easier to update an existing installation.
Current limitations:
- the selected themes are not saved.
- it is not possible to detect if the target has the plugins that require
additional game files prior to installation. Thus the "Game files" option is
available for all targets but simply skipped if the plugins are not found.
Change-Id: I1929bb7045e382fcbba431cca057d3121607d3a9
Allow using the themes installation dialog as selection dialog separately from
installing themes. For this the installation is now triggered separately and
can be told to not to do the installation on Ok button. In this case the dialog
is selection only, and the Ok button is changed to Select. The installation
itself is still done in the class but started by calling the install() method
separately.
Change-Id: I856db8204788302b2b539e6d8283f73cb354f033
After shrinking the size of the Rockbox logo shown and making the selected
device display two lines there is now enough room to also show an icon of the
player. The icon is scaled depending on the application font size, so for
setups configured with a larger font it still should show up in a reasonable
size.
Change-Id: I8f62f3292c62f820309157db73741b57fd6371ef
The original way of including the Rockbox logo wastes quite a bit of space.
Make it smaller and move it to the left, so the information about the
configured device can go next to it.
Change-Id: I790ffc423135e02e28cc963b0b565284b75bf98c
The "Installation" dialog allows backing up the current installation by
creating a zip file from the .rockbox folder since quite a while. However, this
has the drawback that you need to update your build to create a backup, but
creating a backup might be desireable in other cases as well (before updating
themes, or just for backup reasons). Since the functionality is somewhat hidden
it's also not obvious to users such a functionality exists (most users are
likely to use the "Quick Start" instead).
Implement backup functionality as dedicated dialog placed on the Uninstall tab.
Rename the Uninstall tab to accommodate this.
Change-Id: I1d2c6c8f646672d1b66bb442408fbfc2eeec700d
Since the Info widget is now a separate widget ask the tab widget about its
index instead of hard coding it. Rename a variable to avoid shadowing while at
it.
Change-Id: I40c18387aacc780ac2051bb894db36247171c268
To identify the source for System Trace entries qDebug() calls usually add the
class name at the beginning. Add some missing ones and remove some trailing
spaces.
Change-Id: I3179bb206e96de8b5a1c05c0fc0958936e4513f3
When searching for the bootloader file in a zip archive the filename in the
archive might use a different casing than the one we're looking after. Make the
search case-insensitive to not fail to find the file in this case.
Change-Id: I05ffc67421e67fae045eabb7851cd99a3757b6d7
The contents of the build details group change and might become larger than the
current size of the group box. Set its size policy to expanding, so it resizes
automatically instead of text being cut off at the bottom.
Change-Id: Iab7947046a9676ac76115766872daad3ac6763e4
Release candidates are now a third option in the installation window. Quick
start will still install the latest release.
Change-Id: I64e05160817263c5c4cb40cbdb4942149983e0ff
- Don't assume the list of release targets to be the same as the list of
release-candidate targets.
- Don't try to construct a download URL for releases with an empty release
version.
Change-Id: Icc3098a9db9e3d00261c32f4b9c2999ecc716380
The release-candiate entries provide both version and URL instead of only a
version entry and requiring the URL to be constructed separately. Since it's
easy to identify the format support both for release entries for improved
flexibility -- if the server URLs ever change the server only needs to get
updated to use the extended format.
Change-Id: If5c669b72d7acd6ac648c5f42dd844ae36904df6
Centralize creating the URLs so it's not duplicated in two places. This also
allows to change the representation on the server more easily, since it only
requires changes in one place.
Currently only changes URLs for Rockbox builds.
Change-Id: I87277cd61f8b164bdbcd914c9873d674661a786c
When using Rockbox Utility some later time the mountpoint might have changed.
This would invalidate the list of folders to voice even if the folders are
still present on the player. Remove the mountpoint part before storing the
folders, and add it when loading the settings.
Change-Id: Ic4ed98b205d20f6a0b3a1e1da396bbdcd02c255e
Save settings that haven't been and rename the configuration file value for the
talked folder. Since the folder was replaced with a list we can't use the old
value anymore so there's no need to keep a name that's not really suitable
anymore.
Solves FS#12634.
Change-Id: I8db2a536409b94c45f28db9418a11f11f57dfacb
Replace the old image shown on the left side in various dialogs with a more
recent one.
For the curious, this image has been taken at DevCon2012 and shows the
collected players to be used for building a tower.
Change-Id: If4303cc69bed3ac12bba04988427065926f1043c
Support selecting multiple folders by replacing the provided path with a tree
view that allows selecting multiple entries. The view is limited to the
selected mountpoint (i.e. the player) so this removes the possibility of
generating talk files for files that are not on the player. However, since
Rockbox Utility disables most functionality without an attached player this
isn't too much of a problem. Creating a standalone application for talkfile
creation that is not limited to the player is possible as well.
Change-Id: Ic68e7556f2e2e5b9c121aaba759a42a4d1d9d53a
Currently it's not possible to pass multiple folders for talking. Show the
folder to talk to give a useful feedback when calling it multiple times.
Change-Id: I0f3d1014ee3867cc81122e485fc36353ec0f55ff
- Make the window slightly smaller. There isn't too much information to be
displayed, and Qt will enlarge the window if necessary anyway.
- Rename the "wavtrim threshold" field, since "wavtrim" is not really
descriptive for non-developers.
Change-Id: I89622b3f1bca8bcd7326b447d28859412107287f
The encoder is fixed depending on the selected target, so there is no real
benefit in displaying it in voice and talkfile generation dialogs.
Change-Id: I1389800d04fcdac558b243368acfee6b1b64afc9
As with espeak, a string starting with - is wrongly interpreted as command line
option. Explicitly end options using -- to fix this.
Change-Id: I47b2f1c4ba236638b1f625e5bcf3262f47071c9c
If the Rockbox installation has voice strings included use them when generating
voice files. Fall back to querying the server if no voice strings are found or
the found strings are incompatible.
Change-Id: I9883829ab1757e55b1da9a434221a8dbfc702dd4
When calling espeak via command line explicitly indicate the end of options.
Fixes the voice string "-inf" getting recognized as unrecognized command line
option, breaking speaking.
Change-Id: I4d1be2e6c8ae23a72028919593c5a94990333a9c
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
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
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
Instead of using the date the voice file was created use the version of Rockbox
the voice file was created for. That way it is possible to see from the
installation log if the installed voice matches the current Rockbox version.
Change-Id: I9fd7d40d718febafbc20579f049b9b94cfa5d573
Instead of using some arbitrary and not really useful string use the timestamp
of the downloaded file if version string is provided by the caller. This also
makes it possible to check if the downloaded file is actually a different one.
Use it for manual and game file downloads, as this gives more reasonable values
than using the date transmitted for daily (archived) build and as support for
archived builds will be removed shortly.
Change-Id: I0c751fabe7bb516edca93a5f73f077a611d4ef87
Instead of showing the internal language names show some more human friendly
string. Currently only applies to the voice creation dialog, the language
configuration dialog needs further adjustments to support display strings
differing from values.
Change-Id: Ic94838f1079c1d09a666d7dbd9682c577f686b3f
Since Rockbox Utility could only install the most recent "daily build" there is
not much difference to the most recent development build so the option was not
really useful.
Additionally update naming. Former "daily" builds are now "archived builds" and
can get installed manually (if necessary), and "current" builds are renamed to
"development build".
Change-Id: I748688d544b6d9868f7495f30933637bf9ff5e50
An empty path is not resolvable, so immediately return an empty result. Fixes
an empty path resolve to "/" on Linux / OS X.
Change-Id: I22c26a7716becbf46850a04e18ee581084546263
When requesting an original firmware file from the user set the filter for the
file chooser dialog to only show files with matching file extension to simplify
selection. Allow the user to select "all files" in case the file for whatever
reason has the wrong extension.
Change-Id: Ic3643c3601f6d849e6563f8753ae80a168ec0a45
Create a BootloaderInstallHelper class for handling post installation hints and
creating the installation instance depending on the player model. This removes
the base class handling its derived classes which always has been weird, and
removes the need to change the base class when adding a new installation
method, since the base shouldn't be affected.
Change-Id: I2a156d70fd1cff6c48bdd46d10c33d75c953ea90
Always updating the mountpoint overwrites a manually entered mountpoint (only
available in debug builds).
Change-Id: I6298cb873496d66f4836f219e89ca8ae17261de9
Use gitscraper for retrieving files from the repository and update output a
bit. Fix some pep8 errors while at it.
Change-Id: Iff05bc916decb28bed99b83d9a32ce344d5c613b
When setting up qmake to use ccache keep using the compiler as defined in the
qmakespec instead of assuming it always to be gcc / g++.
Change-Id: I00ce32158ca4a5d67517347cae2e86b77051b3c9
ipod2c is identical to bin2c except it skipping the header of the input files.
Add this behaviour as option to bin2c to be able of using bin2c instead of
ipod2c.
Change-Id: I71afcaca6f2f6b0fce4c6aa3dff6be5bb205f384
As for BootloaderInstallFile check if copying the bootloader file to the player
did actually work or if an already present file caused the copy operation to
fail.
Change-Id: I2e889610b4cb9f57f73cffc473c6230be0d11e24
QFile::copy() doesn't overwrite an already existing file. This can lead to
bootloader installation trying to place a new file on the player but failing to
do the actual copy if the file already exists. Since overwriting an already
existing file might be unexpected by the user error out in this case and notify
the user.
Change-Id: I5ffaf2f1344271ea2bad9e3232234826552385ec
Some language files have the < and > characters the original string (like "<All
tracks>") has included in the voice strings. These characters cause the
generated wave file to not contain any samples with SAPI, causing an error when
Rockbox Utility tries to encode the file.
Since those characters don't make much sense in the voice string remove them
prior to speaking. Currently affected languages are basque, chinese-simp, and
russian, for which this fixes voicefile creation.
Change-Id: Iac7ccd7921ccfb5ddc33645239a1f8f7e639e5aa
Fixes "invalid mountpoint" errors that could happen if the preselected
mountpoint was never changed and no previous configuration available.
Change-Id: Ief5f1b7a0b24267a03028f5d402e8763a5a3fc70
Show an error if copying the firmware file to the player failed. Also, check if
there is already a firmware file present on the player. If so abort and tell
the user about it, since QFile::copy() doesn't overwrite existing files and the
user might not expect the file to get overwritten.
Change-Id: Ie63963289965900a4ab519ddf128246f89d81c6c
Retrieve the encoder settings only when creating the object or when saving.
Avoids unnecessary overhead by accessing the settings object on each encoder
call, which also clutters the system trace log.
Change-Id: If64e5d1d5ac8f1d4b0afd1bc4851e455fc7e64c2
Instead of skipping empty voice strings when trying to voice the list of
strings drop them immediately when building the list of strings.
Change-Id: Ib2627fb4b5061916cf04d67b6b78f457122ed2cd
On Windows espeak installs itself as command line program as well as as SAPI
voice. Using the SAPI voice is simpler, so there is no need to keep the command
line option for it.
Change-Id: I44fbd806572d5c14b976aa5d58a91935f04c6338
HD300 has been promoted to stable. The state of a port is retrieved from the
download server anyway, so there is no reason to keep the HD200 disabled.
Change-Id: Ic28c663c8999558dda5b10f4fa584e2f6732264a
Some git revisions are falsely detected as release version. Extend test and fix
the wrong regexp. Corrects font download trying to get the wrong file for some
current builds.
Change-Id: Ia779896c927385ec0d7ba68ee3d953f3c6e4494c
Only boot to rockbox if the power button is hold sufficiently long.
For consistency, use the same mechanism as the OF:
- read PSWITCH 550000 times
- boot if PSWITCH=1 at least 400000 out of 550000 times
Only apply the delay if Volume Down is not hold,
so that the OF and RB delay don't cumulate.
Change-Id: I1e8a4cd108c56bf784fcf1c320f7a001ef161701
Wait for the process to signal new data available instead of polling its
output. Fixes synchronisation issues with sapi_voice.vbs that were causing
FS#12595.
Change-Id: I86e844e837ed20f32005fdccf7ec9e8c1efbe983
Rockbox Utility binary has been renamed quite a while ago, make sure the
manifest for Windows matches.
Change-Id: If420075dc798ff3ec9c66e36f57d91af4e7d3b48
With the transition to git the assumption of the version starting with "r"
isn't true anymore for non-release builds. This caused the wrong strings to be
used when constructing various download URLs.
Remove the test binary which was never intended to be added and fix some
warnings in the test implementation.
Change-Id: I879fdff201cb85f3c89cca73ab6a0514edb5a2df
This allows testing the class by using temporary files without the need of
constructing a special path.
Change-Id: Id5ccd37f05219f246b9bf9f8a26ec81342654f89
Since we don't have revision numbers anymore remove the "r" prefix when showing
the version information to the user.
Change-Id: I1e36b11a23301dda9fe67bb284489510c65567d8
Create a new widget which holds the contents of the manual tab and its logic.
Unify its display / download code. Fixes FS#12587, which was caused by
duplicated code.
Change-Id: I5721d2a95ebeaf80481c1fd149eda22cf1328501
Instead of passing a parameter to decide if a dialog box should be shown pass a
pointer to the parent widget and make it static. This allows calling it from
outside while keeping the possibility to not show a warning.
Change-Id: I72fa53a7e8a83d527c22b698dfa434c24100ac29
Fixes a crash when leaving the encoder settings dialog with the Ok button but
the dynamically loaded library missing, in which case no settings will be
available.
Change-Id: I889a0bbcde6bed2df658b5df57341edf6802daad
Remove svn information from the version string as well, since we don't have
this information anymore.
Change-Id: I0055e6cd9e5e6cb1aaf678d91db183f4bc2117fe