OTHER: Let promoe enable xmms2d's equalizer plugin
This commit is contained in:
parent
c6b75de31d
commit
8b1a61082c
5 changed files with 67 additions and 32 deletions
|
@ -118,10 +118,13 @@ XConfig::on_disconnect (XClient *client)
|
||||||
bool
|
bool
|
||||||
XConfig::handle_config_value (const Xmms::Dict &value)
|
XConfig::handle_config_value (const Xmms::Dict &value)
|
||||||
{
|
{
|
||||||
|
// FIXME: I should rework configuration handling, and perhaps I should
|
||||||
|
// abolish the call to handle_config_value_changed here.
|
||||||
bool ok = handle_config_value_changed (value);
|
bool ok = handle_config_value_changed (value);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
m_ready = true;
|
m_ready = true;
|
||||||
}
|
}
|
||||||
|
emit configLoaded ();
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,13 @@ class XConfig : public QObject
|
||||||
bool value_set (QString key, QString value);
|
bool value_set (QString key, QString value);
|
||||||
bool value_register (QString key, QString defval);
|
bool value_register (QString key, QString defval);
|
||||||
|
|
||||||
|
bool has_key (const QString &key) const
|
||||||
|
{return m_config_cache.contains (key);};
|
||||||
|
|
||||||
bool isReady (void) {return m_ready;}
|
bool isReady (void) {return m_ready;}
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
void configLoaded ();
|
||||||
void configChanged (QString key, QString value);
|
void configChanged (QString key, QString value);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "Skin.h"
|
#include "Skin.h"
|
||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
EqualizerSlider::EqualizerSlider (QWidget *parent, int id) :
|
EqualizerSlider::EqualizerSlider (QWidget *parent, int id) :
|
||||||
PixmapSlider (parent)
|
PixmapSlider (parent)
|
||||||
|
@ -110,28 +111,13 @@ EqualizerWidget::EqualizerWidget (QWidget *parent) : QWidget (parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
connect (m_xconfig, SIGNAL (configChanged (QString, QString)),
|
connect (m_xconfig, SIGNAL (configChanged (QString, QString)),
|
||||||
this, SLOT (serverConfigChanged (QString, QString)));
|
this, SLOT (serverConfigValueChanged (QString, QString)));
|
||||||
|
|
||||||
// if the config from the server were already loaded, we will only
|
// we request the config values manually if we already are connected
|
||||||
// receive configChanged signals for values that really change
|
connect (m_xconfig, SIGNAL (configLoaded ()),
|
||||||
// so we must request the existing values manually
|
this, SLOT (loadServerConfig ()));
|
||||||
if (m_xconfig->isReady()) {
|
if (m_xconfig->isReady()) {
|
||||||
QString key;
|
loadServerConfig ();
|
||||||
QString value;
|
|
||||||
// set enabled checkbox
|
|
||||||
key = QString ("equalizer.enabled");
|
|
||||||
value = m_xconfig->value_get (key);
|
|
||||||
serverConfigChanged (key, value);
|
|
||||||
// set preamp
|
|
||||||
key = QString ("equalizer.preamp");
|
|
||||||
value = m_xconfig->value_get (key);
|
|
||||||
serverConfigChanged (key, value);
|
|
||||||
// Set band-sliders
|
|
||||||
for (int i=0; i < 10; i++) {
|
|
||||||
key = QString ("equalizer.legacy%1").arg(i);
|
|
||||||
value = m_xconfig->value_get (key);
|
|
||||||
serverConfigChanged (key, value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,11 +183,51 @@ EqualizerWidget::paintEvent (QPaintEvent *event)
|
||||||
* update the serverconfiguraten if we change something
|
* update the serverconfiguraten if we change something
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
EqualizerWidget::serverConfigChanged (QString key, QString value)
|
EqualizerWidget::loadServerConfig ()
|
||||||
{
|
{
|
||||||
// qDebug (key.toAscii ());
|
// FIXME: Disable Widget if doesn't get enabled
|
||||||
// qDebug (value.toAscii ());
|
// TODO: Add 'don't bother me again' checkbox
|
||||||
|
if (!(m_xconfig->values_get (QRegExp ("effect\\.order\\.\\d+")).
|
||||||
|
contains ("equalizer"))) {
|
||||||
|
int button = QMessageBox::information (this, "Equalizer not enabled",
|
||||||
|
"You need to enable the equalizer plugin on\n" \
|
||||||
|
"the server or the equalizer will not work\n\n" \
|
||||||
|
"Should promoe enable the equalizer plugin?",
|
||||||
|
"Enable", "Ignore");
|
||||||
|
if (button == 0) {
|
||||||
|
// Add 'equalizer' to first empty 'effect.order.<num>' entry,
|
||||||
|
// xmms2d takes care that there alway is at least one empty entry
|
||||||
|
int i = 0;
|
||||||
|
QString key = "effect.order.%1";
|
||||||
|
while (m_xconfig->has_key (key.arg (i))) {
|
||||||
|
if (m_xconfig->value_get (key.arg (i)).isEmpty ()) {
|
||||||
|
m_xconfig->value_set (key.arg (i), "equalizer");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QString key;
|
||||||
|
QString value;
|
||||||
|
// set enabled checkbox
|
||||||
|
key = QString ("equalizer.enabled");
|
||||||
|
value = m_xconfig->value_get (key);
|
||||||
|
serverConfigValueChanged (key, value);
|
||||||
|
// set preamp
|
||||||
|
key = QString ("equalizer.preamp");
|
||||||
|
value = m_xconfig->value_get (key);
|
||||||
|
serverConfigValueChanged (key, value);
|
||||||
|
// Set band-sliders
|
||||||
|
for (int i=0; i < 10; i++) {
|
||||||
|
key = QString ("equalizer.legacy%1").arg(i);
|
||||||
|
value = m_xconfig->value_get (key);
|
||||||
|
serverConfigValueChanged (key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EqualizerWidget::serverConfigValueChanged (QString key, QString value)
|
||||||
|
{
|
||||||
// FIXME: also test on use_legacy
|
// FIXME: also test on use_legacy
|
||||||
if (key.startsWith ("equalizer.enabled")) {
|
if (key.startsWith ("equalizer.enabled")) {
|
||||||
if (value != "0") {
|
if (value != "0") {
|
||||||
|
|
|
@ -59,12 +59,14 @@ class EqualizerWidget : public QWidget
|
||||||
void setPixmaps(Skin *skin);
|
void setPixmaps(Skin *skin);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void serverConfigChanged (QString key, QString value);
|
void loadServerConfig ();
|
||||||
|
void serverConfigValueChanged (QString key, QString value);
|
||||||
void setEqualizerEnabled (bool enabled);
|
void setEqualizerEnabled (bool enabled);
|
||||||
void updateServerPreamp (int value);
|
void updateServerPreamp (int value);
|
||||||
void updateServerBands (int value, int id);
|
void updateServerBands (int value, int id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
XConfig *m_xconfig;
|
XConfig *m_xconfig;
|
||||||
QPixmap m_pixmap;
|
QPixmap m_pixmap;
|
||||||
QPixmap m_graph;
|
QPixmap m_graph;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue