⛏️ index : haiku.git

author SED4906 <sed4906birdie@gmail.com> 2024-10-21 16:16:58.0 -07:00:00
committer Adrien Destugues <pulkomandy@pulkomandy.tk> 2026-01-03 13:41:24.0 +00:00:00
commit
64f088f495bdd55903dd62bd8598e8a514355ed9 [patch]
tree
d7d9a2cbb7f430eec6a5a14653a56a0def14d8e0
parent
f081c0202dbcaeeb9f47ac9a6f3aaaa27fdb05be
download
64f088f495bdd55903dd62bd8598e8a514355ed9.tar.gz

BAlert: play user-selected sound

* Alert sounds are separate from notifications

Change-Id: I9e5545084faea354ddd339154c10b54d6479b404
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8477
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Diff

 headers/os/interface/Alert.h            |  1 +
 headers/private/media/MediaSounds.h     |  3 +++
 src/kits/interface/Alert.cpp            | 25 +++++++++++++++++++++++++
 src/kits/interface/Jamfile              |  2 +-
 src/servers/media/MediaFilesManager.cpp |  3 +++
 5 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/headers/os/interface/Alert.h b/headers/os/interface/Alert.h
index 69d8382..4707c32 100644
--- a/headers/os/interface/Alert.h
+++ b/headers/os/interface/Alert.h
@@ -107,6 +107,7 @@
			BBitmap*			_CreateTypeIcon();
			BButton*			_CreateButton(int32 which, const char* label);
			void				_Prepare();
			void				_PlaySound();

private:
			sem_id				fAlertSem;
diff --git a/headers/private/media/MediaSounds.h b/headers/private/media/MediaSounds.h
index 84835e1..e172ba4 100644
--- a/headers/private/media/MediaSounds.h
+++ b/headers/private/media/MediaSounds.h
@@ -13,6 +13,9 @@

#define MEDIA_SOUNDS_BEEP				"Beep"
#define MEDIA_SOUNDS_STARTUP			"Startup"
#define MEDIA_SOUNDS_INFORMATION_ALERT	"Information alert"
#define MEDIA_SOUNDS_IMPORTANT_ALERT	"Important alert"
#define MEDIA_SOUNDS_ERROR_ALERT		"Error alert"
#define MEDIA_SOUNDS_KEY_DOWN			"Key down"
#define MEDIA_SOUNDS_KEY_REPEAT			"Key repeat"
#define MEDIA_SOUNDS_KEY_UP				"Key up"
diff --git a/src/kits/interface/Alert.cpp b/src/kits/interface/Alert.cpp
index d8a6245..2063db8 100644
--- a/src/kits/interface/Alert.cpp
+++ b/src/kits/interface/Alert.cpp
@@ -6,6 +6,7 @@
 *		Axel Dörfler, axeld@pinc-software.de
 *		Erik Jaesler, erik@cgsoftware.com
 *		John Scipione, jscipione@gmail.com
 *		Ron Ben Aroya, sed4906birdie@gmail.com
 */


@@ -18,6 +19,7 @@

#include <stdio.h>

#include <Beep.h>
#include <Bitmap.h>
#include <Button.h>
#include <ControlLook.h>
@@ -25,6 +27,7 @@
#include <FindDirectory.h>
#include <IconUtils.h>
#include <LayoutBuilder.h>
#include <MediaSounds.h>
#include <MenuField.h>
#include <MessageFilter.h>
#include <Path.h>
@@ -279,6 +282,7 @@

	_Prepare();
	Show();
	_PlaySound();

	if (window != NULL) {
		status_t status;
@@ -316,6 +320,7 @@
	fInvoker = invoker;
	_Prepare();
	Show();
	_PlaySound();
	return B_OK;
}

@@ -651,6 +656,26 @@

	MoveTo(static_cast<BWindow*>(this)->AlertPosition(frame));
		// Hidden by BAlert::AlertPosition()
}


void
BAlert::_PlaySound()
{
	switch (Type()) {
		case B_INFO_ALERT:
			system_beep(MEDIA_SOUNDS_INFORMATION_ALERT);
			break;
		case B_WARNING_ALERT:
			system_beep(MEDIA_SOUNDS_IMPORTANT_ALERT);
			break;
		case B_STOP_ALERT:
			system_beep(MEDIA_SOUNDS_ERROR_ALERT);
			break;

		default:
			break;
	}
}


diff --git a/src/kits/interface/Jamfile b/src/kits/interface/Jamfile
index 18b3f68..2bec764 100644
--- a/src/kits/interface/Jamfile
+++ b/src/kits/interface/Jamfile
@@ -20,7 +20,7 @@
SetSubDirSupportedPlatforms haiku libbe_test ;

UseLibraryHeaders agg ;
UsePrivateHeaders app input print interface locale shared support tracker ;
UsePrivateHeaders app input print interface locale media shared support tracker ;

UseHeaders [ FDirName $(HAIKU_TOP) src kits tracker ] ;

diff --git a/src/servers/media/MediaFilesManager.cpp b/src/servers/media/MediaFilesManager.cpp
index 17d30e1..ba72c70 100644
--- a/src/servers/media/MediaFilesManager.cpp
+++ b/src/servers/media/MediaFilesManager.cpp
@@ -38,6 +38,9 @@
	} kInitialItems[] = {
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_BEEP},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_STARTUP},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_INFORMATION_ALERT},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_IMPORTANT_ALERT},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_ERROR_ALERT},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_KEY_DOWN},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_KEY_REPEAT},
		{MEDIA_TYPE_SOUNDS, MEDIA_SOUNDS_KEY_UP},