• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Plasma

juk.cpp

Go to the documentation of this file.
00001 /*
00002  *   Copyright 2007 Alex Merry <alex.merry@kdemail.net>
00003  *
00004  *   This program is free software; you can redistribute it and/or modify
00005  *   it under the terms of the GNU Library General Public License version 2 as
00006  *   published by the Free Software Foundation
00007  *
00008  *   This program is distributed in the hope that it will be useful,
00009  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011  *   GNU General Public License for more details
00012  *
00013  *   You should have received a copy of the GNU Library General Public
00014  *   License along with this program; if not, write to the
00015  *   Free Software Foundation, Inc.,
00016  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
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         // jukPlayer->seek() wants milliseconds
00206         jukPlayer->seek(time * 1000);
00207     }
00208 }
00209 
00210 
00211 #include "juk.moc"

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal