Background
Open Audio Library (OpenAL) is a cross-platform 3D audio API that several game developers have used successfully in the past. The Open Tool Kit (OpenTK) developers provided a wrapper around the OpenAL API (along with OpenGL and OpenCL) which then provides the functionality to work with any Mono/.NET language.
Distributed Interactive Simulation (DIS) or IEEE 1278.1 has been around since 1995 and is mainly used by military organizations for conducting simulations. This protocol was chosen due to the work done by the MOVES institute at the Naval Post Graduate School in developing the Open-DIS implementation. As a contributor to that project, for the C# effort, my intent was to capitalize on the work done and create a product encompassing both OpenAL and Open-DIS.
Code Description
The code provided shows only one of the ways in which the OpenAL API can be used to capture and transmit audio over the internet. There are four modules and one main form application.
* AudioIn: Project that contains all necessary methods to Initialize, Start and Stop the microphone
* AudioOut: Project that contains all necessary methods to Initialize and Play audio data
* DISNET: Project that contains methods used to process DIS Protocol Data Units (PDU), in particular the Transmitter and Signal PDU
* Sockets: Project that contains the socket communication architecture. The implementation provided will use UDP broadcasting only.
* OpenDISRadioTransmitter: Project that contains the main form which encapsulates all the other classes to produce a simplistic radio interface. This form/application is the 'Radio' when referenced in the description below. A Radio in this case will have One Transmitter and multiple Receivers. Note that a simplistic GUI interface was designed on purpose as the main goal of this project was to introduce OpenAL and DIS.
Read more: Codeproject