From 8f279618017d491e8f5c1cefb663581ea73d8f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 14 Oct 2015 21:47:54 +0200 Subject: [PATCH] midi_server: Converted to BServer, launched on demand. --- data/launch/system | 2 +- src/servers/midi/Jamfile | 2 +- src/servers/midi/MidiServerApp.cpp | 22 +++++++++++++++++----- src/servers/midi/MidiServerApp.h | 8 ++++---- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/data/launch/system b/data/launch/system index fddac8f402..8ff688c775 100644 --- a/data/launch/system +++ b/data/launch/system @@ -40,7 +40,7 @@ service x-vnd.Haiku-media_server { service x-vnd.Haiku-midi_server { launch /system/servers/midi_server no_safemode - legacy + on_demand } service x-vnd.Haiku-mail_daemon { diff --git a/src/servers/midi/Jamfile b/src/servers/midi/Jamfile index 37a022f588..4a503bbc12 100644 --- a/src/servers/midi/Jamfile +++ b/src/servers/midi/Jamfile @@ -2,7 +2,7 @@ SubDir HAIKU_TOP src servers midi ; SetSubDirSupportedPlatformsBeOSCompatible ; -UsePrivateHeaders midi shared storage ; +UsePrivateHeaders app midi shared storage ; Server midi_server : MidiServerApp.cpp diff --git a/src/servers/midi/MidiServerApp.cpp b/src/servers/midi/MidiServerApp.cpp index 90d8ed755b..08e679670c 100644 --- a/src/servers/midi/MidiServerApp.cpp +++ b/src/servers/midi/MidiServerApp.cpp @@ -1,3 +1,11 @@ +/* + * Copyright 2002-2015, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Matthijs Hollemans + */ + /* * Copyright (c) 2002-2004 Matthijs Hollemans * @@ -36,9 +44,9 @@ using std::nothrow; -MidiServerApp::MidiServerApp() +MidiServerApp::MidiServerApp(status_t& error) : - BApplication(MIDI_SERVER_SIGNATURE) + BServer(MIDI_SERVER_SIGNATURE, true, &error) { TRACE(("Running Haiku MIDI server")) @@ -816,7 +824,11 @@ MidiServerApp::_DumpEndpoints() int main() { - MidiServerApp app; - app.Run(); - return 0; + status_t status; + MidiServerApp app(status); + + if (status == B_OK) + app.Run(); + + return status == B_OK ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/src/servers/midi/MidiServerApp.h b/src/servers/midi/MidiServerApp.h index 3febf3ea56..aa2b3d674b 100644 --- a/src/servers/midi/MidiServerApp.h +++ b/src/servers/midi/MidiServerApp.h @@ -9,7 +9,7 @@ #define MIDI_SERVER_APP_H -#include +#include #include #include "DeviceWatcher.h" @@ -24,16 +24,16 @@ struct endpoint_t; incoming messages from libmidi2.so, and notifies the apps when something interesting happens. */ -class MidiServerApp : public BApplication { +class MidiServerApp : public BServer { public: - MidiServerApp(); + MidiServerApp(status_t& error); virtual ~MidiServerApp(); virtual void AboutRequested(); virtual void MessageReceived(BMessage* msg); private: - typedef BApplication super; + typedef BServer super; void _OnRegisterApp(BMessage* msg); void _OnCreateEndpoint(BMessage* msg);