Possible rakVoice mod design issue

BlitzMax Forums/Brucey's Modules/Possible rakVoice mod design issue

Retimer(Posted 2009) [#1]
I'm finally looking through the raknetFmod source, and i'm slightly confused. It seems like the module does a bit too much work to simplify things for you, dropping some flexibility.

Maybe I missed something, but it seems like the module only allows for 1 on 1 voice communication, without any control over actually sending the audio buffers custom-wise.

Since i'm using your Raknet wrap now, I was hoping I could throw together a little voice chat feature into my lobby as well so users could submit audio to the server, and the server would send the audio to everyone in their channel, but I see no way of doing that without completely rewriting the module, or have I been flat out ignorant on that regard?

I'm aware of the alternative of having each client connect to the person who is hosting the audio, but i'm really against that type of network design since it kills the end users bandwidth and due to closed ports, firewalls, etc, and it's a security issue for the users connecting to the host user.

I'm not complaining at all, as this feature is absolutely amazing for blitzmax either way, I just would like to know if i'm wrong about the flexibility of the module.


Brucey(Posted 2009) [#2]
I can expose SendFrame(), IsSendingVoiceDataTo(), and ReceiveFrame() if you want.

Otherwise I'm not sure what the problem is, as I've exposed the Voice API as-is... or am I completely missing something?


Retimer(Posted 2009) [#3]
as I've exposed the Voice API as-is


It works the same as-is, but the example isn't the conversion of the cpp version. The module is a 'wrap' of the fmod example it seems, not a conversion using a wrapped command set like the rest of your modules.


Like this:



That being the c++ example, you wrote your own simplified (for our sake) workaround for it for the blitzmax example with the helper, which does the exact same thing in the end except there's no access to any of the core functions (broadcast, sendframe, receiveframe, fmodlock/unlock, getRecordPosition,etc)....it's only calling the actual c++ example it seems.

So we don't have access to do anything really different with the mod other then what's provided in the example. That's what I was trying to get at with the flexibility of the module, sorry for making everything confusing as hell for the millionth time.


Brucey(Posted 2009) [#4]
I had just assumed everything would be more efficient if I left it all in C++

But... I've no problems with lifting everything up into BlitzMax if it helps you.


Retimer(Posted 2009) [#5]
Would really appreciate it :)

It's probobly more efficient, and definitely a lot more simple as there's less to understand with your version of the example, but unfortunately like I said, there's really no flexibility to do much else with the module.

If anyone else is using the module in a live project already and doesn't want it to change, I won't keep pushing for it and just try wrapping it up myself.