aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wildmidi/wildmidihelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/wildmidi/wildmidihelper.cpp')
-rw-r--r--src/plugins/Input/wildmidi/wildmidihelper.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/plugins/Input/wildmidi/wildmidihelper.cpp b/src/plugins/Input/wildmidi/wildmidihelper.cpp
index 9d25aad1a..0cb1f946d 100644
--- a/src/plugins/Input/wildmidi/wildmidihelper.cpp
+++ b/src/plugins/Input/wildmidi/wildmidihelper.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -20,6 +20,7 @@
#include <QApplication>
#include <QSettings>
+#include <QFile>
extern "C"{
#include <wildmidi_lib.h>
}
@@ -54,7 +55,14 @@ bool WildMidiHelper::initialize()
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();
+ QString conf_path = configFiles().isEmpty() ? QString() : configFiles().first();
+ conf_path = settings.value("conf_path", conf_path).toString();
+ if(conf_path.isEmpty() || !QFile::exists(conf_path))
+ {
+ qWarning("WildMidiHelper: invalid config path: %s", qPrintable(conf_path));
+ m_mutex.unlock();
+ return false;
+ }
unsigned short int sample_rate = settings.value("sample_rate", 44100).toInt();
if(settings.value("enhanced_resampling", false).toBool())
mixer_options |= WM_MO_ENHANCED_RESAMPLING;
@@ -103,6 +111,19 @@ void WildMidiHelper::removePtr(void *t)
m_mutex.unlock();
}
+QStringList WildMidiHelper::configFiles() const
+{
+ QStringList files = QStringList() << "/etc/timidity.cfg"
+ << "/etc/timidity.cfg"
+ << "/etc/wildmidi/wildmidi.cfg";
+ foreach(QString path, files)
+ {
+ if(!QFile::exists(path))
+ files.removeAll(path);
+ }
+ return files;
+}
+
quint32 WildMidiHelper::sampleRate()
{
return m_sample_rate;