xref: /haiku/src/kits/support/Beep.cpp (revision 31ebfe61e4188d741ad680737a16d1eb21adbe35)
1 /*
2 ** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 ** Distributed under the terms of the Haiku License.
4 */
5 
6 
7 #include <Beep.h>
8 #include <stdio.h>
9 
10 #include "DataExchange.h"
11 #include "MediaSounds.h"
12 
13 
14 status_t
15 system_beep(const char *eventName)
16 {
17 	BMessenger messenger("application/x-vnd.Be.addon-host");
18 	if (!messenger.IsValid())
19 		return B_ERROR;
20 	BMessage msg(MEDIA_ADDON_SERVER_PLAY_MEDIA), reply;
21 	msg.AddString(MEDIA_NAME_KEY, eventName ? eventName : MEDIA_SOUNDS_BEEP);
22 	msg.AddString(MEDIA_TYPE_KEY, MEDIA_TYPE_SOUNDS);
23 
24 	status_t err = messenger.SendMessage(&msg, &reply);
25 	if ((err != B_OK)
26 		|| (reply.FindInt32("error", &err) != B_OK))
27 		err = B_BAD_REPLY;
28 	return err;
29 }
30 
31 
32 status_t
33 beep()
34 {
35 	return system_beep(NULL);
36 }
37 
38 
39 status_t
40 add_system_beep_event(const char *name, uint32 flags)
41 {
42 	BMessenger messenger("application/x-vnd.Be.media-server");
43 	if (!messenger.IsValid())
44 		return B_ERROR;
45 	BMessage msg(MEDIA_SERVER_ADD_SYSTEM_BEEP_EVENT), reply;
46 	msg.AddString(MEDIA_NAME_KEY, name);
47 	msg.AddString(MEDIA_TYPE_KEY, MEDIA_TYPE_SOUNDS);
48 	msg.AddInt32(MEDIA_FLAGS_KEY, flags);
49 
50 	status_t err = messenger.SendMessage(&msg, &reply);
51 	if ((err != B_OK)
52 		|| (reply.FindInt32("error", &err) != B_OK))
53 		err = B_BAD_REPLY;
54 	return err;
55 }
56 
57