IrrKlang.NET |

# IrrKlang Namespace

the main namespace where every class of the sound engine can be found

Namespace hierarchy

### Classes

Class | Description
--- | ---
IAudioRecorder | Interface to an audio recorder.
ISound | Represents a sound which is currently played. You can stop the sound or change the volume or whatever using this interface. Don't create sounds using new ISound, this won't work anyway. You can get an instance of an ISonud class by calling ISoundEngine::Play2D or Play3D.
ISoundDeviceList | A list of sound devices for a sound driver. Use irrklang::createSoundDeviceList() to create this list. The function createIrrKlangDevice() has a parameter 'deviceID' which takes the value returned by ISoundDeviceList::getDeviceID() and uses that device then. The list of devices in ISoundDeviceList usually also includes the default device which is the first entry and has an empty deviceID string ("") and the description "default device".*/
ISoundEffectControl | Interface to control the active sound effects (echo, reverb,...) of an ISound object, a playing sound. Sound effects such as chorus, distorsions, echo, reverb and similar can be controlled using this. An instance of this interface can be obtained via ISound::getSoundEffectControl(). The sound containing this interface has to be started via ISoundEngine::play2D() or ISoundEngine::play3D() with the flag enableSoundEffects=true, otherwise no acccess to this interface will be available. For the DirectSound driver, these are effects available since DirectSound8. For most effects, sounds should have a sample rate of 44 khz and should be at least 150 milli seconds long for optimal quality when using the DirectSound driver.
ISoundEngine |
ISoundSource | A sound source describes an input file (.ogg, .mp3 or .wav) and its default settings. It provides some informations about the sound source like the play lenght and can have default settings for volume, distances for 3d etc.

### Interfaces

Interface | Description
--- | ---
IFileFactory | Interface to overwrite opening files. Derive your own class from IFileFactory, overwrite the openFile() method and return your own System::IO::Stream to overwrite file access of irrKlang. Use ISoundEngine::addFileFactory() to let irrKlang know about your class. Example code can be found in the tutorial 04.OverrideFileAccess.
ISoundStopEventReceiver | Interface to be implemented by the user, which recieves sound stop events. The interface has only one method to be implemented by the user: OnSoundStopped(). Implement this interface and set it via ISound::setSoundStopEventReceiver(). The sound stop event is guaranteed to be called when a sound or sound stream is finished, either because the sound reached its playback end, its sound source was removed, ISoundEngine::stopAllSounds() has been called or the whole engine was deleted.

### Structures

Structure | Description
--- | ---
AudioFormat |
EventForwarder | Internal class, do not use.
FileFactoryForwarder | Internal class, do not use.
StreamForwarder | Internal class, do not use.
Vector3D | 3d vector class with lots of operators and methods. This class has been ported directly from the native C++ Irrlicht Engine, so it may not be 100% complete yet and the design may not be 100% .NET like.

### Enumerations

Enumeration | Description
--- | ---
SampleFormat |
SoundDeviceListType | type of a sound device list
SoundEngineOptionFlag | An enumeration for all options for starting up the sound engine When using createSoundEngine, use a combination of this these options parameter to start up the engine.
SoundOutputDriver | An enum for all types of output drivers irrKlang supports.
StopEventCause | An enumeration listing all reasons for a fired sound stop event
StreamMode | An enum for all types of output stream modes