Index: kaiman.cpp =================================================================== RCS file: /home/kde/kdemultimedia/kaiman/kaiman.cpp,v retrieving revision 1.46 diff -u -u -r1.46 kaiman.cpp --- kaiman.cpp 2000/09/24 01:48:35 1.46 +++ kaiman.cpp 2000/09/30 18:27:52 @@ -152,7 +152,9 @@ // remove effect from effect chain if ( !_soundServer.isNull() && !_soundServer.error() && !_volumeControl.isNull() && !_volumeControl.error() ) + { _soundServer.outstack().remove( _volumeEffectID ); + } // destroy aRts objects _playObject = Arts::PlayObject::null(); @@ -204,7 +206,7 @@ cmdline += QFile::encodeName(KStandardDirs::findExe(QString::fromLatin1("artsd"))); cmdline += " "; - cmdline += config->readEntry("Arguments", "-F 7 -S 8192").utf8(); + cmdline += config->readEntry("Arguments", "-F 5 -S 8192").utf8(); int status=system(cmdline); @@ -214,9 +216,13 @@ // make artsd fork-and-exit after starting to listen to connections // (and running artsd directly instead of using kdeinit), // but this is better than nothing. - sleep(5); - _soundServer = Reference("global:Arts_SimpleSoundServer"); - _playObjectFactory = Arts::Reference("global:Arts_PlayObjectFactory"); + int time = 0; + do + { + sleep(1); + _soundServer = Reference("global:Arts_SimpleSoundServer"); + _playObjectFactory = Arts::Reference("global:Arts_PlayObjectFactory"); + } while(++time < 5 && (_soundServer.isNull() || _playObjectFactory.isNull())); } if( _playObjectFactory.isNull() ) @@ -438,8 +444,6 @@ } _playObject = Arts::PlayObject::null(); - _volumeControl = Arts::StereoVolumeControl::null(); - _soundServer = Arts::SimpleSoundServer::null(); _lastPolledState = Arts::posIdle; _mediaManager->reset(); @@ -546,7 +550,9 @@ _volume = vol; if ( !_volumeControl.isNull() ) + { _volumeControl.scaleFactor(vol/100.0); + } KaimanStyleSlider* l_elem_volslider = static_cast(_style->find("Volume_Slider")); KaimanStyleValue* l_elem_volitem = static_cast(_style->find("Volume_Item"));