media_server: watch for media services status
* It's now calling CleanupDormantInfos when media_addon_server die.
This commit is contained in:
@@ -43,6 +43,7 @@ char __dont_remove_copyright_from_binary[] = "Copyright (c) 2002, 2003 "
|
|||||||
#include <Roster.h>
|
#include <Roster.h>
|
||||||
#include <MediaDefs.h>
|
#include <MediaDefs.h>
|
||||||
#include <MediaFormats.h>
|
#include <MediaFormats.h>
|
||||||
|
#include <MediaRoster.h>
|
||||||
#include <Messenger.h>
|
#include <Messenger.h>
|
||||||
|
|
||||||
#include <syscalls.h>
|
#include <syscalls.h>
|
||||||
@@ -112,9 +113,16 @@ ServerApp::ServerApp()
|
|||||||
fControlThread = spawn_thread(_ControlThread, "media_server control", 105,
|
fControlThread = spawn_thread(_ControlThread, "media_server control", 105,
|
||||||
this);
|
this);
|
||||||
resume_thread(fControlThread);
|
resume_thread(fControlThread);
|
||||||
|
|
||||||
|
BMediaRoster* roster = BMediaRoster::Roster();
|
||||||
|
if (roster->StartWatching(BMessenger(this, this),
|
||||||
|
B_MEDIA_SERVER_QUIT) != B_OK) {
|
||||||
|
TRACE("ServerApp: can't watch for B_MEDIA_SERVER_QUIT");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ServerApp::~ServerApp()
|
ServerApp::~ServerApp()
|
||||||
{
|
{
|
||||||
TRACE("ServerApp::~ServerApp()\n");
|
TRACE("ServerApp::~ServerApp()\n");
|
||||||
@@ -127,6 +135,12 @@ ServerApp::~ServerApp()
|
|||||||
delete gAppManager;
|
delete gAppManager;
|
||||||
delete gNodeManager;
|
delete gNodeManager;
|
||||||
delete gMediaFilesManager;
|
delete gMediaFilesManager;
|
||||||
|
|
||||||
|
BMediaRoster* roster = BMediaRoster::CurrentRoster();
|
||||||
|
if (roster->StopWatching(BMessenger(this, this),
|
||||||
|
B_MEDIA_SERVER_QUIT) != B_OK) {
|
||||||
|
TRACE("ServerApp: can't unwatch for B_MEDIA_SERVER_QUIT");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -929,6 +943,11 @@ ServerApp::MessageReceived(BMessage* msg)
|
|||||||
case MEDIA_SERVER_ADD_SYSTEM_BEEP_EVENT:
|
case MEDIA_SERVER_ADD_SYSTEM_BEEP_EVENT:
|
||||||
gMediaFilesManager->HandleAddSystemBeepEvent(msg);
|
gMediaFilesManager->HandleAddSystemBeepEvent(msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case B_MEDIA_SERVER_QUIT:
|
||||||
|
gNodeManager->CleanupDormantFlavorInfos();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
BApplication::MessageReceived(msg);
|
BApplication::MessageReceived(msg);
|
||||||
printf("\nmedia_server: unknown message received:\n");
|
printf("\nmedia_server: unknown message received:\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user