aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/notifier
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/notifier')
-rw-r--r--src/plugins/General/notifier/CMakeLists.txt5
-rw-r--r--src/plugins/General/notifier/notifier.cpp28
-rw-r--r--src/plugins/General/notifier/notifier.h8
-rw-r--r--src/plugins/General/notifier/notifier.pro2
-rw-r--r--src/plugins/General/notifier/notifierfactory.cpp2
-rw-r--r--src/plugins/General/notifier/notifierfactory.h3
-rw-r--r--src/plugins/General/notifier/popupwidget.cpp26
-rw-r--r--src/plugins/General/notifier/popupwidget.h4
8 files changed, 44 insertions, 34 deletions
diff --git a/src/plugins/General/notifier/CMakeLists.txt b/src/plugins/General/notifier/CMakeLists.txt
index 38f93319c..0b67fd457 100644
--- a/src/plugins/General/notifier/CMakeLists.txt
+++ b/src/plugins/General/notifier/CMakeLists.txt
@@ -22,9 +22,10 @@ SET(QT_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/../../../
)
-# libqmmpui
+# libqmmpui & libqmmp
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
SET(libnotifier_SRCS
settingsdialog.cpp
@@ -61,6 +62,6 @@ QT4_WRAP_UI(libnotifier_UIS_H ${libnotifier_UIS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
ADD_LIBRARY(notifier SHARED ${libnotifier_SRCS} ${libnotifier_MOC_SRCS} ${libnotifier_UIS_H} ${libnotifier_RCC_SRCS})
-add_dependencies(notifier qmmpui)
+add_dependencies(notifier qmmpui libqmmp)
target_link_libraries(notifier ${QT_LIBRARIES} -lqmmpui)
install(TARGETS notifier DESTINATION ${LIB_DIR}/qmmp/General)
diff --git a/src/plugins/General/notifier/notifier.cpp b/src/plugins/General/notifier/notifier.cpp
index 9f6006366..2d4f0e951 100644
--- a/src/plugins/General/notifier/notifier.cpp
+++ b/src/plugins/General/notifier/notifier.cpp
@@ -22,6 +22,7 @@
#include <QFile>
#include <QDir>
#include <QSettings>
+#include <qmmp/soundcore.h>
#include "popupwidget.h"
#include "notifier.h"
@@ -36,24 +37,27 @@ Notifier::Notifier(QObject *parent)
m_desktop = settings.value("desktop_notification", TRUE).toBool();
m_psi = settings.value("psi_notification", FALSE).toBool();
settings.endGroup();
+ m_core = SoundCore::instance();
+ connect (m_core, SIGNAL(metaDataChanged ()), SLOT(showMetaData()));
+ connect (m_core, SIGNAL(stateChanged (Qmmp::State)), SLOT(setState(Qmmp::State)));
}
Notifier::~Notifier()
{}
-void Notifier::setState(const uint &state)
+void Notifier::setState(Qmmp::State state)
{
- switch ((uint) state)
+ switch ((uint) state)
{
- case General::Playing:
+ case Qmmp::Playing:
{
break;
}
- case General::Paused:
+ case Qmmp::Paused:
{
break;
}
- case General::Stopped:
+ case Qmmp::Stopped:
{
QFile::remove(QDir::homePath()+"/.psi/tune");
break;
@@ -61,20 +65,20 @@ void Notifier::setState(const uint &state)
}
}
-void Notifier::setSongInfo(const SongInfo &song)
+void Notifier::showMetaData()
{
if (m_popupWidget)
delete m_popupWidget;
if(m_desktop)
- m_popupWidget = new PopupWidget(song);
+ m_popupWidget = new PopupWidget();
if(!m_psi)
return;
QFile file(QDir::homePath()+"/.psi/tune"); //psi file
file.open(QIODevice::WriteOnly | QIODevice::Text);
- file.write(song.title().toUtf8()+"\n");
- file.write(song.artist().toUtf8()+"\n");
- file.write(song.album().toUtf8()+"\n");
- file.write(QString("%1").arg(song.track()).toUtf8()+"\n");
- file.write(QString("%1").arg(song.length()).toUtf8()+"\n");
+ file.write(m_core->metaData(Qmmp::TITLE).toUtf8()+"\n");
+ file.write(m_core->metaData(Qmmp::ARTIST).toUtf8()+"\n");
+ file.write(m_core->metaData(Qmmp::ALBUM).toUtf8()+"\n");
+ file.write(m_core->metaData(Qmmp::TRACK).toUtf8()+"\n");
+ file.write(QString("%1").arg(m_core->length()).toUtf8()+"\n");
file.close();
}
diff --git a/src/plugins/General/notifier/notifier.h b/src/plugins/General/notifier/notifier.h
index cc93b2ea5..a6702a26a 100644
--- a/src/plugins/General/notifier/notifier.h
+++ b/src/plugins/General/notifier/notifier.h
@@ -23,8 +23,10 @@
#include <QPointer>
#include <qmmpui/general.h>
+#include <qmmp/qmmp.h>
class PopupWidget;
+class SoundCore;
/**
@author Ilya Kotov <forkotov02@hotmail.ru>
@@ -38,13 +40,15 @@ public:
~Notifier();
- void setState(const uint& state);
- void setSongInfo(const SongInfo &song);
+private slots:
+ void showMetaData();
+ void setState(Qmmp::State state);
private:
QPointer<PopupWidget> m_popupWidget;
bool m_desktop;
bool m_psi;
+ SoundCore *m_core;
};
diff --git a/src/plugins/General/notifier/notifier.pro b/src/plugins/General/notifier/notifier.pro
index 5654af7f6..825dc536a 100644
--- a/src/plugins/General/notifier/notifier.pro
+++ b/src/plugins/General/notifier/notifier.pro
@@ -11,7 +11,7 @@ QMAKE_CLEAN =$$PLUGINS_PREFIX/General/libnotifier.so
TEMPLATE = lib
QMAKE_LIBDIR += ../../../../lib
-LIBS += -lqmmpui
+LIBS += -lqmmpui -lqmmp
TRANSLATIONS = translations/notifier_plugin_cs.ts \
translations/notifier_plugin_de.ts \
diff --git a/src/plugins/General/notifier/notifierfactory.cpp b/src/plugins/General/notifier/notifierfactory.cpp
index 5ef3ac325..fdb9b4463 100644
--- a/src/plugins/General/notifier/notifierfactory.cpp
+++ b/src/plugins/General/notifier/notifierfactory.cpp
@@ -34,7 +34,7 @@ const GeneralProperties NotifierFactory::properties() const
return properties;
}
-General *NotifierFactory::create(Control*, QObject *parent)
+General *NotifierFactory::create(QObject *parent)
{
return new Notifier(parent);
}
diff --git a/src/plugins/General/notifier/notifierfactory.h b/src/plugins/General/notifier/notifierfactory.h
index 84039ede6..68c22bbde 100644
--- a/src/plugins/General/notifier/notifierfactory.h
+++ b/src/plugins/General/notifier/notifierfactory.h
@@ -28,7 +28,6 @@
#include <QDialog>
#include <qmmpui/general.h>
-#include <qmmpui/control.h>
#include <qmmpui/generalfactory.h>
class NotifierFactory : public QObject, public GeneralFactory
@@ -37,7 +36,7 @@ Q_OBJECT
Q_INTERFACES(GeneralFactory);
public:
const GeneralProperties properties() const;
- General *create(Control*, QObject *parent);
+ General *create(QObject *parent);
QDialog *createConfigDialog(QWidget *parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/General/notifier/popupwidget.cpp b/src/plugins/General/notifier/popupwidget.cpp
index c6ac1fc7a..8e640abdf 100644
--- a/src/plugins/General/notifier/popupwidget.cpp
+++ b/src/plugins/General/notifier/popupwidget.cpp
@@ -26,21 +26,25 @@
#include <QPalette>
#include <QSettings>
#include <QDir>
+#include <qmmp/soundcore.h>
#include "popupwidget.h"
-PopupWidget::PopupWidget(const SongInfo &song, QWidget *parent)
+PopupWidget::PopupWidget(QWidget *parent)
: QFrame(parent)
{
setWindowFlags(Qt::X11BypassWindowManagerHint |
- Qt::WindowStaysOnTopHint);
+ Qt::WindowStaysOnTopHint | Qt::Window);
setFrameStyle(QFrame::Box | QFrame::Plain);
- QString title = song.title();
- if(title.isEmpty())
- title = song.path().section('/',-1);
- title.append(" ");
- if (song.length() > 0)
- title.append(QString("(%1:%2)").arg(song.length()/60).arg(song.length()%60, 2, 10, QChar('0')));
+ SoundCore *core = SoundCore::instance();
+ QString title = core->metaData(Qmmp::TITLE);
+ if (title.isEmpty())
+ title = core->metaData(Qmmp::URL).section('/',-1);
+ if (core->length() > 0)
+ {
+ title.append(" ");
+ title.append(QString("(%1:%2)").arg(core->length()/60).arg(core->length()%60, 2, 10, QChar('0')));
+ }
QHBoxLayout *hlayout = new QHBoxLayout(this);
QLabel *pixlabel = new QLabel(this);
@@ -52,9 +56,9 @@ PopupWidget::PopupWidget(const SongInfo &song, QWidget *parent)
QLabel *label1 = new QLabel("<b>"+title+"</b>", this);
vlayout->addWidget(label1);
- QString info = song.artist();
- if (!info.isEmpty() && !song.album().isEmpty())
- info.append(" - " + song.album());
+ QString info = core->metaData(Qmmp::ARTIST);
+ if (!info.isEmpty() && !core->metaData(Qmmp::ALBUM).isEmpty())
+ info.append(" - " + core->metaData(Qmmp::ALBUM));
if (!info.isEmpty())
{
QLabel *label2 = new QLabel(info, this);
diff --git a/src/plugins/General/notifier/popupwidget.h b/src/plugins/General/notifier/popupwidget.h
index 62fd93cec..cfda202a5 100644
--- a/src/plugins/General/notifier/popupwidget.h
+++ b/src/plugins/General/notifier/popupwidget.h
@@ -23,8 +23,6 @@
#include <QWidget>
#include <QFrame>
-#include <qmmpui/songinfo.h>
-
/**
@author Ilya Kotov <forkotov02@hotmail.ru>
*/
@@ -32,7 +30,7 @@ class PopupWidget : public QFrame
{
Q_OBJECT
public:
- PopupWidget(const SongInfo &song, QWidget *parent = 0);
+ PopupWidget(QWidget *parent = 0);
~PopupWidget();