Commit graph

321 commits

Author SHA1 Message Date
Dominik Riebeling
a1b780e670 Add support for Microsoft Speech Platform.
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
2012-09-09 12:07:53 +02:00
Dominik Riebeling
469a614349 Add derived SAPI4 class.
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
2012-09-09 12:07:52 +02:00
Dominik Riebeling
6be7dabdd9 Make SAPI implementation more parametrizable.
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
2012-09-09 12:07:51 +02:00
Dominik Riebeling
9e2eb6243f Change sapi_voice.vbs voice list separation character.
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
2012-09-08 20:46:20 +02:00
Dominik Riebeling
328ff6d979 Add "Eject" button to main window.
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
2012-09-08 20:34:36 +02:00
Dominik Riebeling
05caadbca3 Correctly construct the path for talkfile generation.
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
2012-09-05 20:21:59 +02:00
Dominik Riebeling
ca1bbc08b3 Check environment before starting installation.
The environment needs to be correct for other installations than main Rockbox
as well.

Change-Id: Icf626de63b58ba40f600fd095a254b6e7e9e46ee
2012-08-19 11:04:54 +02:00
Dominik Riebeling
bf1c491c2b Move check for existing bootloader to ipodpatcher.
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
2012-07-01 12:34:59 +02:00
Dominik Riebeling
a455f5901a Fix nano2g bootloader uninstallation.
Check the correct image when looking for the Ipod firmware version. On nano2g
this is a different image.

Change-Id: Ic7981363399d44e03247a81277522bc1d271090a
2012-07-01 12:34:59 +02:00
Dominik Riebeling
fa17cb904c Rework Installation and remove Quick Start tab.
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
2012-06-26 20:11:41 +02:00
Dominik Riebeling
f419128a6b Show player picture left of device configuration.
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
2012-06-26 18:30:27 +02:00
Dominik Riebeling
362f447ede Create dedicated backup dialog.
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
2012-06-26 18:30:27 +02:00
Dominik Riebeling
388014567f Add missing class name to System Trace log.
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
2012-06-25 00:04:44 +02:00
Dominik Riebeling
e359202aa1 Fix bootloader zip extraction filename case sensitivity.
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
2012-06-23 12:10:56 +02:00
Dominik Riebeling
4f4e1d1f0e Move constructing manual URL to ServerInfo class.
Change-Id: I4d2605b2389b4378e8311fc82057974e0eb238e6
2012-06-18 23:18:32 +02:00
Dominik Riebeling
9760d4155f Make ServerInfo parsing slightly more robust.
- 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
2012-06-17 13:02:22 +02:00
Dominik Riebeling
a3d9ace41e Support release-candidate entry format for releases.
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
2012-06-17 11:25:11 +02:00
Dominik Riebeling
d3ddad95be Read release candidate information from build-info.
Change-Id: I73ac0922f25dd247588f945eba1e78f4026d747d
2012-06-17 11:21:04 +02:00
Dominik Riebeling
94555a0b08 Move download URL construction to ServerInfo.
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
2012-06-17 10:30:19 +02:00
Dominik Riebeling
537dfe482f Save all settings in talkfile dialog.
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
2012-06-14 22:54:30 +02:00
Dominik Riebeling
da08e5059a Talkfile: show folder to talk.
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
2012-06-13 23:01:57 +02:00
Dominik Riebeling
4ea3f9ff2a Move include to proper place and do some code police.
Change-Id: I74a32e44ead18651a22a3a5038415808cbde6c39
2012-06-12 20:11:20 +02:00
Dominik Riebeling
14ffde1239 flite: indicate end of options on command line.
As with espeak, a string starting with - is wrongly interpreted as command line
option. Explicitly end options using -- to fix this.

Change-Id: I47b2f1c4ba236638b1f625e5bcf3262f47071c9c
2012-06-10 18:20:39 +02:00
Dominik Riebeling
900cf6d52b Rockbox Utility: support reading voice strings from target.
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
2012-06-09 23:39:57 +02:00
Dominik Riebeling
551ea5eaa4 espeak: indicate end of options.
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
2012-06-09 23:36:24 +02:00
Dominik Riebeling
1e2c6506fb Fix crash in mkimxboot bootloader installation.
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
2012-06-09 22:08:54 +02:00
Dominik Riebeling
b2380b535e voicefont: make format version a parameter.
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
2012-06-05 23:24:54 +02:00
Dominik Riebeling
f4b0e316c3 Update for single build-info file.
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
2012-06-03 00:50:01 +02:00
Dominik Riebeling
f494c3c325 ZipUtil: check zip file external attributes for folder.
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
2012-05-31 20:44:45 +02:00
Dominik Riebeling
112b80b0c2 VoiceCreator: Factor out creation to separate function.
Change-Id: I83d1a08745acc88aa673d07e469a0a854ef97050
2012-05-27 22:57:17 +02:00
Dominik Riebeling
042314b440 Remove leftover debugging output.
Change-Id: Ifcc34224e7ee7703d8b7290e308dc4b116050a2a
2012-05-25 23:15:11 +02:00
Dominik Riebeling
9b5d6679b8 Use full version string for voicefile version.
Change-Id: If9a179b0fcb707efb32590c8914eccdb81ee27df
2012-05-23 22:59:56 +02:00
Dominik Riebeling
6de59442a5 Use Rockbox version for created voicefile version.
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
2012-05-23 22:48:09 +02:00
Dominik Riebeling
968448c9cd ZipIntaller: use file timestamp if version string is missing.
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
2012-05-23 21:10:38 +02:00
Dominik Riebeling
733eb9af40 Show nicer language names in voice creation dialog.
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
2012-05-19 16:52:58 +02:00
Dominik Riebeling
45782df278 Remove "daily builds" from Rockbox Utility.
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
2012-05-19 16:37:45 +02:00
Dominik Riebeling
4b5348ba04 Don't try to resolve an empty path.
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
2012-05-11 22:07:34 +02:00
Dominik Riebeling
9b363c6ced Bootloader installation: set file filter.
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
2012-05-01 10:49:48 +02:00
Dominik Riebeling
92ef7bd328 Move bootloader class initialiation into helper.
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
2012-05-01 10:49:48 +02:00
Dominik Riebeling
7f9bb7b823 MI4 bootloader: check for copy result.
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
2012-04-26 22:01:33 +02:00
Dominik Riebeling
b623b97d40 Check for bootloader file on device before copying.
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
2012-04-26 21:19:56 +02:00
Dominik Riebeling
51f1fcbe26 Voicefile: remove < and > from voice strings before speaking.
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
2012-04-26 21:19:56 +02:00
Dominik Riebeling
debe77a567 Check for existing firmware file on H100 / H300.
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
2012-04-10 20:37:29 +02:00
Dominik Riebeling
0c4bd3a9c4 libmp3lame encoder: don't retrieve settings for each run.
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
2012-04-06 17:00:48 +02:00
Dominik Riebeling
fe756b65de Drop empty voice strings when building list of strings.
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
2012-04-06 16:18:46 +02:00
Dominik Riebeling
eb6c6581bd Remove espeak from TTS list on Windows.
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
2012-04-02 20:09:32 +02:00
Dominik Riebeling
674bbbaf83 Fix false positive in version detection.
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
2012-03-12 22:16:14 +01:00
Thomas Jarosch
e8c7d10e46 Fix mismatching C++ new[] / delete calls
cppcheck report:
[rbutil/rbutilqt/base/encoderlame.cpp:273]: (error) Mismatching allocation and deallocation: mp3buf
[rbutil/rbutilqt/base/encoderlame.cpp:282]: (error) Mismatching allocation and deallocation: mp3buf
[rbutil/rbutilqt/base/encoderlame.cpp:289]: (error) Mismatching allocation and deallocation: mp3buf

[rbutil/rbutilqt/base/encoderlame.cpp:274]: (error) Mismatching allocation and deallocation: wavbuf
[rbutil/rbutilqt/base/encoderlame.cpp:283]: (error) Mismatching allocation and deallocation: wavbuf
[rbutil/rbutilqt/base/encoderlame.cpp:290]: (error) Mismatching allocation and deallocation: wavbuf

[rbutil/rbutilqt/base/encoderlame.cpp:184]: (error) Mismatching allocation and deallocation: buf

Change-Id: I9fd54b6e02817eb900ec6e24d967da6d4beaeb27
2012-02-29 20:13:17 +01:00
Dominik Riebeling
f9bf62e3ad Fix post installation hint for h100 / h300 players.
Change-Id: I7af8883253281c85fef52001b291fcd942772e3d
2012-02-22 23:19:58 +01:00
Dominik Riebeling
dc9bd859fe Remove duplicate entry from postinstall hint.
The Fuze+ has its own "disconnect player" message, so don't show the generic
one here.

Change-Id: Ibecac46d2434cb2c2b0369ff87649093252594ef
2012-02-22 23:09:59 +01:00
Dominik Riebeling
1a4a934d5e Don't poll SAPI script output.
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
2012-02-22 22:34:37 +01:00
Dominik Riebeling
cfae625a73 Implement findProcess() on OS X.
Change-Id: Iec5e91f1c8c08a58a19f79339d03247148347d45
2012-02-21 20:02:48 +01:00
Dominik Riebeling
2d7a4e9dfa Fix RockboxInfo() not handling git hashes correctly.
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
2012-02-19 17:44:35 +01:00
Dominik Riebeling
a56f4425c6 Allow overriding filename for rockbox-info.txt.
This allows testing the class by using temporary files without the need of
constructing a special path.

Change-Id: Id5ccd37f05219f246b9bf9f8a26ec81342654f89
2012-02-19 14:12:22 +01:00
Dominik Riebeling
f1eedb80a2 Don't try to save settings if none available.
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
2012-02-06 22:35:08 +01:00
Dominik Riebeling
3e0f2b3e1c Use relative paths to quazip includes.
Shorten the include list a bit by using relative paths.

Change-Id: I91fa7b292179c9f8cd0c257ef9b8d26bca34963b
2012-01-29 22:55:18 +01:00
Dominik Riebeling
7d8db0a6ff findExecutable(): cleanup log output a bit.
Change-Id: I217bddc91ff9ea43a5cfc018818f5a19b1555dd9
2012-01-29 22:55:18 +01:00
Dominik Riebeling
4105c82e6b Centralize settings for executable based TTS systems.
The configuration values for executable based TTS systems is stored in member
variables. Instead of reading them multiple times provide a function for that
and move searching the executable to the loading function.

Previously the executable was only searched in the path when opening the TTS
configuration. Having this in the loading function removes that unnecessary
step in case the TTS is in the path (and doesn't require additional
configuration).

Change-Id: I06799b55545dcb719ee3c916795b20e01c248a15
2012-01-29 22:55:18 +01:00
Dominik Riebeling
0ae49c2719 Separate default quality setting for encoders.
Instead of having a global quality setting for the encoder make the encoder
provide its default value by itself. Fixes the libmp3lame encoder using an
unsuitable value since the range differs greatly between the encoders.

Centralize reading the configuration values for rbspeex. The values are stored
in member variables, so it's not necessary to read them multiple times.

Change-Id: Ia26cb1fc3bb4f927d13212fe7883bdfe2571a711
2012-01-29 22:55:18 +01:00
Dominik Riebeling
933a674891 libmp3lame: add quality and volume settings.
Change-Id: I220526f071dadc69791e5bf6d23cfce2bf9ba045
2012-01-29 22:55:18 +01:00
Dominik Riebeling
250a73317f Check running processes at startup.
Retrieve the processes running at startup and compare with a list of
potentially problematic ones.  Right now this is Itunes which is known to be
able to cause problems when trying to install the bootloader on an Ipod. No
user notification yet.

This adds the implementation for Windows.

Change-Id: I5ce8a85da52e0ed8f523b5ae6fb5d8f14f6a14c9
2012-01-22 22:26:01 +01:00
Dominik Riebeling
61047e1561 Fix a typo.
Change-Id: I32a0d202385f025e0f450f7ba2fba5b6334d8f39
2012-01-17 22:11:32 +01:00
Dominik Riebeling
b18bbabc91 Fix unused-but-set warnings in helper functions.
Instead of storing the return value and ignoring it use it directly to check if
an error occured. Addresses FS#12542.

Change-Id: I447afa006366acfd1851d5b13cae5f1561050283
2012-01-17 22:03:42 +01:00
Dominik Riebeling
633749ea61 TTS: check if created wav file exists.
Instead of simply assuming the wav file that is supposed to be created by the
TTS engine check if the file actually exists and return an error if not.

Change-Id: I9e4a85a061b44b48931614602683b1dfe7dfce67
2012-01-17 20:19:59 +01:00
Dominik Riebeling
b45cc0a13a Support reading OF files from zip.
Several devices require the original firmware to be able installing the
bootloader. Most vendors distribute the firmware file in zip format. Extend
reading the original firmware file to support reading the file from the zip
directly instead of requiring the user to separately extract it.

Change-Id: Ic4e89053456d8f7d6adc294f6657aceddbc354ba
2012-01-15 23:32:15 +01:00
Dominik Riebeling
9db5c124af Fix wavtrim on voicefile creation.
Pass the threshold value for wavtrim to the TalkGenerator object instead of
using the default value. Makes wavtrim to be actually used.

Furthermore, check the result of the wavtrim call and respect its return value.
2012-01-15 12:30:03 +01:00
Dominik Riebeling
820dcfdfed Remove multithreading support from voicefile creation.
Running TTS and encoders with multiple threads is causing problems on Windows
since introduction of the feature (FS#12106, FS#11994). The current
implementation also makes wrong assumptions (having multiple threads talk to
the SAPI script doesn't make it run faster since it's still one thread
responsible for creation).

Completely remove multithreading support for that for now -- a different
implementation is necessary.

Change-Id: Icafa223644efc370a09186ce28ac83c22902e0c0
2012-01-14 16:37:01 +01:00
Dominik Riebeling
42fa2a8d0f Improve error handling and logging.
- Fix a warning
- Log an error if the file to encode cannot be read.
- Adjust some log strings.
2012-01-14 12:14:49 +01:00
Dominik Riebeling
f1fc6bae25 Rockbox Utility: use libmp3lame for voice clips.
Instead of calling the lame executable use libmp3lame directly. As result, this
simplifies the prerequisites for creating voice clips for Archos devices to
putting the library in the system's search path (Windows: put libmp3lame.dll in
the search path or the same folder RockboxUtility.exe is located in. Linux:
install the library using your systems package manager) and configuration.

This creates a notable encoding speedup on Windows (around factor 6 on my test
setup) and a small speedup on Linux (around factor 1.2).

The implemenatation currently has the following limitations:
- Only enabled on Windows and Linux. On OS X installing the correct dylib is a
  bit nontrivial, so using the old command line based method is still in use
  for now.
- The encoder parameters are currently hardcoded to use the same values the
  build system uses.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31634 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 11:50:04 +00:00
Dominik Riebeling
3e014d3523 Fix wrong includes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31633 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 11:49:57 +00:00
Dominik Riebeling
959432d728 Fix typo in comment.
Thanks to fml for noticing.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31595 a1c6a512-1295-4272-9138-f99709370657
2012-01-06 20:45:36 +00:00
Dominik Riebeling
be0e197190 Split up encoders sources.
Create a separate source / header file for each supported encoder and the base
class and rename classes for better readability. This should also make it
easier adding new encoders.

Remove a few trailing spaces while at it.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31592 a1c6a512-1295-4272-9138-f99709370657
2012-01-06 19:19:32 +00:00
Dominik Riebeling
61f999a16e Rockbox Utility: add support for mkimxboot bootloader.
Reworked version of FS#12402 by Jean-Louis Biasini.

Since the mkimxboot process takes quite a while which blocks the UI it has been
adjusted to perform the actual firmware patching in a separate process. Various
other small changes have been made to make it fit better into Rockbox Utility's
dialogs / messages and update the code to latest changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31580 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 19:19:02 +00:00
Dominik Riebeling
56e1e859ca Extend flashing hint a bit.
Since flashing the firmware is a rather critical process extend the post
installation hint to advise the user of charging the player first.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31579 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 17:52:34 +00:00
Dominik Riebeling
2b04f7bba5 Remove trailing whitespaces.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31545 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 21:48:27 +00:00
Frank Gevaerts
0cb0b50236 Remove duplicate include. Thanks to Jean-Louis Biasini for spottin this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31383 a1c6a512-1295-4272-9138-f99709370657
2011-12-20 20:32:51 +00:00
Dominik Riebeling
5ffd2f7598 Various adjustments for MSVC.
- MSVC uses different namings in some places. Adjust the sources via the
  preprocessor if build with MSVC.
- MSVC doesn't know about __func__, use name instead.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31185 a1c6a512-1295-4272-9138-f99709370657
2011-12-08 21:59:13 +00:00
Dominik Riebeling
38f03d4eae sansapatcher: factor out handling of bundled bootloaders.
Instead of handling bundled bootloaders in the sansapatcher functions leave
that to the caller. This removes the need to have Rockbox Utility specific
parts in sansapatcher. sansa_add_bootloader() now operates on an already loaded
bootloader. For loading a convenience function sansa_read_bootloader() is
added. This also introduces a new check on loading to prevent installing an
e200 bootloader on a c200 (and vice versa).

These changes will allow building a libsansapatcher for linking with Rockbox
Utility later.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31144 a1c6a512-1295-4272-9138-f99709370657
2011-12-04 19:40:43 +00:00
Dominik Riebeling
059cb71c96 Extend return codes for chinachip_patch().
Instead of passing error messages using a callback function (which becomes
awkward when used from a C++ class object) return distinct error codes from
chinachip_patch(). This also removes the kludge to support translations for
Rockbox Utility and moves the strings to translate to the installation class
where they belong.

As a side effect info messages won't be passed to Rockbox Utility anymore, but
the details of the patching progress aren't of that much interest for the user
anyway.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31115 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 09:41:44 +00:00
Dominik Riebeling
8317226ff8 Carbon TTS: Fix a memory leak on read error.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30961 a1c6a512-1295-4272-9138-f99709370657
2011-11-10 21:12:07 +00:00
Dominik Riebeling
8f827f10e2 Show user friendly name on target mismatch.
Instead of showing the target name as stored in rockbox-info.txt retrieve the full descriptive name.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30886 a1c6a512-1295-4272-9138-f99709370657
2011-11-01 20:46:46 +00:00
Dominik Riebeling
20edaf67a7 Revert r30869 "Remove buildserver_modelname value."
The buildserver_modelname is still in use, and the commit missed some parts on
removal, causing segfaults on start.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30884 a1c6a512-1295-4272-9138-f99709370657
2011-11-01 19:40:35 +00:00
Dominik Riebeling
10832b8c1c Remove buildserver_modelname value.
Since changing the manual URL creation to be template based this value isn't
used anymore. It's also pretty much the same as configure_modelname, so remove
it completely.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30869 a1c6a512-1295-4272-9138-f99709370657
2011-10-30 19:55:35 +00:00
Dominik Riebeling
7263ccb105 Remove svn keyword lines from sources.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30806 a1c6a512-1295-4272-9138-f99709370657
2011-10-19 20:51:16 +00:00
Dominik Riebeling
4f56b50df4 Voicefile generation: implement string corrections.
Voicefile generation now can correct strings for the TTS system similar
to what voice.pl does. The current implementation has some limitations:
- only implemented for voicefile creation.
- the corrections file is built in and can't get changed.
- string corrections can be disabled in the configuration dialog.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30628 a1c6a512-1295-4272-9138-f99709370657
2011-10-01 19:48:58 +00:00
Dominik Riebeling
fe3eadffba Rockbox Utility TTS: implement reading TTS vendor.
Support retrieving the vendor name of the TTS. This will be used by TTS string
corrections. Currently no other TTS but SAPI supports this, and only correction
strings for SAPI voices depend on the vendor information.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30609 a1c6a512-1295-4272-9138-f99709370657
2011-09-26 21:28:05 +00:00
Dominik Riebeling
743308e882 Take cluster size into account when calculating zip extracted size.
Allow passing an (optional) cluster size to round up all file sizes when
calculating the total size of an extracted zip archive. This allows to check if
the space on disk is actually sufficient without relying on an arbitrary
headroom value which might be wrong. Addresses FS#12195.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30214 a1c6a512-1295-4272-9138-f99709370657
2011-07-26 20:54:44 +00:00
Dominik Riebeling
60468fe6ac Implement reading the volume label on OS X.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30151 a1c6a512-1295-4272-9138-f99709370657
2011-07-17 18:58:05 +00:00
Dominik Riebeling
9c9bc1216c Move some helper functions out of Autodetection.
Those functions are rather general, so put them into the Utils class instead.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30146 a1c6a512-1295-4272-9138-f99709370657
2011-07-17 08:08:58 +00:00
Dominik Riebeling
b7fe90aa36 The mountpoint is stored with normalized separators.
Make sure to convert it on reading to avoid not finding it even if stored with
native separators in the configuration. Fix a warning on Windows.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30145 a1c6a512-1295-4272-9138-f99709370657
2011-07-17 08:08:51 +00:00
Dominik Riebeling
c9f70fe304 Show volume labels on Windows.
In mountpoint selection and system info dialog show the volume name to make it
easier to identify a specific device.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30141 a1c6a512-1295-4272-9138-f99709370657
2011-07-15 20:03:05 +00:00
Dominik Riebeling
21a38713a6 Show the total size of the volume along with the free space.
This should help identifying the correct player by size, since the free space
is only useful to figure if there is enough space to install Rockbox. Change
units to GiB since that is more useful given the size of current devices.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30139 a1c6a512-1295-4272-9138-f99709370657
2011-07-15 18:13:31 +00:00
Dominik Riebeling
dfd4183a7d Fix bootloader uninstallation on Gigabeat F / X.
The "file" bootloader installation method usually can uninstall the bootloader.
Some upgrade methods (like the Iaudio players) remove the bootloader file
placed on the player after upgrading so those can't uninstall the bootloader.
Instead of rejecting uninstallation for all players using this method check the
current bootloader and only display an error if no suitable bootloader is
found (which would happen in the Iaudio case).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30070 a1c6a512-1295-4272-9138-f99709370657
2011-06-25 17:21:01 +00:00
Jens Arnold
91ce4b2a60 Optional dual-boot support in iAudio X5 and M5 bootloader, based on FS#5289.
In order to enable it, #define HAVE_DUALBOOT when building the bootloader.
Do not use the automatically created x5_fw.bin or m5_fw.bin, but use mkboot
to create a new firmware file from an OF x5_fw.bin resp. m5_fw.bin and
bootloader.bin.

The dual-boot bootloader boots the OF when pressing Play (main or remote) for
more than 3 seconds. Hold it a bit longer because the OF also checks buttons.
Short press boots rockbox.

As a bonus, the Play button read (for hold check) is done a bit earlier for
single-boot mode as well.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30018 a1c6a512-1295-4272-9138-f99709370657
2011-06-19 17:23:18 +00:00
Dominik Riebeling
b5feacfaac Fix some gcc 4.6 warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29933 a1c6a512-1295-4272-9138-f99709370657
2011-05-29 19:46:20 +00:00
Michael Giacomelli
6484b45d71 Make the AMS bootloader prompt slightly more specific.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29870 a1c6a512-1295-4272-9138-f99709370657
2011-05-13 18:35:19 +00:00
Dominik Riebeling
3467ee8ddd Fix SAPI default speed being way too fast.
The settings currently can't differentiate between default values for different
subitems (i.e. different TTS systems). As a result the default value returned
for SAPI speed was way out of bounds, leading to the upper limit getting used.
Work around this limitation by checking the value for bounds and use a sensible
value in that case.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29763 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 18:58:01 +00:00
Dominik Riebeling
c6a8efb8af Implement simple run for non-multithreaded TTS.
Since setting the maximum number of threads to use to 1 causes sporadically
files missing add a simple alternative implementation that doesn't use futures.
This is a stop-gap solution to fix voice files not creating (reported on
Windows with SAPI voices, see FS#11994). Encoding doesn't seem to be affected
by the problem and is unchanged.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29762 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 17:59:43 +00:00
Dominik Riebeling
88e68ec5b0 Make TTS names translatable and change Sapi to SAPI.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29759 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 13:32:13 +00:00
Dominik Riebeling
2e990a6827 Use System TTS if none is set.
If no TTS has been selected previously default to the system one if any.
Otherwise use espeak.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29758 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 13:32:04 +00:00