7 #include <QDBusMessage>
15 QDBusConnection connection = QDBusConnection::sessionBus();
20 connection.registerService(
"org.mpris.MediaPlayer2." TTK_APP_NAME);
21 connection.registerObject(
"/org/mpris/MediaPlayer2",
this);
26 QDBusConnection::sessionBus().unregisterService(
"org.mpris.MediaPlayer2." TTK_APP_NAME);
38 : QDBusAbstractAdaptor(parent)
70 QStringList mimeTypes;
73 mimeTypes.removeDuplicates();
80 if(!protocols.contains(
"file"))
82 protocols.append(
"file");
99 : QDBusAbstractAdaptor(parent)
154 default:
return "None";
164 else if(value ==
"Playlist")
183 return QVariantMap();
244 map[
"mpris:trackid"] = QVariant::fromValue<QDBusObjectPath>(
m_trackID);
315 if(uri.startsWith(
"file://"))
317 path = QUrl(uri).toLocalFile();
318 if(!QFile::exists(path))
403 m_trackID = QDBusObjectPath(QString(
"%1/Track/%2").arg(
"/org/qmmp/MediaPlayer2").arg(
TTK::random()));
433 if(it.value() != prevProps.value(it.key()))
435 map.insert(it.key(), it.value());
444 QDBusMessage msg = QDBusMessage::createSignal(
"/org/mpris/MediaPlayer2",
"org.freedesktop.DBus.Properties",
"PropertiesChanged");
445 msg <<
"org.mpris.MediaPlayer2.Player";
447 msg << QStringList();
448 QDBusConnection::sessionBus().send(msg);
The class of the app mpris player object.
QStringList supportedUriSchemes() const
static QStringList contentTypes()
void OpenUri(const QString &uri)
static MusicApplication * instance()
MusicMPRISPlayerCore * m_player
MusicApplication * m_application
bool hasTrackList() const
double maximumRate() const
QDBusObjectPath m_trackID
static SoundCore * instance()
const TrackInfo & trackInfo() const
void setRate(double value)
const QString & path() const
void setLoopStatus(const QString &value)
TTK::PlayMode playMode() const
TTK_MODULE_EXPORT void initRandom()
MusicMPRISPlayer(QObject *parent=nullptr)
void playbackModeChanged()
MusicMPRISPlayerCore(QObject *parent=nullptr)
void setVolume(int volume)
TTK_MODULE_EXPORT int random(int value=RAND_MAX)
#define TTK_WARN_STREAM(msg)
QStringList supportedMimeTypes() const
void elapsedChanged(qint64 elapsed)
The TrackInfo class stores metadata and other information about track.
QMap< QString, QVariant > TTKVariantMap
MusicPlaylist * m_playlist
void Seek(qlonglong offset)
qlonglong position() const
void setPlaybackMode(TTK::PlayMode mode)
void Seeked(qlonglong position)
MusicMPRISPlayerRoot(QObject *parent=nullptr)
QVariantMap metadata() const
void SetPosition(const QDBusObjectPath &trackId, qlonglong position)
void importSongsByOutside(const QString &path, bool play)
QString loopStatus() const
QString desktopEntry() const
MusicMPRISPlayerRoot * m_root
const QString value(Qmmp::MetaData key) const
TTK_MODULE_EXPORT QString toString(Record type)
QString playbackStatus() const
void setVolume(double value)
static QStringList contentTypes()
bool canGoPrevious() const
double minimumRate() const
void setShuffle(bool value)
The class of the app mpris root object.
TTKVariantMap m_properties
Qmmp::State state() const