1 /*
2 * Strawberry Music Player
3 * This file was part of Clementine.
4 * Copyright 2010, David Sansome <me@davidsansome.com>
5 *
6 * Strawberry is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * Strawberry is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21 #ifndef MPRIS_COMMON_H
22 #define MPRIS_COMMON_H
23
24 #include "config.h"
25
26 #include <QObject>
27 #include <QVariantMap>
28 #include <QDateTime>
29 #include <QString>
30 #include <QStringList>
31
32 namespace mpris {
33
AddMetadata(const QString & key,const QString & metadata,QVariantMap * map)34 inline void AddMetadata(const QString &key, const QString &metadata, QVariantMap *map) {
35 if (!metadata.isEmpty()) (*map)[key] = metadata;
36 }
37
AddMetadataAsList(const QString & key,const QString & metadata,QVariantMap * map)38 inline void AddMetadataAsList(const QString &key, const QString &metadata, QVariantMap *map) {
39 if (!metadata.isEmpty()) (*map)[key] = QStringList() << metadata;
40 }
41
AddMetadata(const QString & key,int metadata,QVariantMap * map)42 inline void AddMetadata(const QString &key, int metadata, QVariantMap *map) {
43 if (metadata > 0) (*map)[key] = metadata;
44 }
45
AddMetadata(const QString & key,qint64 metadata,QVariantMap * map)46 inline void AddMetadata(const QString &key, qint64 metadata, QVariantMap *map) {
47 if (metadata > 0) (*map)[key] = metadata;
48 }
49
AddMetadata(const QString & key,double metadata,QVariantMap * map)50 inline void AddMetadata(const QString &key, double metadata, QVariantMap *map) {
51 if (metadata != 0.0) (*map)[key] = metadata;
52 }
53
AddMetadata(const QString & key,const QDateTime & metadata,QVariantMap * map)54 inline void AddMetadata(const QString &key, const QDateTime &metadata, QVariantMap *map) {
55 if (metadata.isValid()) (*map)[key] = metadata;
56 }
57
AsMPRISDateTimeType(const qint64 time)58 inline QString AsMPRISDateTimeType(const qint64 time) {
59 return time != -1 ? QDateTime::fromSecsSinceEpoch(time).toString(Qt::ISODate) : "";
60 }
61
62 } // namespace mpris
63
64 #endif // MPRIS_COMMON_H
65