[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdereview/phonon/gstreamer
From: Jens Bache-Wiig <jbache () trolltech ! com>
Date: 2008-01-30 15:51:33
Message-ID: 1201708293.861102.26957.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 768759 by jbache:
Fixes multiple emits of the same meta tags
M +9 -4 mediaobject.cpp
--- trunk/kdereview/phonon/gstreamer/mediaobject.cpp #768758:768759
@@ -498,8 +498,8 @@
Phonon::State oldState = m_state;
m_state = newstate; // m_state must be set before emitting, since
// Error state requires that state() will return the new value
+ m_pendingState = newstate;
emit stateChanged(newstate, oldState);
- m_pendingState = newstate;
switch (newstate) {
case Phonon::PausedState:
@@ -910,8 +910,11 @@
//qDebug("Unsupported tag type: %s", g_type_name(type));
break;
}
- if (!value.isEmpty())
- newData->insert(QString(tag).toUpper(), value);
+
+ QString key = QString(tag).toUpper();
+ QString currVal = newData->value(key);
+ if (!value.isEmpty() && !(newData->contains(key) && currVal == value))
+ newData->insert(key, value);
}
/**
@@ -955,10 +958,12 @@
GstTagList* tag_list = 0;
gst_message_parse_tag(gstMessage, &tag_list);
if (tag_list) {
+ TagMap oldMap = m_metaData; // Keep a copy of the old one for reference
// Append any new meta tags to the existing tag list
gst_tag_list_foreach (tag_list, &foreach_tag_function, &m_metaData);
m_backend->logMessage("Meta tags found", Backend::Info, this);
- emit metaDataChanged(m_metaData);
+ if (oldMap != m_metaData)
+ emit metaDataChanged(m_metaData);
gst_tag_list_free(tag_list);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic