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