I am one of the developers of Nexuiz (a first-person shooter) and would like to add voice chat support to it, and want to know if Mumble is what I am looking for. How would I best achieve my first-person shooter voice chat with Mumble?
The requirements would be:
I am thinking of an implementation like this:
In deathmatch (everyone against everyone), positional audio must be forcefully disabled, while it would be okay in team matches to hear where your team mates are.
So, what we would need in the interface to Mumble is:
Is this already possible by a Mumble plugin, and if yes, can you point me in the direction? Or even better, is there already a way to achive all that without making a specific plugin, by using existing IPC means of Mumble? Nexuiz can already send UDP packets of almost arbitrary content (well, the packets all start with \xFF\xFF\xFF\xFF and then can only contain ASCII) to any IP, so a UDP socket listening on 127.0.0.1 would be one of many solutions to this.
Hm... dbus looks indeed like the interface I can use... but... is there any specification on the Murmur and Mumble DBus requests? And... how to do that from C, as the engine Nexuiz uses is written in C? As my idea only requires SENDING dbus requests... is it possible to send a request to dbus without waiting for it to complete (so it does not lag the game server)?
How convenient. DBus is written in C too ;)
Oneshotting requests is possible, but requires you to move outside the normal API calls. Might I suggest a DBus thread instead?
i think what you are looking for is something like this:
you could manage the murmur server from a nexuiz plugin through the murmur dbus interface
otherwise its not event driven and need to be polled
but then murmur is running beside nexuiz.
that link plugin for win32 hooks some functions from the game or read some memory adresses i think.. but since nexuiz can be compiled by everyone it have to be done to make it dynamicaly searching the memory for that adresses.
The Link plugin is only to provide Mumble with positional audio, so it's not what you're looking for.
Mumble and Murmur use DBus as IPC. Have a look at http://sourceforge.net/tracker/index.php?func=detail&aid=1817016&group_id=147372&atid=768008 which should address your needs :)