diff options
Diffstat (limited to 'opensuse/tdelibs/kdemm.diff')
-rw-r--r-- | opensuse/tdelibs/kdemm.diff | 669 |
1 files changed, 0 insertions, 669 deletions
diff --git a/opensuse/tdelibs/kdemm.diff b/opensuse/tdelibs/kdemm.diff deleted file mode 100644 index 3d1e3d925..000000000 --- a/opensuse/tdelibs/kdemm.diff +++ /dev/null @@ -1,669 +0,0 @@ -Index: arts/knotify/knotify.cpp -=================================================================== ---- arts/knotify/knotify.cpp.orig -+++ arts/knotify/knotify.cpp -@@ -5,6 +5,7 @@ - 2000 Matthias Ettrich (ettrich@kde.org) - 2000 Waldo Bastian <bastian@kde.org> - 2000-2003 Carsten Pfeiffer <pfeiffer@kde.org> -+ 2004 Allan Sandfeld Jensen <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 -@@ -26,21 +27,12 @@ - #include <sys/types.h> - #include <sys/stat.h> - --#include <config.h> --#ifndef WITHOUT_ARTS --// aRts headers --#include <connect.h> --#include <dispatcher.h> --#include <flowsystem.h> --#include <qiomanager.h> --#include <soundserver.h> --#endif -- - // QT headers - #include <qfile.h> - #include <qfileinfo.h> - #include <qstringlist.h> - #include <qtextstream.h> -+#include <qtimer.h> - - // KDE headers - #include <dcopclient.h> -@@ -80,15 +72,11 @@ public: - QString externalPlayer; - KProcess *externalPlayerProc; - --#ifndef WITHOUT_ARTS -- QPtrList<KDE::PlayObject> playObjects; -- QMap<KDE::PlayObject*,int> playObjectEventMap; -- KAudioManagerPlay *audioManager; --#endif -+ QMap<KDE::Multimedia::SimplePlayer*,int> playObjectEventMap; - int externalPlayerEventId; - - bool useExternal; -- bool useArts; -+ bool useKDEMM; - int volume; - QTimer *playTimer; - bool inStartup; -@@ -106,12 +94,13 @@ extern "C"{ - KDE_EXPORT int kdemain(int argc, char **argv) - { - KAboutData aboutdata("knotify", I18N_NOOP("KNotify"), -- "3.0", I18N_NOOP("KDE Notification Server"), -+ "4.0", I18N_NOOP("KDE Notification Server"), - KAboutData::License_GPL, "(C) 1997-2003, KDE Developers"); - aboutdata.addAuthor("Carsten Pfeiffer",I18N_NOOP("Current Maintainer"),"pfeiffer@kde.org"); - aboutdata.addAuthor("Christian Esken",0,"esken@kde.org"); - aboutdata.addAuthor("Stefan Westerfeld",I18N_NOOP("Sound support"),"stefan@space.twc.de"); - aboutdata.addAuthor("Charles Samuels",I18N_NOOP("Previous Maintainer"),"charles@kde.org"); -+ aboutdata.addAuthor("Allan Sandfeld Jensen",I18N_NOOP("Conversion to KDEMM"),"kde@carewolf.com"); - - KCmdLineArgs::init( argc, argv, &aboutdata ); - KUniqueApplication::addCmdLineOptions(); -@@ -126,145 +115,36 @@ KDE_EXPORT int kdemain(int argc, char ** - KUniqueApplication app; - app.disableSessionManagement(); - -- // KNotify is started on KDE startup and on demand (using -- // KNotifClient::startDaemon()) whenever a KNotify event occurs. Especially -- // KWin may fire many events (e.g. when a window pops up). When we have -- // problems with aRts or the installation, we might get an infinite loop -- // of knotify crashing, popping up the crashhandler window and kwin firing -- // another event, starting knotify again... -- // We try to prevent this by tracking our startup and offer options to -- // abort this. -- --#ifndef WITHOUT_ARTS -- KConfigGroup config( KGlobal::config(), "StartProgress" ); -- KConfig artsKCMConfig( "kcmartsrc" ); -- artsKCMConfig.setGroup( "Arts" ); -- bool useArts = artsKCMConfig.readBoolEntry( "StartServer", true ); -- if (useArts) -- useArts = config.readBoolEntry( "Use Arts", useArts ); -- bool ok = config.readBoolEntry( "Arts Init", true ); -- -- if ( useArts && !ok ) -- { -- if ( KMessageBox::questionYesNo( -- 0L, -- i18n("During the previous startup, KNotify crashed while creating " -- "Arts::Dispatcher. Do you want to try again or disable " -- "aRts sound output?\n\n" -- "If you choose to disable aRts output now, you can re-enable " -- "it later or select an alternate sound player " -- "in the System Notifications control panel."), -- i18n("KNotify Problem"), -- i18n("&Try Again"), -- i18n("D&isable aRts Output"), -- "KNotifyStartProgress", -- 0 /* don't call KNotify :) */ -- ) -- == KMessageBox::No ) -- { -- useArts = false; -- } -- } -- -- // when ArtsDispatcher crashes, we know it the next start. -- config.writeEntry( "Arts Init", false ); -- config.writeEntry( "Use Arts", useArts ); -- config.sync(); -- -- KArtsDispatcher *dispatcher = 0; -- if ( useArts ) -- { -- dispatcher = new KArtsDispatcher; -- soundServer = new KArtsServer; -- } -- -- // ok, seemed to work. -- config.writeEntry("Arts Init", useArts ); -- config.sync(); -- -- ok = config.readBoolEntry( "KNotify Init", true ); -- if ( useArts && !ok ) -- { -- if ( KMessageBox::questionYesNo( -- 0L, -- i18n("During the previous startup, KNotify crashed while instantiating " -- "KNotify. Do you want to try again or disable " -- "aRts sound output?\n\n" -- "If you choose to disable aRts output now, you can re-enable " -- "it later or select an alternate sound player " -- "in the System Notifications control panel."), -- i18n("KNotify Problem"), -- i18n("&Try Again"), -- i18n("D&isable aRts Output"), -- "KNotifyStartProgress", -- 0 /* don't call KNotify :) */ -- ) -- == KMessageBox::No ) -- { -- useArts = false; -- delete soundServer; -- soundServer = 0L; -- delete dispatcher; -- dispatcher = 0L; -- } -- } -- -- // when KNotify instantiation crashes, we know it the next start. -- config.writeEntry( "KNotify Init", false ); -- config.writeEntry( "Use Arts", useArts ); -- config.sync(); -- - // start notify service -- KNotify *notify = new KNotify( useArts ); -- -- config.writeEntry( "KNotify Init", true ); -- config.sync(); -- --#else -- -- // start notify service, without aRts -- KNotify *notify = new KNotify( false ); -- --#endif -+ KNotify notify( true ); - - app.dcopClient()->setDefaultObject( "Notify" ); - app.dcopClient()->setDaemonMode( true ); - // kdDebug() << "knotify starting" << endl; - - int ret = app.exec(); -- delete notify; --#ifndef WITHOUT_ARTS -- delete soundServer; -- delete dispatcher; --#endif - return ret; - } - }// end extern "C" - --KNotify::KNotify( bool useArts ) -+KNotify::KNotify( bool useKDEMM ) - : QObject(), DCOPObject("Notify") - { - d = new KNotifyPrivate; - d->globalEvents = new KConfig("knotify/eventsrc", true, false, "data"); - d->globalConfig = new KConfig("knotify.eventsrc", true, false); - d->externalPlayerProc = 0; -- d->useArts = useArts; -- d->inStartup = true; --#ifndef WITHOUT_ARTS -- d->playObjects.setAutoDelete(true); -- d->audioManager = 0; -- if( useArts ) -- { -- connect( soundServer, SIGNAL( restartedServer() ), this, SLOT( restartedArtsd() ) ); -- restartedArtsd(); //started allready need to initialize d->audioManager -- } --#endif -+ d->useKDEMM = useKDEMM; - -- d->volume = 100; -+ d->inStartup = 0; -+ d->volume = 100; - - d->playTimer = 0; - - loadConfig(); -+ -+ connect ( this, SIGNAL(deletePlayObject(KDE::Multimedia::SimplePlayer*)), -+ SLOT(objectDeleter(KDE::Multimedia::SimplePlayer*)) ); - } - - KNotify::~KNotify() -@@ -272,12 +152,9 @@ KNotify::~KNotify() - reconfigure(); - - #ifndef WITHOUT_ARTS -- d->playObjects.clear(); -- - delete d->globalEvents; - delete d->globalConfig; - delete d->externalPlayerProc; -- delete d->audioManager; - #endif - delete d; - } -@@ -293,7 +170,7 @@ void KNotify::loadConfig() { - // try to locate a suitable player if none is configured - if ( d->externalPlayer.isEmpty() ) { - QStringList players; -- players << "wavplay" << "aplay" << "auplay"; -+ players << "wavplay" << "aplay" << "auplay" << "artsplay" << "akodeplay"; - QStringList::Iterator it = players.begin(); - while ( d->externalPlayer.isEmpty() && it != players.end() ) { - d->externalPlayer = KStandardDirs::findExe( *it ); -@@ -456,9 +333,9 @@ bool KNotify::notifyBySound( const QStri - if ( soundFile.isEmpty() ) - soundFile = locate( "sound", sound ); - } -- if ( soundFile.isEmpty() || isPlaying( soundFile ) ) -+ if ( soundFile.isEmpty() ) - { -- soundFinished( eventId, soundFile.isEmpty() ? NoSoundFile : FileAlreadyPlaying ); -+ soundFinished( eventId, NoSoundFile ); - return false; - } - -@@ -466,64 +343,18 @@ bool KNotify::notifyBySound( const QStri - // kdDebug() << "KNotify::notifyBySound - trying to play file " << soundFile << endl; - - if (!external) { -- //If we disabled using aRts, just return, -- //(If we don't, we'll blow up accessing the null soundServer) -- if (!d->useArts) -+ //If we disabled audio, just return, -+ if (!d->useKDEMM) - { - soundFinished( eventId, NoSoundSupport ); - return false; - } - --#ifndef WITHOUT_ARTS -- // play sound finally -- while( d->playObjects.count()>5 ) -- abortFirstPlayObject(); -- -- KDE::PlayObjectFactory factory(soundServer->server()); -- if( d->audioManager ) -- factory.setAudioManagerPlay( d->audioManager ); - KURL soundURL; - soundURL.setPath(soundFile); -- KDE::PlayObject *playObject = factory.createPlayObject(soundURL, false); -- -- if (playObject->isNull()) -- { -- soundFinished( eventId, NoSoundSupport ); -- delete playObject; -- return false; -- } -- -- if ( d->volume != 100 ) -- { -- // It works to access the playObject immediately because we don't allow -- // non-file URLs for sounds. -- Arts::StereoVolumeControl volumeControl = Arts::DynamicCast(soundServer->server().createObject("Arts::StereoVolumeControl")); -- Arts::PlayObject player = playObject->object(); -- Arts::Synth_AMAN_PLAY ap = d->audioManager->amanPlay(); -- if( ! volumeControl.isNull() && ! player.isNull() && ! ap.isNull() ) -- { -- volumeControl.scaleFactor( d->volume/100.0 ); -- -- ap.stop(); -- Arts::disconnect( player, "left", ap, "left" ); -- Arts::disconnect( player, "right", ap, "right" ); -- -- ap.start(); -- volumeControl.start(); -- -- Arts::connect(player,"left",volumeControl,"inleft"); -- Arts::connect(player,"right",volumeControl,"inright"); -- -- Arts::connect(volumeControl,"outleft",ap,"left"); -- Arts::connect(volumeControl,"outright",ap,"right"); -- -- player._addChild( volumeControl, "volume" ); -- } -- } -- -- playObject->play(); -- d->playObjects.append( playObject ); -+ KDE::Multimedia::SimplePlayer* playObject = new KDE::Multimedia::SimplePlayer( this ); - d->playObjectEventMap.insert( playObject, eventId ); -+ playObject->play( soundURL ); - - if ( !d->playTimer ) - { -@@ -532,8 +363,7 @@ bool KNotify::notifyBySound( const QStri - } - if ( !d->playTimer->isActive() ) - d->playTimer->start( 1000 ); --#endif -- return true; -+ return playObject->isPlaying(); - - } else if(!d->externalPlayer.isEmpty()) { - // use an external player to play the sound -@@ -686,58 +516,39 @@ void KNotify::setVolume( int volume ) - d->volume = volume; - } - -+void KNotify::slotPlayerProcessExited( KProcess *proc ) -+{ -+ soundFinished( d->externalPlayerEventId, -+ (proc->normalExit() && proc->exitStatus() == 0) ? PlayedOK : Unknown ); -+} -+ -+ - void KNotify::playTimeout() - { --#ifndef WITHOUT_ARTS -- for ( QPtrListIterator< KDE::PlayObject > it(d->playObjects); *it;) -+qDebug("KNotify::playTimeout"); -+ for( QMap< KDE::Multimedia::SimplePlayer*, int >::Iterator it = d->playObjectEventMap.begin(); -+ it != d->playObjectEventMap.end(); -+ ) - { -- QPtrListIterator< KDE::PlayObject > current = it; -+ QMap< KDE::Multimedia::SimplePlayer*, int >::Iterator current = it; - ++it; -- if ( (*current)->state() != Arts::posPlaying ) -+ KDE::Multimedia::SimplePlayer* playObject = current.key(); -+ if ( !playObject->isPlaying() || playObject->totalTime() <= 0 ) // may be "playing" even if there's an error - { -- QMap<KDE::PlayObject*,int>::Iterator eit = d->playObjectEventMap.find( *current ); -- if ( eit != d->playObjectEventMap.end() ) -- { -- soundFinished( *eit, PlayedOK ); -- d->playObjectEventMap.remove( eit ); -- } -- d->playObjects.remove( current ); -+ soundFinished( *current, PlayedOK ); -+ d->playObjectEventMap.remove( current ); -+ disconnect( playObject, SIGNAL( finished() ) ); -+ playObject->stop(); -+ emit deletePlayObject(playObject); - } - } -- if ( !d->playObjects.count() ) -+ if ( !d->playObjectEventMap.count() ) - d->playTimer->stop(); --#endif - } - --bool KNotify::isPlaying( const QString& soundFile ) const -+void KNotify::objectDeleter( KDE::Multimedia::SimplePlayer *playObject ) - { --#ifndef WITHOUT_ARTS -- for ( QPtrListIterator< KDE::PlayObject > it(d->playObjects); *it; ++it) -- { -- if ( (*it)->mediaName() == soundFile ) -- return true; -- } --#endif -- return false; --} -- --void KNotify::slotPlayerProcessExited( KProcess *proc ) --{ -- soundFinished( d->externalPlayerEventId, -- (proc->normalExit() && proc->exitStatus() == 0) ? PlayedOK : Unknown ); --} -- --void KNotify::abortFirstPlayObject() --{ --#ifndef WITHOUT_ARTS -- QMap<KDE::PlayObject*,int>::Iterator it = d->playObjectEventMap.find( d->playObjects.getFirst() ); -- if ( it != d->playObjectEventMap.end() ) -- { -- soundFinished( it.data(), Aborted ); -- d->playObjectEventMap.remove( it ); -- } -- d->playObjects.removeFirst(); --#endif -+ delete playObject; - } - - void KNotify::soundFinished( int eventId, PlayingFinishedStatus reason ) -@@ -780,16 +591,6 @@ WId KNotify::checkWinId( const QString & - return senderWinId; - } - --void KNotify::restartedArtsd() --{ --#ifndef WITHOUT_ARTS -- delete d->audioManager; -- d->audioManager = new KAudioManagerPlay( soundServer ); -- d->audioManager->setTitle( i18n( "KDE System Notifications" ) ); -- d->audioManager->setAutoRestoreID( "KNotify Aman Play" ); --#endif --} -- - void KNotify::sessionReady() - { - if( d->inStartup && !d->startupEvents.isEmpty()) -Index: arts/knotify/knotify.h -=================================================================== ---- arts/knotify/knotify.h.orig -+++ arts/knotify/knotify.h -@@ -24,9 +24,10 @@ - #include <knotifyclient.h> - #include <dcopobject.h> - -+#include <kdemm/simpleplayer.h> -+ - class KNotifyPrivate; - class KProcess; --class KConfig; - - class KNotify : public QObject, public DCOPObject - { -@@ -76,19 +77,16 @@ private: - bool notifyByStderr(const QString &text); - bool notifyByPassivePopup(const QString &text, const QString &appName, - KConfig* eventsFile, WId winId ); -- bool notifyByExecute(const QString &command, -- const QString& event, -- const QString& fromApp, -+ bool notifyByExecute(const QString &command, -+ const QString& event, -+ const QString& fromApp, - const QString& text, - int winId, - int eventId ); -- bool notifyByTaskbar( WId winId ); -- -- bool isPlaying( const QString& soundFile ) const; -- -- void soundFinished( int eventId, PlayingFinishedStatus reason ); -- void abortFirstPlayObject(); -- -+ bool notifyByTaskbar( WId winId ); -+ -+ void soundFinished( int eventId, PlayingFinishedStatus reason ); -+ - WId checkWinId( const QString& appName, WId senderWinId ); - - /** -@@ -97,9 +95,13 @@ private: - bool isGlobal(const QString &eventname); - - private slots: -- void playTimeout(); -- void slotPlayerProcessExited( KProcess *proc ); -- void restartedArtsd(); -+ void playTimeout(); -+ void slotPlayerProcessExited( KProcess *proc ); -+ void objectDeleter( KDE::Multimedia::SimplePlayer* ); -+ -+signals: -+ void deletePlayObject( KDE::Multimedia::SimplePlayer* ); -+ - - private: - KNotifyPrivate* d; -Index: arts/knotify/Makefile.am -=================================================================== ---- arts/knotify/Makefile.am.orig -+++ arts/knotify/Makefile.am -@@ -3,12 +3,13 @@ INCLUDES= -I$(top_srcdir)/arts/kde -I$(i - - ####### Files - --kde_module_LTLIBRARIES = knotify.la -+#kde_module_LTLIBRARIES = knotify.la -+bin_PROGRAMS = -+lib_LTLIBRARIES = -+kdeinit_LTLIBRARIES = knotify.la - - knotify_la_SOURCES = knotify.cpp knotify.skel --if include_ARTS --knotify_la_LIBADD = -lsoundserver_idl -lqtmcop $(LIB_KDEUI) $(top_builddir)/arts/kde/libartskde.la --endif -+knotify_la_LIBADD = $(LIB_KDEUI) $(top_builddir)/kdemm/libkdemm.la - knotify_la_LDFLAGS = $(all_libraries) -module -avoid-version - knotify_la_METASOURCES = AUTO - -Index: kdemm/channel.h -=================================================================== ---- kdemm/channel.h.orig -+++ kdemm/channel.h -@@ -83,7 +83,7 @@ namespace Multimedia - * You can not instantiate channels yourself, use the Factory to - * create them. - */ -- Channel( const QString & name, const QString & type, Direction direction, -+ Channel( const QString & channelName, const QString & type, Direction direction, - QObject * parent = 0, const char * name = 0 ); - - private: -Index: kdemm/factory.cpp -=================================================================== ---- kdemm/factory.cpp.orig -+++ kdemm/factory.cpp -@@ -80,6 +80,7 @@ class Factory::Private - ":\n" << e << endl; - } - } -+#if 0 - if( 0 == backend ) - { - if( offers.size() == 0 ) -@@ -100,6 +101,7 @@ class Factory::Private - i18n( "Unable to use any of the available Multimedia Backends" ), details ); - } - } -+#endif - } - - Backend * backend; -Index: kdemm/simpleplayer.cpp -=================================================================== ---- kdemm/simpleplayer.cpp.orig -+++ kdemm/simpleplayer.cpp -@@ -50,10 +50,12 @@ SimplePlayer::SimplePlayer( QObject * pa - connect( Factory::self(), SIGNAL( recreateObjects() ), SLOT( recreateObjects() ) ); - d->channel = Factory::self()->createChannel( KGlobal::instance()->aboutData()->programName() ); - d->player = Factory::self()->createPlayer(); -- d->player->setOutputChannel( d->channel ); -- connect( d->player, SIGNAL( stateChanged( KDE::Multimedia::Player::State, KDE::Multimedia::Player::State ) ), -+ if ( d->player ) { -+ d->player->setOutputChannel( d->channel ); -+ connect( d->player, SIGNAL( stateChanged( KDE::Multimedia::Player::State, KDE::Multimedia::Player::State ) ), - SLOT( stateChanged( KDE::Multimedia::Player::State, KDE::Multimedia::Player::State ) ) ); -- connect( d->player, SIGNAL( finished() ), SIGNAL( finished() ) ); -+ connect( d->player, SIGNAL( finished() ), SIGNAL( finished() ) ); -+ }; - } - - SimplePlayer::~SimplePlayer() -@@ -64,6 +66,8 @@ SimplePlayer::~SimplePlayer() - - void SimplePlayer::play( const KURL & url ) - { -+ if( ! d->player ) -+ return; - if( isPaused() && url == d->url ) - { - d->player->play(); -@@ -78,51 +82,71 @@ void SimplePlayer::play( const KURL & ur - - void SimplePlayer::pause() - { -+ if( ! d->player ) -+ return; - d->player->pause(); - } - - void SimplePlayer::stop() - { -+ if( ! d->player ) -+ return; - d->player->stop(); - } - - long SimplePlayer::totalTime() const - { -+ if( ! d->player ) -+ return 0; - return d->player->totalTime(); - } - - long SimplePlayer::currentTime() const - { -+ if( ! d->player ) -+ return 0; - return d->player->currentTime(); - } - - void SimplePlayer::seek( long ms ) - { -+ if( ! d->player ) -+ return; - d->player->seek( ms ); - } - - float SimplePlayer::volume() const - { -+ if( ! d->player ) -+ return 0; - return d->channel->volume(); - } - - void SimplePlayer::setVolume( float v ) - { -+ if( ! d->player ) -+ return; - d->channel->setVolume( v ); - } - - bool SimplePlayer::isPlaying() const - { -+ if( ! d->player ) -+ return false; - return ( d->player->state() == Player::Playing ); - } - - bool SimplePlayer::isPaused() const - { -+ if( ! d->player ) -+ return false; - return ( d->player->state() == Player::Paused ); - } - - void SimplePlayer::stateChanged( Player::State ns, Player::State os ) - { -+ if( ! d->player ) -+ return; - if( os == Player::Loading && ns == Player::Stopped ) - d->player->play(); - } -@@ -135,7 +159,8 @@ void SimplePlayer::deleteYourObjects() - d->title = d->channel->channelName(); - d->type = d->channel->channelType(); - -- d->player->stop(); -+ if( d->player ) -+ d->player->stop(); - - delete d->player; - delete d->channel; -@@ -149,6 +174,9 @@ void SimplePlayer::recreateObjects() - d->channel->setVolume( d->channelvolume ); - - d->player = Factory::self()->createPlayer(); -+ if( ! d->player ) -+ return; -+ - d->player->setOutputChannel( d->channel ); - - if( d->state != Player::NoMedia ) |