summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/server.cpp22
-rw-r--r--core/launcher/server.h7
2 files changed, 28 insertions, 1 deletions
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp
index 15cd686..921b790 100644
--- a/core/launcher/server.cpp
+++ b/core/launcher/server.cpp
@@ -42,4 +42,6 @@
#include <opie2/odevicebutton.h>
#include <opie2/odevice.h>
+#include <opie2/oprocess.h>
+
#include <qtopia/applnk.h>
#include <qtopia/private/categories.h>
@@ -134,5 +136,6 @@ Server::Server() :
transferServer( 0 ),
packageHandler( 0 ),
- syncDialog( 0 )
+ syncDialog( 0 ),
+ process( 0 )
{
Global::setBuiltinCommands(builtins);
@@ -168,4 +171,6 @@ Server::Server() :
#endif
+ soundServerExited();
+
// start services
startTransferServer();
@@ -985,2 +990,17 @@ void Server::finishedQueuedRequests()
}
+void Server::startSoundServer() {
+ if ( !process ) {
+ process = new Opie::Core::OProcess( this );
+ connect(process, SIGNAL(processExited(Opie::Core::OProcess*)),
+ SLOT(soundServerExited()));
+ }
+
+ process->clearArguments();
+ *process << QPEApplication::qpeDir() + "bin/qss";
+ process->start();
+}
+
+void Server::soundServerExited() {
+ QTimer::singleShot(5000, this, SLOT(startSoundServer()));
+}
diff --git a/core/launcher/server.h b/core/launcher/server.h
index d71d68a..5b2f995 100644
--- a/core/launcher/server.h
+++ b/core/launcher/server.h
@@ -42,4 +42,5 @@ namespace Opie {
namespace Core {
class ODeviceButton;
+ class OProcess;
}
}
@@ -64,4 +65,8 @@ public slots:
private slots:
+ //@{
+ void startSoundServer();
+ void soundServerExited();
+ //@}
void activate(const Opie::Core::ODeviceButton*,bool);
void syncConnectionClosed( const QHostAddress & );
@@ -105,4 +110,6 @@ private:
bool directAccessRun;
QueuedRequestRunner *qrr;
+
+ Opie::Core::OProcess *process;
};