[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/kmid
From:       Pedro Lopez-Cabanillas <pedro.lopez.cabanillas () gmail ! com>
Date:       2010-10-31 10:43:27
Message-ID: 20101031104327.F34DEAC89B () svn ! kde ! org
[Download RAW message or body]

SVN commit 1191540 by pedrol:

ALSA backend. Fix for bug#255605: highlighted lyrics syllable randomly jumps when \
playing some songs having both Text and Lyric events. 

BUG: 255605



 M  +1 -1      CMakeLists.txt  
 M  +7 -0      ChangeLog  
 M  +2 -0      alsa/alsamidiobject.cpp  
 M  +15 -0     alsa/song.cpp  
 M  +1 -0      alsa/song.h  


--- trunk/extragear/multimedia/kmid/CMakeLists.txt #1191539:1191540
@@ -1,7 +1,7 @@
 project (kmid)
 
 set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
-set(VERSION 2.4.0)
+set(VERSION 2.4.1)
 
 # Building standalone ?
 if (NOT KDE4_FOUND)
--- trunk/extragear/multimedia/kmid/ChangeLog #1191539:1191540
@@ -1,3 +1,10 @@
+2010-10-30 Pedro Lopez-Cabanillas
+    * fix for bug#255605: highlighted lyrics syllable randomly jumps when
+      playing some songs 
+
+2010-09-11 Pedro Lopez-Cabanillas
+    * better soft synth settings error messages
+
 2010-08-15 Pedro Lopez-Cabanillas
     * release 2.4.0
  
--- trunk/extragear/multimedia/kmid/alsa/alsamidiobject.cpp #1191539:1191540
@@ -592,6 +592,7 @@
                 if ((data.length() > 0) && (data[0] != '@') && (data[0] != '%') ) {
                     VariableEvent *ev = new VariableEvent(data);
                     ev->setSequencerType(SND_SEQ_EVENT_USR_VAR0);
+                    ev->setTag(type);
                     appendEvent(ev);
                 }
                 break;
@@ -691,6 +692,7 @@
             try {
                 d->m_engine->readFromFile(tmpFile);
                 if (!d->m_song.isEmpty()) {
+                    d->m_song.discardRedundantEvents();
                     d->m_song.sort();
                     addSongPadding();
                     if (d->m_initialTempo == 0)
--- trunk/extragear/multimedia/kmid/alsa/song.cpp #1191539:1191540
@@ -184,4 +184,19 @@
         return false;
     }
 
+    void Song::discardRedundantEvents()
+    {
+        if (!m_text[Lyric].empty()) {
+            QMutableListIterator<SequencerEvent*> it(*this);
+            while (it.hasNext()) {
+                SequencerEvent *ev = it.next();
+                if ( ev->getSequencerType() == SND_SEQ_EVENT_USR_VAR0 &&
+                     ev->getTag() != Lyric ) {
+                    it.remove();
+                    delete ev;
 }
+            }
+        }
+    }
+
+}
--- trunk/extragear/multimedia/kmid/alsa/song.h #1191539:1191540
@@ -75,6 +75,7 @@
         QTextCodec* getTextCodec() const { return m_codec; }
         QStringList getText(TextType type);
         QStringList getLyrics(qint64 time);
+        void discardRedundantEvents();
 
     private:
         void appendStringToList(QStringList &list, QString &s, TextType type = \
Text);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic