Created
May 8, 2011 09:38
-
-
Save iRi-E/961258 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkModel.h b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkModel.h | |
index ac7b76f..3c39998 100644 | |
--- a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkModel.h | |
+++ b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkModel.h | |
@@ -37,6 +37,7 @@ | |
#ifndef QMAOPENJTALKMODEL_H | |
#define QMAOPENJTALKMODEL_H | |
+#include <QtCore/QMutex> | |
#include <QtCore/QHash> | |
#include <QtCore/QIODevice> | |
#include <QtCore/QList> | |
@@ -81,6 +82,7 @@ public: | |
const QString getPhonemeSequence(); | |
QByteArray finalize(bool withHeader); | |
+ QMutex m_mutex; | |
Mecab m_mecab; | |
NJD m_njd; | |
JPCommon m_jpcommon; | |
diff --git a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.cc b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.cc | |
index 51b389b..8568eed 100644 | |
--- a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.cc | |
+++ b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.cc | |
@@ -105,6 +105,7 @@ void QMAOpenJTalkPlugin::receiveEvent(const QString &type, const QList<QVariant> | |
void QMAOpenJTalkPlugin::run(const QString &name, const QString &style, const QString &text) | |
{ | |
QMAOpenJTalkModel *model; | |
+ m_mutex.lock(); | |
if (m_models.contains(name)) { | |
model = m_models[name]; | |
} | |
@@ -114,10 +115,14 @@ void QMAOpenJTalkPlugin::run(const QString &name, const QString &style, const QS | |
model->loadDictionary(m_dir); | |
m_models[name] = model; | |
} | |
+ m_mutex.unlock(); | |
+ | |
+ model->m_mutex.lock(); | |
model->setStyle(style); | |
model->setText(text); | |
QString sequence = model->getPhonemeSequence(); | |
QByteArray bytes = model->finalize(false); | |
+ model->m_mutex.unlock(); | |
QList<QVariant> arguments; | |
arguments << name; | |
diff --git a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.h b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.h | |
index 9ecd945..4042bd3 100644 | |
--- a/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.h | |
+++ b/QMA/plugins/QMAOpenJTalkPlugin/QMAOpenJTalkPlugin.h | |
@@ -39,6 +39,7 @@ | |
#ifndef QMAOPENJTALKPLUGIN_H | |
#define QMAOPENJTALKPLUGIN_H | |
+#include <QtCore/QMutex> | |
#include <QtCore/QByteArray> | |
#include <QtCore/QFutureWatcher> | |
#include <QtCore/QIODevice> | |
@@ -83,6 +84,7 @@ private: | |
QString m_base; | |
QString m_dir; | |
QString m_config; | |
+ QMutex m_mutex; | |
Q_DISABLE_COPY(QMAOpenJTalkPlugin) | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment