diff options
-rw-r--r-- | rbutil/rbutilqt/base/rockboxinfo.cpp | 5 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/rockboxinfo.h | 2 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/voicefile.cpp | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/voicefile.h | 1 | ||||
-rw-r--r-- | tools/voicefont.c | 6 | ||||
-rw-r--r-- | tools/voicefont.h | 2 |
6 files changed, 15 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/base/rockboxinfo.cpp b/rbutil/rbutilqt/base/rockboxinfo.cpp index f9c0ea5b23..e5bce09d2c 100644 --- a/rbutil/rbutilqt/base/rockboxinfo.cpp +++ b/rbutil/rbutilqt/base/rockboxinfo.cpp @@ -26,6 +26,7 @@ RockboxInfo::RockboxInfo(QString mountpoint, QString fname) qDebug() << "[RockboxInfo] Getting version info from rockbox-info.txt"; QFile file(mountpoint + "/" + fname); m_success = false; + m_voicefmt = 400; // default value for compatibility if(!file.exists()) return; @@ -40,6 +41,7 @@ RockboxInfo::RockboxInfo(QString mountpoint, QString fname) QRegExp features("^Features:\\s+(\\S.*)"); QRegExp targetid("^Target id:\\s+(\\S.*)"); QRegExp memory("^Memory:\\s+(\\S.*)"); + QRegExp voicefmt("^Voice format:\\s+(\\S.*)"); while (!file.atEnd()) { QString line = file.readLine().trimmed(); @@ -68,6 +70,9 @@ RockboxInfo::RockboxInfo(QString mountpoint, QString fname) else if(memory.indexIn(line) >= 0) { m_ram = memory.cap(1).toInt(); } + else if(voicefmt.indexIn(line) >= 0) { + m_voicefmt = voicefmt.cap(1).toInt(); + } } file.close(); diff --git a/rbutil/rbutilqt/base/rockboxinfo.h b/rbutil/rbutilqt/base/rockboxinfo.h index 9ea6e2011f..af5cf227f7 100644 --- a/rbutil/rbutilqt/base/rockboxinfo.h +++ b/rbutil/rbutilqt/base/rockboxinfo.h @@ -34,6 +34,7 @@ public: QString targetID() {return m_targetid;} QString target() {return m_target;} int ram() { return m_ram; } + int voicefmt() { return m_voicefmt; } bool success() { return m_success; } QString revision(void) { return m_revision; } QString release(void) { return m_release; } @@ -45,6 +46,7 @@ private: QString m_targetid; QString m_target; int m_ram; + int m_voicefmt; bool m_success; }; diff --git a/rbutil/rbutilqt/base/voicefile.cpp b/rbutil/rbutilqt/base/voicefile.cpp index bbb703bc3d..b7a5f8f760 100644 --- a/rbutil/rbutilqt/base/voicefile.cpp +++ b/rbutil/rbutilqt/base/voicefile.cpp @@ -59,6 +59,7 @@ bool VoiceFileCreator::createVoiceFile() QString features = info.features(); m_targetid = info.targetID().toInt(); m_versionstring = info.version(); + m_voiceformat = info.voicefmt(); QString version = m_versionstring.left(m_versionstring.indexOf("-")).remove("r"); //prepare download url @@ -231,7 +232,8 @@ void VoiceFileCreator::create(void) return; } - voicefont(ids2,m_targetid,m_path.toLocal8Bit().data(), output); + qDebug() << "[VoiceFile] Running voicefont, format" << m_voiceformat; + voicefont(ids2,m_targetid,m_path.toLocal8Bit().data(), output, m_voiceformat); // ids2 and output are closed by voicefont(). //cleanup diff --git a/rbutil/rbutilqt/base/voicefile.h b/rbutil/rbutilqt/base/voicefile.h index f3f6c7a930..d34535e700 100644 --- a/rbutil/rbutilqt/base/voicefile.h +++ b/rbutil/rbutilqt/base/voicefile.h @@ -67,6 +67,7 @@ private: QString m_lang; // the language which will be spoken QString m_versionstring; // version string to be used for logging int m_wavtrimThreshold; + int m_voiceformat; bool m_abort; QList<TalkGenerator::TalkEntry> m_talkList; diff --git a/tools/voicefont.c b/tools/voicefont.c index 3b67e97436..4d1363b1bc 100644 --- a/tools/voicefont.c +++ b/tools/voicefont.c @@ -70,7 +70,7 @@ int BitswapAudio (unsigned char* pDest, unsigned char* pSrc, size_t len) return 0; } -int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output) +int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output, unsigned int version) { int i,j; @@ -159,7 +159,7 @@ int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output) /* Create the file format: */ /* 1st 32 bit value in the file is the version number */ - value = UINT_TO_BE(400); /* 4.00 */ + value = UINT_TO_BE(version); fwrite(&value, sizeof(value), 1, output); /* 2nd 32 bit value in the file is the id number for the target @@ -243,7 +243,7 @@ int main (int argc, char** argv) return -2; } - voicefont(ids, atoi(argv[2]),argv[3],output); + voicefont(ids, atoi(argv[2]),argv[3],output, 400); return 0; } #endif diff --git a/tools/voicefont.h b/tools/voicefont.h index 6b603ef9be..dad7589c26 100644 --- a/tools/voicefont.h +++ b/tools/voicefont.h @@ -34,7 +34,7 @@ extern "C" { #endif -int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output); +int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output, unsigned int version); #ifdef __cplusplus } |