summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Merry <dev@randomguy3.me.uk>2012-04-20 20:03:22 +0100
committerAlex Merry <dev@randomguy3.me.uk>2012-04-20 20:03:22 +0100
commita2b671eaa4827374dfe72695d196f687965278a4 (patch)
tree7cbeaf032ce3f2a34afde26812dd59bb59ed4cc3
parent33f84c4e17f353a6c36a4af29d561b56b36fe3f9 (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.cpp16
-rw-r--r--mpris2/playertestwidget.cpp24
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);
}