From 0ff89c3c75b175aba9e57661c1cce9003dd8382e Mon Sep 17 00:00:00 2001
From: Dario Casalinuovo <b.vitruvio@gmail.com>
Date: Thu, 9 Apr 2015 16:02:01 +0200
Subject: [PATCH 12/13] media_server: watch for media services status and call
CleanupDormantInfos when media_addon_server die.
---
src/servers/media/media_server.cpp | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/servers/media/media_server.cpp b/src/servers/media/media_server.cpp
index def5467..bca1e6b 100644
a
|
b
|
char __dont_remove_copyright_from_binary[] = "Copyright (c) 2002, 2003 "
|
43 | 43 | #include <Roster.h> |
44 | 44 | #include <MediaDefs.h> |
45 | 45 | #include <MediaFormats.h> |
| 46 | #include <MediaRoster.h> |
46 | 47 | #include <Messenger.h> |
47 | 48 | |
48 | 49 | #include <syscalls.h> |
… |
… |
ServerApp::ServerApp()
|
112 | 113 | fControlThread = spawn_thread(_ControlThread, "media_server control", 105, |
113 | 114 | this); |
114 | 115 | resume_thread(fControlThread); |
| 116 | |
| 117 | BMediaRoster* roster = BMediaRoster::Roster(); |
| 118 | if (roster->StartWatching(BMessenger(this, this), |
| 119 | B_MEDIA_SERVER_QUIT) != B_OK) { |
| 120 | TRACE("ServerApp: can't watch for B_MEDIA_SERVER_QUIT"); |
| 121 | } |
115 | 122 | } |
116 | 123 | |
117 | 124 | |
| 125 | |
118 | 126 | ServerApp::~ServerApp() |
119 | 127 | { |
120 | 128 | TRACE("ServerApp::~ServerApp()\n"); |
… |
… |
ServerApp::~ServerApp()
|
127 | 135 | delete gAppManager; |
128 | 136 | delete gNodeManager; |
129 | 137 | delete gMediaFilesManager; |
| 138 | |
| 139 | BMediaRoster* roster = BMediaRoster::CurrentRoster(); |
| 140 | if (roster->StopWatching(BMessenger(this, this), |
| 141 | B_MEDIA_SERVER_QUIT) != B_OK) { |
| 142 | TRACE("ServerApp: can't unwatch for B_MEDIA_SERVER_QUIT"); |
| 143 | } |
130 | 144 | } |
131 | 145 | |
132 | 146 | |
… |
… |
ServerApp::MessageReceived(BMessage* msg)
|
918 | 932 | case MEDIA_SERVER_ADD_SYSTEM_BEEP_EVENT: |
919 | 933 | gMediaFilesManager->HandleAddSystemBeepEvent(msg); |
920 | 934 | break; |
| 935 | |
| 936 | case B_MEDIA_SERVER_QUIT: |
| 937 | gNodeManager->CleanupDormantFlavorInfos(); |
| 938 | break; |
| 939 | |
921 | 940 | default: |
922 | 941 | BApplication::MessageReceived(msg); |
923 | 942 | printf("\nmedia_server: unknown message received:\n"); |