From kde-commits Sun Oct 31 10:43:27 2010 From: Pedro Lopez-Cabanillas Date: Sun, 31 Oct 2010 10:43:27 +0000 To: kde-commits Subject: extragear/multimedia/kmid Message-Id: <20101031104327.F34DEAC89B () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=128852185729743 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 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);