From b43b20d38faf191c5357a77320b8a91a3dad164d Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Thu, 23 Jul 2015 18:16:01 +0200 Subject: [PATCH] Media: Add support for media services notifications --- src/preferences/media/Media.cpp | 25 -------------------- src/preferences/media/Media.h | 2 -- src/preferences/media/MediaWindow.cpp | 33 +++++++++------------------ 3 files changed, 11 insertions(+), 49 deletions(-) diff --git a/src/preferences/media/Media.cpp b/src/preferences/media/Media.cpp index fae66ac0ca..c9f9cb1c73 100644 --- a/src/preferences/media/Media.cpp +++ b/src/preferences/media/Media.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include @@ -59,14 +58,6 @@ Media::Media() MediaListItem::SetIcons(&fIcons); fWindow = new MediaWindow(rect); - - be_roster->StartWatching(BMessenger(this)); -} - - -Media::~Media() -{ - be_roster->StopWatching(BMessenger(this)); } @@ -79,22 +70,6 @@ Media::InitCheck() } -void -Media::MessageReceived(BMessage* message) -{ - switch (message->what) { - case B_SOME_APP_LAUNCHED: - case B_SOME_APP_QUIT: - fWindow->PostMessage(message); - break; - - default: - BApplication::MessageReceived(message); - break; - } -} - - // #pragma mark - diff --git a/src/preferences/media/Media.h b/src/preferences/media/Media.h index 6587860946..b62d538870 100644 --- a/src/preferences/media/Media.h +++ b/src/preferences/media/Media.h @@ -23,9 +23,7 @@ static const char* kApplicationSignature = "application/x-vnd.Haiku-Media"; class Media : public BApplication { public: Media(); - virtual ~Media(); - virtual void MessageReceived(BMessage* message); status_t InitCheck(); private: diff --git a/src/preferences/media/MediaWindow.cpp b/src/preferences/media/MediaWindow.cpp index a2d031d74a..424b642c5c 100644 --- a/src/preferences/media/MediaWindow.cpp +++ b/src/preferences/media/MediaWindow.cpp @@ -167,6 +167,10 @@ MediaWindow::MediaWindow(BRect frame) fInitCheck(B_OK) { _InitWindow(); + + BMediaRoster* roster = BMediaRoster::Roster(); + roster->StartWatching(BMessenger(this, this), + B_MEDIA_SERVER_STARTED); } @@ -188,6 +192,10 @@ MediaWindow::~MediaWindow() if (file.InitCheck() == B_OK) file.Write(buffer, strlen(buffer)); } + + BMediaRoster* roster = BMediaRoster::CurrentRoster(); + roster->StopWatching(BMessenger(this, this), + B_MEDIA_SERVER_STARTED); } @@ -313,31 +321,12 @@ MediaWindow::MessageReceived(BMessage* message) item->AlterWindow(this); break; } - case B_SOME_APP_LAUNCHED: + case B_MEDIA_SERVER_STARTED: { PRINT_OBJECT(*message); - BString mimeSig; - if (message->FindString("be:signature", &mimeSig) == B_OK - && (mimeSig == "application/x-vnd.Be.addon-host" - || mimeSig == "application/x-vnd.Be.media-server")) { - _Notify(0.75, B_TRANSLATE("Starting media server" - B_UTF8_ELLIPSIS)); - } - break; - } - case B_SOME_APP_QUIT: - { - PRINT_OBJECT(*message); - BString mimeSig; - if (message->FindString("be:signature", &mimeSig) == B_OK) { - if (mimeSig == "application/x-vnd.Be.addon-host" - || mimeSig == "application/x-vnd.Be.media-server") { - BMediaRoster* roster = BMediaRoster::CurrentRoster(); - if (roster != NULL && roster->Lock()) - roster->Quit(); - } - } + _Notify(0.75, B_TRANSLATE("Starting media server" + B_UTF8_ELLIPSIS)); break; } default: