aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/songchange/songchange.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/songchange/songchange.cpp')
-rw-r--r--src/plugins/General/songchange/songchange.cpp45
1 files changed, 44 insertions, 1 deletions
diff --git a/src/plugins/General/songchange/songchange.cpp b/src/plugins/General/songchange/songchange.cpp
index a367a412d..74aa6f4f8 100644
--- a/src/plugins/General/songchange/songchange.cpp
+++ b/src/plugins/General/songchange/songchange.cpp
@@ -36,7 +36,50 @@
#include "songchange.h"
SongChange::SongChange(QObject *parent) : QObject(parent)
-{}
+{
+ m_core = SoundCore::instance();
+ connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(onStateChanged(Qmmp::State)));
+ connect(m_core, SIGNAL(metaDataChanged()), SLOT(onMetaDataChanged()));
+ connect(m_core, SIGNAL(finished()), SLOT(onFinised()));
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ m_newTrackCommand = settings.value("SongChange/new_track_command").toString();
+ m_endOfTrackCommand = settings.value("SongChange/end_of_track_command").toString();
+ m_endOfPlCommand = settings.value("SongChange/end_of_pl_command").toString();
+ m_titleChangeCommand = settings.value("SongChange/title_change_command").toString();
+}
SongChange::~SongChange()
{}
+
+void SongChange::onStateChanged(Qmmp::State state)
+{
+ switch (state)
+ {
+ case Qmmp::Playing:
+ break;
+ default:
+ m_prevMetaData.clear();
+ }
+}
+
+void SongChange::onMetaDataChanged()
+{
+ QMap <Qmmp::MetaData, QString> metaData = m_core->metaData();
+ if(m_prevMetaData != metaData)
+ {
+ if(m_prevMetaData[Qmmp::URL] == metaData[Qmmp::URL])
+ {
+ qDebug("m_titleChangeCommand");
+ }
+ else
+ {
+ qDebug("new_track_command");
+ }
+ }
+ m_prevMetaData = metaData;
+}
+
+void SongChange::onFinised()
+{
+ qDebug("on_track_finished");
+}