diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-08-04 19:15:41 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-08-04 19:15:41 +0000 |
| commit | c878d3ca598a611cc066b027a4d4a317eed7c081 (patch) | |
| tree | c9a4e468ec0bf27abf1674fbbbe4b6bfc836d399 /src/plugins/Input/wildmidi | |
| parent | b9cc3f286ceae3972afd918b04474b162032c100 (diff) | |
| download | qmmp-c878d3ca598a611cc066b027a4d4a317eed7c081.tar.gz qmmp-c878d3ca598a611cc066b027a4d4a317eed7c081.tar.bz2 qmmp-c878d3ca598a611cc066b027a4d4a317eed7c081.zip | |
midi plugin: added some improvements (still disabled)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1817 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/wildmidi')
20 files changed, 1088 insertions, 46 deletions
diff --git a/src/plugins/Input/wildmidi/decoder_wildmidi.cpp b/src/plugins/Input/wildmidi/decoder_wildmidi.cpp index f29d60fef..c11fc0fbc 100644 --- a/src/plugins/Input/wildmidi/decoder_wildmidi.cpp +++ b/src/plugins/Input/wildmidi/decoder_wildmidi.cpp @@ -26,12 +26,16 @@ DecoderWildMidi::DecoderWildMidi(const QString &path) : Decoder() { m_path = path; midi_ptr = 0; + m_sample_rate = 0; } DecoderWildMidi::~DecoderWildMidi() { if(midi_ptr) + { + WildMidiHelper::instance()->removePtr(midi_ptr); WildMidi_Close(midi_ptr); + } } bool DecoderWildMidi::initialize() @@ -43,20 +47,21 @@ bool DecoderWildMidi::initialize() qWarning("DecoderWildMidi: initialization failed"); return false; } - - + WildMidiHelper::instance()->readSettings(); midi_ptr = WildMidi_Open (m_path.toLocal8Bit()); + if(!midi_ptr) { qWarning("DecoderWildMidi: unable to open file"); return false; } - _WM_Info *wm_info = WildMidi_GetInfo(midi_ptr); + WildMidiHelper::instance()->addPtr(midi_ptr); - m_totalTime = (qint64)wm_info->approx_total_samples / 48; - - configure(48000, 2, Qmmp::PCM_S16LE); + m_sample_rate = WildMidiHelper::instance()->sampleRate(); + _WM_Info *wm_info = WildMidi_GetInfo(midi_ptr); + m_totalTime = (qint64)wm_info->approx_total_samples * 1000 / WildMidiHelper::instance()->sampleRate(); + configure(m_sample_rate, 2, Qmmp::PCM_S16LE); qDebug("DecoderWildMidi: initialize succes"); return true; } @@ -68,7 +73,7 @@ qint64 DecoderWildMidi::totalTime() void DecoderWildMidi::seek(qint64 pos) { - ulong sample = ulong(pos*48); + ulong sample = (ulong)m_sample_rate * pos / 1000; WildMidi_FastSeek(midi_ptr, &sample); } diff --git a/src/plugins/Input/wildmidi/decoder_wildmidi.h b/src/plugins/Input/wildmidi/decoder_wildmidi.h index 222c1ef3c..4deaff768 100644 --- a/src/plugins/Input/wildmidi/decoder_wildmidi.h +++ b/src/plugins/Input/wildmidi/decoder_wildmidi.h @@ -42,6 +42,7 @@ public: private: void *midi_ptr; qint64 m_totalTime; + quint32 m_sample_rate; QString m_path; }; diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp index 13b3b2e06..d33f0cc7d 100644 --- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp +++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp @@ -22,20 +22,19 @@ #include "wildmidihelper.h" #include "decoder_wildmidi.h" +#include "settingsdialog.h" #include "decoderwildmidifactory.h" - // DecoderWildMidiFactory bool DecoderWildMidiFactory::supports(const QString &source) const { - return (source.right(4).toLower() == ".mid"); } bool DecoderWildMidiFactory::canDecode(QIODevice *) const { - return FALSE; + return false; } const DecoderProperties DecoderWildMidiFactory::properties() const @@ -45,9 +44,10 @@ const DecoderProperties DecoderWildMidiFactory::properties() const properties.filter = "*.mid"; properties.description = tr("Midi Files"); //properties.contentType = ; - properties.hasAbout = FALSE; - properties.hasSettings = FALSE; - properties.noInput = TRUE; + properties.shortName = "wildmidi"; + properties.hasAbout = true; + properties.hasSettings = true; + properties.noInput = true; properties.protocols = "file"; return properties; } @@ -60,17 +60,21 @@ Decoder *DecoderWildMidiFactory::create(const QString &path, QIODevice *input) QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName, bool useMetaData) { + Q_UNUSED(useMetaData); QList <FileInfo*> list; FileInfo *info = new FileInfo(fileName); - if(WildMidiHelper::instance()->initialize()) + if(WildMidiHelper::instance()->initialize() && WildMidiHelper::instance()->sampleRate()) { void *midi_ptr = WildMidi_Open (fileName.toLocal8Bit()); if(midi_ptr) { + WildMidiHelper::instance()->addPtr(midi_ptr); _WM_Info *wm_info = WildMidi_GetInfo(midi_ptr); - info->setLength((qint64)wm_info->approx_total_samples / 48000); + info->setLength((qint64)wm_info->approx_total_samples + / WildMidiHelper::instance()->sampleRate()); WildMidi_Close(midi_ptr); + WildMidiHelper::instance()->removePtr(midi_ptr); } } list << info; @@ -79,16 +83,24 @@ QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName MetaDataModel* DecoderWildMidiFactory::createMetaDataModel(const QString &path, QObject *parent) { - /*DetailsDialog *d = new DetailsDialog(parent, path); - d -> show();*/ + Q_UNUSED(path); + Q_UNUSED(parent); return 0; } -void DecoderWildMidiFactory::showSettings(QWidget *) -{} +void DecoderWildMidiFactory::showSettings(QWidget *parent) +{ + SettingsDialog *d = new SettingsDialog(parent); + d->show(); +} void DecoderWildMidiFactory::showAbout(QWidget *parent) -{} +{ + QMessageBox::about (parent, tr("About WildMidi Audio Plugin"), + tr("Qmmp WildMidi Audio Plugin")+"\n"+ + tr("This plugin uses WildMidi library to play midi files")+"\n"+ + tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>")); +} QTranslator *DecoderWildMidiFactory::createTranslator(QObject *parent) { diff --git a/src/plugins/Input/wildmidi/settingsdialog.cpp b/src/plugins/Input/wildmidi/settingsdialog.cpp index 0b88748f3..d07ab5b7a 100644 --- a/src/plugins/Input/wildmidi/settingsdialog.cpp +++ b/src/plugins/Input/wildmidi/settingsdialog.cpp @@ -21,6 +21,7 @@ #include <QSettings> #include <QStringList> #include <qmmp/qmmp.h> +#include "wildmidihelper.h" #include "settingsdialog.h" SettingsDialog::SettingsDialog(QWidget *parent) @@ -29,6 +30,15 @@ SettingsDialog::SettingsDialog(QWidget *parent) ui.setupUi(this); setAttribute(Qt::WA_DeleteOnClose); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Midi"); + ui.confPathComboBox->setEditText(settings.value("conf_path", "/etc/timidity/timidity.cfg").toString()); + ui.sampleRateComboBox->addItem(tr("44100 Hz"), 44100); + ui.sampleRateComboBox->addItem(tr("48000 Hz"), 48000); + int i = ui.sampleRateComboBox->findData(settings.value("sample_rate", 44100).toInt()); + ui.sampleRateComboBox->setCurrentIndex(i); + ui.enhancedResemplingCheckBox->setChecked(settings.value("enhanced_resampling", false).toBool()); + ui.reverbCheckBox->setChecked(settings.value("reverberation", false).toBool()); + settings.endGroup(); } SettingsDialog::~SettingsDialog() @@ -38,6 +48,13 @@ SettingsDialog::~SettingsDialog() void SettingsDialog::accept() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - //settings.setValue("FFMPEG/filters", filters); + settings.beginGroup("Midi"); + settings.setValue("conf_path", ui.confPathComboBox->currentText()); + settings.setValue("sample_rate", + ui.sampleRateComboBox->itemData(ui.sampleRateComboBox->currentIndex())); + settings.setValue("enhanced_resampling", ui.enhancedResemplingCheckBox->isChecked()); + settings.setValue("reverberation", ui.reverbCheckBox->isChecked()); + settings.endGroup(); + WildMidiHelper::instance()->readSettings(); QDialog::accept(); } diff --git a/src/plugins/Input/wildmidi/settingsdialog.ui b/src/plugins/Input/wildmidi/settingsdialog.ui index 720cbac82..811c26f0f 100644 --- a/src/plugins/Input/wildmidi/settingsdialog.ui +++ b/src/plugins/Input/wildmidi/settingsdialog.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>292</width> + <width>329</width> <height>133</height> </rect> </property> @@ -31,7 +31,7 @@ </widget> </item> <item row="0" column="1" colspan="2"> - <widget class="QComboBox" name="comboBox"> + <widget class="QComboBox" name="confPathComboBox"> <property name="editable"> <bool>true</bool> </property> @@ -55,14 +55,14 @@ </widget> </item> <item row="2" column="0" colspan="3"> - <widget class="QCheckBox" name="checkBox"> + <widget class="QCheckBox" name="enhancedResemplingCheckBox"> <property name="text"> <string>Enhanced resempling</string> </property> </widget> </item> <item row="3" column="0" colspan="3"> - <widget class="QCheckBox" name="checkBox_2"> + <widget class="QCheckBox" name="reverbCheckBox"> <property name="text"> <string>Reverberation</string> </property> @@ -82,18 +82,7 @@ </widget> </item> <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="comboBox_2"> - <item> - <property name="text"> - <string>44100</string> - </property> - </item> - <item> - <property name="text"> - <string>48000</string> - </property> - </item> - </widget> + <widget class="QComboBox" name="sampleRateComboBox"/> </item> </layout> </widget> diff --git a/src/plugins/Input/wildmidi/translations/translations.qrc b/src/plugins/Input/wildmidi/translations/translations.qrc new file mode 100644 index 000000000..8f57e673c --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/translations.qrc @@ -0,0 +1,16 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource> + <file>wildmidi_plugin_it.qm</file> + <file>wildmidi_plugin_ru.qm</file> + <file>wildmidi_plugin_uk_UA.qm</file> + <file>wildmidi_plugin_zh_CN.qm</file> + <file>wildmidi_plugin_zh_TW.qm</file> + <file>wildmidi_plugin_cs.qm</file> + <file>wildmidi_plugin_de.qm</file> + <file>wildmidi_plugin_pl.qm</file> + <file>wildmidi_plugin_tr.qm</file> + <file>wildmidi_plugin_lt.qm</file> + <file>wildmidi_plugin_nl.qm</file> + </qresource> +</RCC> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_cs.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_cs.ts new file mode 100644 index 000000000..878fb1df6 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_cs.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="cs"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_de.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_de.ts new file mode 100644 index 000000000..b670ea9f4 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_de.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de_DE"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_it.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_it.ts new file mode 100644 index 000000000..fd843215e --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_it.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="it"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autore: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_lt.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_lt.ts new file mode 100644 index 000000000..b951902e2 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_lt.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="lt"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_nl.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_nl.ts new file mode 100644 index 000000000..6d2a8d54f --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_nl.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="nl"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Auteur: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_pl.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_pl.ts new file mode 100644 index 000000000..498f92203 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_pl.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="pl"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_ru.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_ru.ts new file mode 100644 index 000000000..185d4ce3f --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_ru.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Разработчик: Илья Котов <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_tr.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_tr.ts new file mode 100644 index 000000000..ace54f101 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_tr.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="tr_TR"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Yazan: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_uk_UA.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_uk_UA.ts new file mode 100644 index 000000000..4e9e07e76 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_uk_UA.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="uk"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Розробник: Ілля Котов <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_CN.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_CN.ts new file mode 100644 index 000000000..821be0430 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_CN.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_CN"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_TW.ts b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_TW.ts new file mode 100644 index 000000000..cdd591273 --- /dev/null +++ b/src/plugins/Input/wildmidi/translations/wildmidi_plugin_zh_TW.ts @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_TW"> +<context> + <name>DecoderWildMidiFactory</name> + <message> + <location filename="../decoderwildmidifactory.cpp" line="43"/> + <source>WildMidi Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="45"/> + <source>Midi Files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="99"/> + <source>About WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="100"/> + <source>Qmmp WildMidi Audio Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="101"/> + <source>This plugin uses WildMidi library to play midi files</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../decoderwildmidifactory.cpp" line="102"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>FFmpeg Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Instrument configuration: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="40"/> + <source>/etc/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="45"/> + <source>/etc/timidity/timidity.cfg</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="53"/> + <source>Sample rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="60"/> + <source>Enhanced resempling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="67"/> + <source>Reverberation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="35"/> + <source>44100 Hz</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.cpp" line="36"/> + <source>48000 Hz</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Input/wildmidi/wildmidi.pro b/src/plugins/Input/wildmidi/wildmidi.pro index 0b76a828d..2d8a752ca 100644 --- a/src/plugins/Input/wildmidi/wildmidi.pro +++ b/src/plugins/Input/wildmidi/wildmidi.pro @@ -20,14 +20,19 @@ LIBS += -lqmmp \ -L/usr/lib \ -I/usr/include \ -lWildMidi -TRANSLATIONS = translations/wildmidi_plugin_cs.ts \ - translations/wildmidi_plugin_de.ts \ - translations/wildmidi_plugin_zh_CN.ts \ - translations/wildmidi_plugin_zh_TW.ts \ - translations/wildmidi_plugin_ru.ts \ - translations/wildmidi_plugin_uk_UA.ts +TRANSLATIONS = translations/wildmidi_plugin_it.ts \ + translations/wildmidi_plugin_ru.ts \ + translations/wildmidi_plugin_cs.ts \ + translations/wildmidi_plugin_de.ts \ + translations/wildmidi_plugin_zh_CN.ts \ + translations/wildmidi_plugin_zh_TW.ts \ + translations/wildmidi_plugin_uk_UA.ts \ + translations/wildmidi_plugin_pl.ts \ + translations/wildmidi_plugin_tr.ts \ + translations/wildmidi_plugin_lt.ts \ + translations/wildmidi_plugin_nl.ts -# RESOURCES = translations/translations.qrc +RESOURCES = translations/translations.qrc isEmpty (LIB_DIR):LIB_DIR = /lib target.path = $$LIB_DIR/qmmp/Input INSTALLS += target diff --git a/src/plugins/Input/wildmidi/wildmidihelper.cpp b/src/plugins/Input/wildmidi/wildmidihelper.cpp index f5cb11fc1..c52c36b8d 100644 --- a/src/plugins/Input/wildmidi/wildmidihelper.cpp +++ b/src/plugins/Input/wildmidi/wildmidihelper.cpp @@ -19,9 +19,11 @@ ***************************************************************************/ #include <QApplication> +#include <QSettings> extern "C"{ #include <wildmidi_lib.h> } +#include <qmmp/qmmp.h> #include "wildmidihelper.h" WildMidiHelper *WildMidiHelper::m_instance = 0; @@ -30,6 +32,7 @@ WildMidiHelper::WildMidiHelper(QObject *parent) : QObject(parent) { m_inited = false; + m_sample_rate = 0; } WildMidiHelper::~WildMidiHelper() @@ -41,17 +44,69 @@ WildMidiHelper::~WildMidiHelper() bool WildMidiHelper::initialize() { + m_mutex.lock(); if(m_inited) + { + m_mutex.unlock(); return true; - if (WildMidi_Init ("/etc/timidity/timidity.cfg", 48000, 0) < 0) + } + + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Midi"); + unsigned short int mixer_options = 0; + QString conf_path = settings.value("conf_path", "/etc/timidity/timidity.cfg").toString(); + unsigned short int sample_rate = settings.value("sample_rate", 44100).toInt(); + if(settings.value("enhanced_resampling", false).toBool()) + mixer_options |= WM_MO_ENHANCED_RESAMPLING; + if(settings.value("reverberation", false).toBool()) + mixer_options |= WM_MO_REVERB; + settings.endGroup(); + + m_sample_rate = sample_rate; + if (WildMidi_Init (qPrintable(conf_path), sample_rate, mixer_options) < 0) { qWarning("WildMidiHelper: unable to initialize WildMidi library"); + m_mutex.unlock(); return false; } m_inited = true; + m_mutex.unlock(); return true; } +void WildMidiHelper::readSettings() +{ + m_mutex.lock(); + if(!m_ptrs.isEmpty()) + { + m_mutex.unlock(); + return; + } + if(m_inited) + WildMidi_Shutdown(); + m_inited = false; + m_mutex.unlock(); + initialize(); +} + +void WildMidiHelper::addPtr(void *t) +{ + m_mutex.lock(); + m_ptrs.append(t); + m_mutex.unlock(); +} + +void WildMidiHelper::removePtr(void *t) +{ + m_mutex.lock(); + m_ptrs.removeAll(t); + m_mutex.unlock(); +} + +quint32 WildMidiHelper::sampleRate() +{ + return m_sample_rate; +} WildMidiHelper *WildMidiHelper::instance() { diff --git a/src/plugins/Input/wildmidi/wildmidihelper.h b/src/plugins/Input/wildmidi/wildmidihelper.h index 3e5d5f303..d9a6a7d99 100644 --- a/src/plugins/Input/wildmidi/wildmidihelper.h +++ b/src/plugins/Input/wildmidi/wildmidihelper.h @@ -22,6 +22,7 @@ #define WILDMIDIHELPER_H #include <QObject> +#include <QMutex> class WildMidiHelper : public QObject { @@ -30,12 +31,18 @@ public: explicit WildMidiHelper(QObject *parent = 0); ~WildMidiHelper(); bool initialize(); + void readSettings(); + quint32 sampleRate(); + void addPtr(void *); + void removePtr(void *); static WildMidiHelper *instance(); private: static WildMidiHelper *m_instance; bool m_inited; - + QMutex m_mutex; + QList <void *> m_ptrs; + quint32 m_sample_rate; }; #endif // WILDMIDIHELPER_H |
