From 2795d5dca564b5b03fbbfbcc60c04151d738b92d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 22 Nov 2009 16:26:12 +0000 Subject: [PATCH] Play startup sound after the first defaults rescan is done. This fixed #1902. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34189 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/media/DataExchange.h | 4 ++++ src/servers/media/DefaultManager.cpp | 3 +++ src/servers/media_addon/main.cpp | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/headers/private/media/DataExchange.h b/headers/private/media/DataExchange.h index d8dbb83edc..323835ed2c 100644 --- a/headers/private/media/DataExchange.h +++ b/headers/private/media/DataExchange.h @@ -104,6 +104,7 @@ enum { // Raw port based communication enum { ADDONSERVER_RESCAN_MEDIAADDON_FLAVORS = 0x50, + ADDONSERVER_RESCAN_FINISHED_NOTIFY, SERVER_MESSAGE_START = 0x100, SERVER_REGISTER_APP, @@ -715,6 +716,9 @@ struct addonserver_rescan_mediaaddon_flavors_command : command_data { media_addon_id addonid; }; +struct addonserver_rescan_finished_notify_command : command_data { +}; + struct server_register_mediaaddon_request : request_data { xfer_entry_ref ref; }; diff --git a/src/servers/media/DefaultManager.cpp b/src/servers/media/DefaultManager.cpp index 43bcf73cd4..8896cb5e90 100644 --- a/src/servers/media/DefaultManager.cpp +++ b/src/servers/media/DefaultManager.cpp @@ -332,6 +332,9 @@ DefaultManager::RescanThread() } else { ERROR("DefaultManager: Did not try to connect mixer and soundcard\n"); } + + addonserver_rescan_finished_notify_command cmd; + SendToAddonServer(ADDONSERVER_RESCAN_FINISHED_NOTIFY, &cmd, sizeof(cmd)); printf("DefaultManager::RescanThread() leave\n"); } diff --git a/src/servers/media_addon/main.cpp b/src/servers/media_addon/main.cpp index 642d1c3e00..df65d262a6 100644 --- a/src/servers/media_addon/main.cpp +++ b/src/servers/media_addon/main.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -101,6 +102,7 @@ private: port_id fControlPort; thread_id fControlThread; bool fStartup; + bool fStartupSound; typedef BApplication inherited; }; @@ -108,7 +110,8 @@ private: MediaAddonServer::MediaAddonServer(const char *sig) : BApplication(sig), - fStartup(true) + fStartup(true), + fStartupSound(true) { CALLED(); fMediaRoster = BMediaRoster::Roster(); @@ -168,7 +171,14 @@ MediaAddonServer::HandleMessage(int32 code, const void *data, size_t size) _DormantNodeManager->PutAddon(command->addonid); break; } - + + case ADDONSERVER_RESCAN_FINISHED_NOTIFY: + if (fStartupSound) { + system_beep(MEDIA_SOUNDS_STARTUP); + fStartupSound = false; + } + break; + default: ERROR("media_addon_server: received unknown message code %#08lx\n",code); }