Plasma
juk.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "juk.h"
00020 #include "juk_p.h"
00021 #include <juk_interface.h>
00022
00023 #include <QtDBus>
00024
00025
00026 JukFactory::JukFactory(QObject* parent)
00027 : DBusPlayerFactory(parent)
00028 {
00029 setObjectName("JukFactory");
00030 }
00031
00032 Player::Ptr JukFactory::create(const QVariantList& args)
00033 {
00034 Q_UNUSED(args);
00035
00036 Juk* player = new Juk(this);
00037 if (!player->isRunning()) {
00038 delete player;
00039 player = 0;
00040 }
00041 return Player::Ptr(player);
00042 }
00043
00044 bool JukFactory::matches(const QString& serviceName)
00045 {
00046 return serviceName == "org.kde.juk";
00047 }
00048
00049
00050
00051
00052
00053 Juk::Juk(PlayerFactory* factory)
00054 : Player(factory),
00055 jukPlayer(new JukPlayer("org.kde.juk", "/Player",
00056 QDBusConnection::sessionBus()))
00057 {
00058 setName("JuK");
00059 }
00060
00061 Juk::~Juk()
00062 {
00063 delete jukPlayer;
00064 }
00065
00066 bool Juk::isRunning()
00067 {
00068 if (!jukPlayer->isValid()) {
00069 delete jukPlayer;
00070 jukPlayer = new JukPlayer("org.kde.juk", "/Player",
00071 QDBusConnection::sessionBus());
00072 }
00073 return jukPlayer->isValid();
00074 }
00075
00076 Player::State Juk::state()
00077 {
00078 if (jukPlayer->isValid()) {
00079 if (jukPlayer->playing()) {
00080 return Playing;
00081 }
00082 if (jukPlayer->paused()) {
00083 return Paused;
00084 }
00085 }
00086 return Stopped;
00087 }
00088
00089 QString Juk::artist()
00090 {
00091 if (jukPlayer->isValid()) {
00092 return jukPlayer->trackProperty("Artist");
00093 }
00094 return QString();
00095 }
00096
00097 QString Juk::album()
00098 {
00099 if (jukPlayer->isValid()) {
00100 return jukPlayer->trackProperty("Album");
00101 }
00102 return QString();
00103 }
00104
00105 QString Juk::title()
00106 {
00107 if (jukPlayer->isValid()) {
00108 return jukPlayer->trackProperty("Title");
00109 }
00110 return QString();
00111 }
00112
00113 int Juk::trackNumber()
00114 {
00115 if (jukPlayer->isValid()) {
00116 return jukPlayer->trackProperty("Track").value().toInt();
00117 }
00118 return 0;
00119 }
00120
00121 QString Juk::comment()
00122 {
00123 if (jukPlayer->isValid()) {
00124 return jukPlayer->trackProperty("Comment");
00125 }
00126 return QString();
00127 }
00128
00129 QString Juk::genre()
00130 {
00131 if (jukPlayer->isValid()) {
00132 return jukPlayer->trackProperty("Genre");
00133 }
00134 return QString();
00135 }
00136
00137 int Juk::length()
00138 {
00139 if (jukPlayer->isValid()) {
00140 return jukPlayer->totalTime();
00141 }
00142 return 0;
00143 }
00144
00145 int Juk::position()
00146 {
00147 if (jukPlayer->isValid()) {
00148 return jukPlayer->currentTime();
00149 }
00150 return 0;
00151 }
00152
00153 float Juk::volume()
00154 {
00155 if (jukPlayer->isValid()) {
00156 return jukPlayer->volume();
00157 }
00158 return 0;
00159 }
00160
00161 void Juk::play()
00162 {
00163 if (jukPlayer->isValid()) {
00164 jukPlayer->play();
00165 }
00166 }
00167
00168 void Juk::pause()
00169 {
00170 if (jukPlayer->isValid()) {
00171 jukPlayer->pause();
00172 }
00173 }
00174
00175 void Juk::stop()
00176 {
00177 if (jukPlayer->isValid()) {
00178 jukPlayer->stop();
00179 }
00180 }
00181
00182 void Juk::previous()
00183 {
00184 if (jukPlayer->isValid()) {
00185 jukPlayer->back();
00186 }
00187 }
00188
00189 void Juk::next()
00190 {
00191 if (jukPlayer->isValid()) {
00192 jukPlayer->forward();
00193 }
00194 }
00195
00196 void Juk::setVolume(qreal volume) {
00197 if (jukPlayer->isValid()) {
00198 jukPlayer->setVolume(volume);
00199 }
00200 }
00201
00202 void Juk::seek(int time)
00203 {
00204 if (jukPlayer->isValid()) {
00205
00206 jukPlayer->seek(time * 1000);
00207 }
00208 }
00209
00210
00211 #include "juk.moc"