show media length and progress above progress bar

This commit is contained in:
Anika Raemer 2018-12-06 20:59:24 +01:00
parent 0b84a6e6b6
commit 470e95f57f
3 changed files with 63 additions and 19 deletions

View file

@ -23,10 +23,7 @@ void MusicModel::init(NavigationItemModel *item)
mCurrentItem = item;
emit currentItemChanged();
mHasNext = false;
mHasPrevious = false;
emit hasNextChanged();
emit hasPrevious();
reset();
while(mMedia->count() > 0){
mMedia->removeMedia(0);
@ -64,13 +61,7 @@ void MusicModel::stopMusic()
mIsPlaying = false;
emit isPlayingChanged();
mHasNext = false;
mHasPrevious = false;
emit hasNextChanged();
emit hasPreviousChanged();
mCurrentMediaItemProgress = 0.0;
emit progressChanged();
reset();
emit stop();
}
@ -104,26 +95,36 @@ VlcMediaList *MusicModel::getMedia()
return mMedia;
}
bool MusicModel::isPlaying()
bool MusicModel::isPlaying() const
{
return mIsPlaying;
}
bool MusicModel::hasNext()
bool MusicModel::hasNext() const
{
return mHasNext;
}
bool MusicModel::hasPrevious()
bool MusicModel::hasPrevious() const
{
return mHasPrevious;
}
double MusicModel::getProgress()
double MusicModel::getProgress() const
{
return mCurrentMediaItemProgress;
}
QString MusicModel::getMediaLength()
{
return timeToString(mCurrentMediaItemLength);
}
QString MusicModel::getTime()
{
return timeToString(mCurrentTime);
}
void MusicModel::onNextMediaSet(VlcMedia *media)
{
mHasNext = true;
@ -141,10 +142,36 @@ void MusicModel::onNextMediaSet(VlcMedia *media)
void MusicModel::onTimeChanged(int time)
{
mCurrentMediaItemProgress = (double) time / mCurrentMediaItemLength;
mCurrentTime = time;
emit progressChanged();
}
void MusicModel::onLengthChanged(int length)
{
mCurrentMediaItemLength= length;
emit mediaLengthChanged();
}
void MusicModel::reset()
{
mHasNext = false;
mHasPrevious = false;
emit hasNextChanged();
emit hasPreviousChanged();
mCurrentMediaItemProgress = 0.0;
mCurrentTime = 0.0;
emit progressChanged();
mCurrentMediaItemLength = 0.0;
emit mediaLengthChanged();
}
QString MusicModel::timeToString(int time)
{
int sec = time/1000;
int min = sec/60;
sec = sec-min*60;
QString secStr = sec < 10 ? "0"+QString::number(sec) : QString::number(sec);
return QString::number(min) + ":" + secStr;
}