File juk-kdemm-support.diff of Package kdemultimedia3

--- juk/juk.cpp
+++ juk/juk.cpp	2005/03/31 12:37:53
@@ -181,11 +181,6 @@
 	    this, SLOT(slotToggleSystemTray(bool)));
 
 
-    m_outputSelectAction = PlayerManager::playerSelectAction(actions());
-
-    if(m_outputSelectAction)
-        m_outputSelectAction->setCurrentItem(0);
-
     new KAction(i18n("&Tag Guesser..."), 0, 0, this, SLOT(slotConfigureTagGuesser()),
 		actions(), "tagGuesserConfig");
 
@@ -320,9 +315,6 @@
     bool showPopups = settingsConfig.readBoolEntry("TrackPopup", false);
     m_togglePopupsAction->setChecked(showPopups);
 
-    if(m_outputSelectAction)
-	m_outputSelectAction->setCurrentItem(settingsConfig.readNumEntry("MediaSystem", 0));
-
     m_toggleSplashAction->setChecked(m_showSplash);
 }
 
@@ -358,8 +350,6 @@
     settingsConfig.writeEntry("DockInSystemTray", m_toggleSystemTrayAction->isChecked());
     settingsConfig.writeEntry("DockOnClose", m_toggleDockOnCloseAction->isChecked());
     settingsConfig.writeEntry("TrackPopup", m_togglePopupsAction->isChecked());
-    if(m_outputSelectAction)
-	settingsConfig.writeEntry("MediaSystem", m_outputSelectAction->currentItem());
 
     KGlobal::config()->sync();
 }
--- juk/juk.h
+++ juk/juk.h	2005/03/31 12:37:53
@@ -87,7 +87,6 @@
     KToggleAction *m_togglePopupsAction;
     KToggleAction *m_toggleSplashAction;
     KToggleAction *m_loopPlaylistAction;
-    KSelectAction *m_outputSelectAction;
 
     PlayerManager *m_player;
     KGlobalAccel *m_accel;
--- juk/kdemmplayer.cpp
+++ juk/kdemmplayer.cpp	2005/03/31 12:37:53
@@ -0,0 +1,139 @@
+/***************************************************************************
+    begin                : Sun Feb 17 2002
+    copyright            : (C) 2002 - 2004 by Scott Wheeler
+    email                : wheeler@kde.org
+
+    copyright            : (C) 2003,2004 by Matthias Kretz
+    email                : kretz@kde.org
+
+    copyright            : (C) 2004 by Allan Sandfeld Jensen
+    email                : kde@carewolf.com
+***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kdemmplayer.h"
+
+#include <kdebug.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+
+#include <qdir.h>
+
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include <kdemm/simpleplayer.h>
+
+using namespace KDE::Multimedia;
+
+////////////////////////////////////////////////////////////////////////////////
+// public methods
+////////////////////////////////////////////////////////////////////////////////
+
+KDEMMPlayer::KDEMMPlayer() : Player()
+{
+    m_player = new SimplePlayer();
+}
+
+KDEMMPlayer::~KDEMMPlayer()
+{
+    delete m_player;
+}
+
+void KDEMMPlayer::play(const FileHandle &file)
+{
+    kdDebug( 65432 ) << k_funcinfo << endl;
+
+    if( file.isNull() )
+    {
+        m_player->play( m_currentURL );
+        return;
+    }
+    if(!file.isNull())
+        m_currentURL.setPath(file.absFilePath());
+
+    kdDebug( 65432 ) << "Opening: " << file.absFilePath() << endl;
+
+    m_player->play( m_currentURL );
+}
+
+void KDEMMPlayer::pause()
+{
+    m_player->pause();
+}
+
+void KDEMMPlayer::stop()
+{
+    m_player->stop();
+}
+
+void KDEMMPlayer::setVolume(float volume)
+{
+    m_player->setVolume(volume);
+}
+
+float KDEMMPlayer::volume() const
+{
+    return m_player->volume();
+}
+
+/////////////////////////////////////////////////////////////////////////////////
+// player status functions
+/////////////////////////////////////////////////////////////////////////////////
+
+bool KDEMMPlayer::playing() const
+{
+    return m_player->isPlaying();
+}
+
+bool KDEMMPlayer::paused() const
+{
+    return m_player->isPaused();
+}
+
+int KDEMMPlayer::totalTime() const
+{
+    if (m_player->totalTime() < 0)
+        return -1;
+    return (m_player->totalTime()/1000);
+}
+
+int KDEMMPlayer::currentTime() const
+{
+    if (m_player->currentTime() < 0)
+        return -1;
+    return (m_player->currentTime()/1000);
+}
+
+int KDEMMPlayer::position() const
+{
+    if( m_player->totalTime() > 0 )
+        return (m_player->currentTime()*1000)/m_player->totalTime();
+    return -1;
+}
+
+/////////////////////////////////////////////////////////////////////////////////
+// player seek functions
+/////////////////////////////////////////////////////////////////////////////////
+
+void KDEMMPlayer::seek(int seekTime)
+{
+    m_player->seek(seekTime*1000);
+}
+
+void KDEMMPlayer::seekPosition(int position)
+{
+    int length = m_player->totalTime();
+    if (length > 0) m_player->seek((position*length)/1000);
+}
+
+#include "kdemmplayer.moc"
+
--- juk/kdemmplayer.h
+++ juk/kdemmplayer.h	2005/03/31 12:37:53
@@ -0,0 +1,70 @@
+/***************************************************************************
+    begin                : Sun Feb 17 2002
+    copyright            : (C) 2002 - 2004 by Scott Wheeler
+    email                : wheeler@kde.org
+
+    copyright            : (C) 2003,2004 by Matthias Kretz
+    email                : kretz@kde.org
+
+    copyright            : (C) 2004 by Allan Sandfeld Jensen
+    email                : kde@carewolf.com
+***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KDEMMPLAYER_H
+#define KDEMMPLAYER_H
+
+#include <config.h>
+
+#include "player.h"
+
+#include <kurl.h>
+
+#include <qstring.h>
+#include <qobject.h>
+
+namespace KDE { namespace Multimedia { class SimplePlayer; } }
+
+class KDEMMPlayer : public Player
+{
+    Q_OBJECT
+
+public:
+    KDEMMPlayer();
+    virtual ~KDEMMPlayer();
+
+    virtual void play(const FileHandle &file = FileHandle::null());
+    virtual void pause();
+    virtual void stop();
+
+    virtual void setVolume(float volume = 1.0);
+    virtual float volume() const;
+
+    virtual bool playing() const;
+    virtual bool paused() const;
+
+    virtual int totalTime() const;
+    virtual int currentTime() const;
+    virtual int position() const; // in this case not really the percent
+
+    virtual void seek(int seekTime);
+    virtual void seekPosition(int position);
+
+private:
+    KDE::Multimedia::SimplePlayer *m_player;
+
+    KURL m_currentURL;
+
+};
+
+#endif
+
+// vim: sw=4 ts=8 et
--- juk/Makefile.am
+++ juk/Makefile.am	2005/03/31 12:37:53
@@ -4,8 +4,6 @@
 juk_SOURCES = \
 	advancedsearchdialog.cpp \
 	actioncollection.cpp \
-	akodeplayer.cpp \
-	artsplayer.cpp \
 	cache.cpp \
 	categoryreaderinterface.cpp \
 	collectionlist.cpp \
@@ -24,11 +22,11 @@
 	filerenameroptions.cpp \
 	filerenameroptionsbase.ui \
 	filerenamerconfigdlg.cpp \
-	gstreamerplayer.cpp \
 	googlefetcher.cpp \
 	googlefetcherdialog.cpp \
 	historyplaylist.cpp \
 	juk.cpp \
+	kdemmplayer.cpp \
 	jukIface.skel \
 	k3bexporter.cpp \
 	keydialog.cpp \
@@ -80,8 +78,8 @@
 endif
 ##################################################
 
-juk_LDADD = -lm $(LDADD_GST) $(mblibs) $(LIB_KIO) $(taglib_libs) $(LIB_KHTML) $(LIB_ARTS) ../akode/lib/libakode.la
-juk_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LDFLAGS_GST)
+juk_LDADD = -lm $(mblibs) $(LIB_KIO) $(taglib_libs) $(LIB_KHTML) -lkdemm
+juk_LDFLAGS = $(all_libraries) $(KDE_RPATH)
 
 tagguessertest_LDADD = $(LIB_KDECORE)
 tagguessertest_LDFLAGS = $(all_libraries)
--- juk/playermanager.cpp
+++ juk/playermanager.cpp	2005/03/31 12:38:18
@@ -21,9 +21,7 @@
 
 #include <math.h>
 
-#include "artsplayer.h"
-#include "akodeplayer.h"
-#include "gstreamerplayer.h"
+#include "kdemmplayer.h"
 #include "playermanager.h"
 #include "playlistinterface.h"
 #include "slideraction.h"
@@ -44,36 +42,11 @@
 // helper functions
 ////////////////////////////////////////////////////////////////////////////////
 
-enum SoundSystem { ArtsBackend = 0, GStreamerBackend = 1, AkodeBackend = 2 };
-
-static Player *createPlayer(int system = ArtsBackend)
+static Player *createPlayer()
 {
 
     Player *p = 0;
-    switch(system) {
-    case AkodeBackend:
-        p = new aKodePlayer;
-        break;
-#if HAVE_ARTS
-    case ArtsBackend:
-        p = new ArtsPlayer;
-        break;
-#endif
-#if HAVE_GSTREAMER
-    case GStreamerBackend:
-        p = new GStreamerPlayer;
-        break;
-#endif
-    default:
-#if HAVE_ARTS
-        p = new ArtsPlayer;
-#elif HAVE_GSTREAMER
-        p = new GStreamerPlayer;
-#else
-        p = new aKodePlayer;
-#endif
-        break;
-    }
+    p = new KDEMMPlayer;
     return p;
 }
 
@@ -217,14 +190,7 @@
     KSelectAction *action = 0;
     action = new KSelectAction(i18n("&Output To"), 0, parent, "outputSelect");
     QStringList l;
-    l <<
-#if HAVE_ARTS
-        i18n("aRts") <<
-#endif
-#if HAVE_GSTREAMER
-        i18n("GStreamer") <<
-#endif
-        i18n("aKode");
+    l << i18n("KDEMM");
     action->setItems(l);
     return action;
 }
@@ -503,24 +469,6 @@
     m_noSeek = false;
 }
 
-void PlayerManager::slotSetOutput(const QString &system)
-{
-    stop();
-    setOutput(system);
-    setup();
-}
-
-void PlayerManager::setOutput(const QString &system)
-{
-    delete m_player;
-    if(system == i18n("aRts"))
-        m_player = createPlayer(ArtsBackend);
-    else if(system == i18n("GStreamer"))
-        m_player = createPlayer(GStreamerBackend);
-    else if(system == i18n("aKode"))
-        m_player = createPlayer(AkodeBackend);
-}
-
 void PlayerManager::slotSetVolume(int volume)
 {
     float scaledVolume;
@@ -599,15 +547,7 @@
             this, SLOT(slotSetVolume(int)));
 
     // Call this method manually to avoid warnings.
-
-    KAction *outputAction = actions()->action("outputSelect");
-
-    if(outputAction) {
-        setOutput(static_cast<KSelectAction *>(outputAction)->currentText());
-        connect(outputAction, SIGNAL(activated(const QString &)), this, SLOT(slotSetOutput(const QString &)));
-    }
-    else
-        m_player = createPlayer();
+    m_player = createPlayer();
 
     float volume;
     
--- juk/playermanager.h
+++ juk/playermanager.h	2005/03/31 12:38:25
@@ -87,12 +87,10 @@
 private:
     Player *player() const;
     void setup();
-    void setOutput(const QString &);
     
 private slots:
     void slotPollPlay();
     void slotUpdateTime(int position);
-    void slotSetOutput(const QString &);
     void slotSetVolume(int volume);
 
 private:
openSUSE Build Service is sponsored by