diff options
author | Alex Merry <dev@randomguy3.me.uk> | 2012-04-20 20:03:22 +0100 |
---|---|---|
committer | Alex Merry <dev@randomguy3.me.uk> | 2012-04-20 20:03:22 +0100 |
commit | a2b671eaa4827374dfe72695d196f687965278a4 (patch) | |
tree | 7cbeaf032ce3f2a34afde26812dd59bb59ed4cc3 | |
parent | 33f84c4e17f353a6c36a4af29d561b56b36fe3f9 (diff) |
Provide times in minutes and seconds as well
These are much easier for humans to parse (to check they're roughly
right) than nanoseconds.
-rw-r--r-- | metadatamodel.cpp | 16 | ||||
-rw-r--r-- | mpris2/playertestwidget.cpp | 24 |
2 files changed, 35 insertions, 5 deletions
diff --git a/metadatamodel.cpp b/metadatamodel.cpp index 513e3d0..387747b 100644 --- a/metadatamodel.cpp +++ b/metadatamodel.cpp @@ -18,6 +18,16 @@ #include <QDBusArgument> #include <qdebug.h> +static QString formatTimeNs(qlonglong time) +{ + qlonglong secs = time / 1000000; + qlonglong mins = secs / 60; + secs = secs % 60; + return QString::number(time) + "ns (" + + QString::number(mins) + ":" + + QString::number(secs).rightJustified(2, '0') + ")"; +} + MetadataModel::MetadataModel(QObject* parent) : QAbstractTableModel(parent) { @@ -57,7 +67,11 @@ QVariant MetadataModel::data(const QModelIndex& index, int role) const } else if (m_metadata[key].canConvert<QDBusObjectPath>()) { return m_metadata[key].value<QDBusObjectPath>().path(); } else { - return m_metadata[key]; + if (key == "mpris:length" && m_metadata[key].canConvert(QVariant::LongLong)) { + return formatTimeNs(m_metadata[key].toLongLong()); + } else { + return m_metadata[key]; + } } } } diff --git a/mpris2/playertestwidget.cpp b/mpris2/playertestwidget.cpp index a208424..c69347e 100644 --- a/mpris2/playertestwidget.cpp +++ b/mpris2/playertestwidget.cpp @@ -98,6 +98,16 @@ void PlayerTestWidget::runIncrementalTest() test->incrementalTest(); } +static QString formatTimeNs(qlonglong time) +{ + qlonglong secs = time / 1000000; + qlonglong mins = secs / 60; + secs = secs % 60; + return QString::number(time) + "ns (" + + QString::number(mins) + ":" + + QString::number(secs).rightJustified(2, '0') + ")"; +} + void PlayerTestWidget::propertiesChanged(const QStringList& properties) { Q_UNUSED(properties) @@ -116,14 +126,14 @@ void PlayerTestWidget::propertiesChanged(const QStringList& properties) updateDoublePropLabel("MaximumRate", ui.maxRateLbl); updateDoublePropLabel("Volume", ui.volumeLbl); if (test->properties().contains("Position")) { - ui.lastKnownPosLbl->setText(QString::number(test->properties().value("Position").toLongLong()) + "ns"); + ui.lastKnownPosLbl->setText(formatTimeNs(test->properties().value("Position").toLongLong())); ui.lastKnownPosLbl->setEnabled(true); } else { ui.lastKnownPosLbl->setText("<unknown>"); ui.lastKnownPosLbl->setEnabled(false); } if (test->predictedPosition() >= 0) { - ui.estPosLbl->setText(QString::number(test->predictedPosition()) + "ns"); + ui.estPosLbl->setText(formatTimeNs(test->predictedPosition())); ui.estPosLbl->setEnabled(true); if (!estPosTimer->isActive()) estPosTimer->start(); @@ -152,7 +162,13 @@ void PlayerTestWidget::propertiesChanged(const QStringList& properties) void PlayerTestWidget::updateEstPos() { - ui.estPosLbl->setText(QString::number(test->predictedPosition()) + "ns"); + if (test->predictedPosition() >= 0) { + ui.estPosLbl->setText(formatTimeNs(test->predictedPosition())); + ui.estPosLbl->setEnabled(true); + } else { + ui.estPosLbl->setText("<unknown>"); + ui.estPosLbl->setEnabled(false); + } } void PlayerTestWidget::testSeek() @@ -182,7 +198,7 @@ void PlayerTestWidget::testOpenUri() void PlayerTestWidget::Seeked(qint64 position) { - ui.lastKnownPosLbl->setText(QString::number(position) + "ns"); + ui.lastKnownPosLbl->setText(formatTimeNs(position)); ui.lastKnownPosLbl->setEnabled(true); } |