File indexing completed on 2024-04-28 16:00:59

0001 /*
0002    SPDX-FileCopyrightText: 2022-2023 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "texttospeechutil.h"
0008 
0009 #include <KConfig>
0010 #include <KConfigGroup>
0011 #include <QIODevice>
0012 
0013 QString TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigFileName()
0014 {
0015     return QStringLiteral("texttospeechrc");
0016 }
0017 
0018 QString TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigGroupName()
0019 {
0020     return QStringLiteral("Settings");
0021 }
0022 
0023 TextEditTextToSpeech::TextToSpeechUtil::TextToSpeechSettings TextEditTextToSpeech::TextToSpeechUtil::loadSettings()
0024 {
0025     TextEditTextToSpeech::TextToSpeechUtil::TextToSpeechSettings settings;
0026     KConfig config(TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigFileName());
0027     const KConfigGroup grp = config.group(TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigGroupName());
0028     settings.engineName = grp.readEntry("engine");
0029     settings.rate = grp.readEntry("rate", 50);
0030     settings.volumeValue = grp.readEntry("volume", 0);
0031     settings.localeName = grp.readEntry("localeName");
0032     settings.pitch = grp.readEntry("pitch", 0);
0033 #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
0034     QByteArray ba = grp.readEntry("voice", QByteArray());
0035     QDataStream s(&ba, QIODevice::ReadOnly);
0036     s.setVersion(QDataStream::Qt_5_15);
0037     s >> settings.voice;
0038 #endif
0039     return settings;
0040 }
0041 
0042 void TextEditTextToSpeech::TextToSpeechUtil::writeConfig(const TextEditTextToSpeech::TextToSpeechUtil::TextToSpeechSettings &settings)
0043 {
0044     KConfig config(TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigFileName());
0045     KConfigGroup grp = config.group(TextEditTextToSpeech::TextToSpeechUtil::textToSpeechConfigGroupName());
0046     grp.writeEntry("volume", settings.volumeValue);
0047     grp.writeEntry("rate", settings.rate);
0048     grp.writeEntry("pitch", settings.pitch);
0049     grp.writeEntry("localeName", settings.localeName);
0050     // qDebug() << " engineName " << engineName;
0051     grp.writeEntry("engine", settings.engineName);
0052 #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
0053     QByteArray ba;
0054     QDataStream s(&ba, QIODevice::WriteOnly);
0055     s.setVersion(QDataStream::Qt_5_15);
0056     s << settings.voice;
0057     grp.writeEntry("voice", ba);
0058 #endif
0059 }
0060 
0061 QDebug operator<<(QDebug d, const TextEditTextToSpeech::TextToSpeechUtil::TextToSpeechSettings &t)
0062 {
0063 #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
0064     d << "voice " << t.voice;
0065 #endif
0066     d << "engineName " << t.engineName;
0067     d << "localeName " << t.localeName;
0068     d << "rate " << t.rate;
0069     d << "pitch " << t.pitch;
0070     d << "volumeValue " << t.volumeValue;
0071     return d;
0072 }