Jump to content
Mumble forums

Creating a Windows DLL Client


Recommended Posts

I am brand new to Mumble and just trying to learn the inner workings.

 

I would like to integrate microphone streams into my game and this looks like an option.

 

I have installed my own server. Is there an API that I can use to create a Windows C++ dll to control the client side and programatically connect to channels and control the sound?

 

I saw https://github.com/mumble-voip/libmumble but I am not sure if that is what I need

 

Thanks,

Mark

Link to post
Share on other sites
  • Administrators
10 hours ago, MarkR said:

I would like to integrate microphone streams into my game and this looks like an option.

Could you elaborate a bit more on what you have in mind specifically?

 

10 hours ago, MarkR said:

I saw https://github.com/mumble-voip/libmumble but I am not sure if that is what I need

Something like this would probably be what you needed for what you have in mind, but that particular project has never been completed and is now completely unmaintained. Thus this is not really usable at all.

Unfortunately though there currently is not replacement. We are aiming to provide a library-like version of the Mumble client but as of now that does not work.

 

Depending on what you need exactly though, you could either link to the "Link" plugin of Mumble (https://wiki.mumble.info/wiki/Link) or if you require more control and/or interaction with Mumble there is also a brand new general purpose plugin framework that got merged into Mumble master just recently. This will be part of the upcoming Mumble 1.4.0.

As it stands there is no documentation on this yet, but you can either ask me (I am the author of that framework), have a look at https://github.com/mumble-voip/mumble/pull/3743 (though the changes in there are probably a bit too excessive), https://github.com/mumble-voip/mumble-plugin-cpp (if your game is written in C++) in combination with https://github.com/mumble-voip/mumble-json-bridge/tree/master/plugin, or if you want to see how a bare-bones plugin looks like that is using the raw C API, have a look at https://github.com/mumble-voip/mumble/tree/master/plugins/testPlugin.

Link to post
Share on other sites

I am using Gamemaker. You can include DLL's and make calls from the game code.

 

Initially I need to build something basic in the DLL that does the following:

1. Connect to my Murmur server

2. Create a channel if it is not there

3. Enter the channel

4. Mute/Unmute

5. Leave the channel

 

I want all the interaction to be from the game so that it is transparent.

Link to post
Share on other sites
  • Administrators

Okay then you can either create your own plugin that implements an arbitrary interfacing to your game or you can use the Mumble JSON bridge (see links above) and call the corresponding CLI from your game to pass down instructions via JSON.

 

Note however that

  1. The current API does not yet support all of what you need. For instance creating a channel or joining/leaving a specific server is not yet possible. If you are interested we could make that work though. It shouldn't be too hard to add that
  2. In order for the plugin-approach to work the official Mumble client has to be running. This will most likely involve users having to start it manually. It would also mean that there is a GUI the user could interact with as there currently is no headless mode.
Link to post
Share on other sites
  • Administrators
22 hours ago, MarkR said:

So it sounds like I need to wait until that support is available in the API. Was that the original intent of https://github.com/mumble-voip/libmumble ?

Yes and no. Depends on what API you are referring to. What I spoke of was the plugin API which is completely unrelated to the libmumble repo. If however you speak of API in the sense that Mumble ships as a library that has an API through which you can interact with it instead of as a GUI, then yes that is exactly what libmumble was aiming at.

 

Note however that it will probably take a significant amount of time until we get that kind of stuff sorted out.

 

On the other hand you could look into whether there is a possibility to use e.g. PyMumble (a Mumble client Bot framework) as a DLL. Not sure if it is possible to pack Python libs in this way but if it is, you could use that to get what you want.

Link to post
Share on other sites

Yes, I want to ship the library with the game.

 

PyMumble sounds like a possibility. If it can handle the creating channels and streaming the audio without a GUI then I can look at wrapping that in C++ and exposing the DLL. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...