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

Engines

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 }
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         // jukPlayer->seek() wants milliseconds
00205         jukPlayer->seek(time * 1000);
00206     }
00207 }
00208 
00209 
00210 #include "juk.moc"

Engines

Skip menu "Engines"
  • 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
  •   libplasma
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.4
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