aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Effect/crossfade
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-09-10 18:37:27 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-09-10 18:37:27 +0000
commit894560da81dd47961dad69a4cda2ee75d839da2f (patch)
tree4052f25d6365ea8655184bb8b237867953c6d339 /src/plugins/Effect/crossfade
parent1ef3a1732abb01a1ae9f68c58668e8b8df2db141 (diff)
downloadqmmp-894560da81dd47961dad69a4cda2ee75d839da2f.tar.gz
qmmp-894560da81dd47961dad69a4cda2ee75d839da2f.tar.bz2
qmmp-894560da81dd47961dad69a4cda2ee75d839da2f.zip
crossfade plugin: fixed cutting off last track
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1884 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Effect/crossfade')
-rw-r--r--src/plugins/Effect/crossfade/crossfadeplugin.cpp10
-rw-r--r--src/plugins/Effect/crossfade/crossfadeplugin.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/Effect/crossfade/crossfadeplugin.cpp b/src/plugins/Effect/crossfade/crossfadeplugin.cpp
index b937dd51b..a50df9b2b 100644
--- a/src/plugins/Effect/crossfade/crossfadeplugin.cpp
+++ b/src/plugins/Effect/crossfade/crossfadeplugin.cpp
@@ -50,9 +50,15 @@ void CrossfadePlugin::applyEffect(Buffer *b)
if(m_core->totalTime() - m_handler->elapsed() < m_overlap + 2000)
{
StateHandler::instance()->sendNextTrackRequest();
- m_state = PREPARING;
+ m_state = CHECKING;
}
return;
+ case CHECKING:
+ //next source has been received and current engine will be used to play it
+ if(m_handler->nextEngine() == m_handler->currentEngine())
+ m_state = PREPARING;
+ else
+ return;
case PREPARING:
if(m_core->totalTime() - m_handler->elapsed() < m_overlap)
{
@@ -92,7 +98,5 @@ void CrossfadePlugin::applyEffect(Buffer *b)
void CrossfadePlugin::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
{
- //m_buffer_size = m_overlap * freq * chan * AudioParameters::sampleSize(format) / 1000;
- //m_buffer =(uchar *) malloc(m_buffer_size);
Effect::configure(freq, chan, format);
}
diff --git a/src/plugins/Effect/crossfade/crossfadeplugin.h b/src/plugins/Effect/crossfade/crossfadeplugin.h
index ec025aded..968405923 100644
--- a/src/plugins/Effect/crossfade/crossfadeplugin.h
+++ b/src/plugins/Effect/crossfade/crossfadeplugin.h
@@ -44,6 +44,7 @@ private:
enum State
{
WAITING = 0,
+ CHECKING,
PREPARING,
PROCESSING,
};