internal = parent;
//buffer->open(QIODevice::ReadWrite);
connect(media,SIGNAL(finished()),this,SLOT(markComplete()));
+ media->setTickInterval(200);
+ connect(media,SIGNAL(tick(qint64)),this,SLOT(updatePlayPosition(qint64)));
}
void sPlayer::setPlaylist(playlist *playList)
{
void sPlayer::markComplete()
{
pl->markPlayed(pl->currentplaying());
- pl->setCurrentPlaying(-1);
+ if(pl->existAt(pl->currentplaying()+1))
+ {
+ pl->setCurrentPlaying(pl->currentplaying()+1);
+ if(pl->bReady(pl->currentplaying()))
+ this->start(pl->currentplaying());
+ }
+ else
+ pl->setCurrentPlaying(-1);
+}
+void sPlayer::updatePlayPosition(qint64 time)
+{
+ //qDebug() << time << ":" << media->totalTime();
+}
+
+void sPlayer::pause()
+{
+ if(media->state() == Phonon::PausedState)
+ media->play();
+ if(media->state() == Phonon::PlayingState)
+ media->pause();
+}
+void sPlayer::playNext()
+{
+ if(pl->existAt(pl->currentplaying()+1))
+ {
+ media->stop();
+ this->markComplete();
+ }
}
sPlayer::~sPlayer()
//reply->~QIODevice();
media->~MediaNode();
}
+void sPlayer::back()
+{
+ media->stop();
+ if(pl->existAt(pl->currentplaying()-1))
+ {
+ pl->setCurrentPlaying(pl->currentplaying()-1);
+ if(pl->bReady(pl->currentplaying()))
+ this->start(pl->currentplaying());
+ }
+ else
+ pl->setCurrentPlaying(-1);
+}
+
void sPlayer::abortDownload()
{
//pd->hide();
}
void sPlayer::play(int p)
{
+ if(pl->currentplaying() != -1)
+ pl->freeMemory(pl->currentplaying());
pl->setCurrentPlaying(p);
//pl->beginDownload(p);
}
void sPlayer::stop()
{
- pl->setCurrentPlaying(-1);
+
media->stop();
+ if(pl->currentplaying() != -1)
+ pl->markPlayed(pl->currentplaying());
+ pl->setCurrentPlaying(-1);
playing = false;
}