diff options
Diffstat (limited to 'src/plugins/General/notifier')
| -rw-r--r-- | src/plugins/General/notifier/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifier.cpp | 28 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifier.h | 8 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifier.pro | 2 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifierfactory.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifierfactory.h | 3 | ||||
| -rw-r--r-- | src/plugins/General/notifier/popupwidget.cpp | 26 | ||||
| -rw-r--r-- | src/plugins/General/notifier/popupwidget.h | 4 |
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(); |
