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