From a694c848c7275832d7b6ae2b69fc3c3974f5fb8b Mon Sep 17 00:00:00 2001 From: rich_b <56879808+rbarkmore@users.noreply.github.com> Date: Tue, 23 Jun 2020 14:39:31 -0400 Subject: [PATCH] Change CMakeLists.txt to add 2d_game project, and added irrKlang to LIBS. Added irrKlang.dll and ikpMP2.dll to dlls folder. Added irrKlang as a sub-folder under includes. Added irrKlang.lib to lib folder. At this point running cmake gave an error it couldn't find source files under 2d_game. Moved 2d_game source up one folder level, then cmake found the files. --- CMakeLists.txt | 5 +- dlls/ikpMP3.dll | Bin 0 -> 183296 bytes dlls/irrKlang.dll | Bin 0 -> 585216 bytes includes/irrKlang/ik_ESoundEngineOptions.h | 78 ++ includes/irrKlang/ik_ESoundOutputDrivers.h | 59 + includes/irrKlang/ik_EStreamModes.h | 31 + includes/irrKlang/ik_IAudioRecorder.h | 110 ++ includes/irrKlang/ik_IAudioStream.h | 49 + includes/irrKlang/ik_IAudioStreamLoader.h | 40 + includes/irrKlang/ik_IFileFactory.h | 41 + includes/irrKlang/ik_IFileReader.h | 50 + includes/irrKlang/ik_IRefCounted.h | 119 ++ includes/irrKlang/ik_ISound.h | 194 +++ includes/irrKlang/ik_ISoundDeviceList.h | 41 + includes/irrKlang/ik_ISoundEffectControl.h | 243 ++++ includes/irrKlang/ik_ISoundEngine.h | 436 +++++++ .../irrKlang/ik_ISoundMixedOutputReceiver.h | 46 + includes/irrKlang/ik_ISoundSource.h | 167 +++ .../irrKlang/ik_ISoundStopEventReceiver.h | 72 ++ includes/irrKlang/ik_IVirtualRefCounted.h | 48 + includes/irrKlang/ik_SAudioStreamFormat.h | 71 ++ includes/irrKlang/ik_irrKlangTypes.h | 96 ++ includes/irrKlang/ik_vec3d.h | 261 +++++ includes/irrKlang/irrKlang.h | 1040 +++++++++++++++++ lib/irrKlang.lib | Bin 0 -> 4380 bytes .../{0.full_source => }/audio/bleep.mp3 | Bin .../{0.full_source => }/audio/bleep.wav | Bin .../{0.full_source => }/audio/breakout.mp3 | Bin .../{0.full_source => }/audio/powerup.wav | Bin .../{0.full_source => }/audio/solid.wav | Bin .../{0.full_source => }/ball_object.cpp | 0 .../{0.full_source => }/ball_object.h | 0 .../{0.full_source => }/fonts/OCRAEXT.TTF | Bin .../3.2d_game/{0.full_source => }/game.cpp | 0 .../3.2d_game/{0.full_source => }/game.h | 0 .../{0.full_source => }/game_level.cpp | 0 .../{0.full_source => }/game_level.h | 0 .../{0.full_source => }/game_object.cpp | 0 .../{0.full_source => }/game_object.h | 0 .../3.2d_game/{0.full_source => }/glad.c | 0 .../{0.full_source => }/levels/four.lvl | 0 .../{0.full_source => }/levels/one.lvl | 0 .../{0.full_source => }/levels/three.lvl | 0 .../{0.full_source => }/levels/two.lvl | 0 .../particle_generator.cpp | 0 .../{0.full_source => }/particle_generator.h | 0 .../{0.full_source => }/post_processor.cpp | 0 .../{0.full_source => }/post_processor.h | 0 .../3.2d_game/{0.full_source => }/power_up.h | 0 .../3.2d_game/{0.full_source => }/program.cpp | 0 .../{0.full_source => }/progress/2.game.cpp | 0 .../{0.full_source => }/progress/2.game.h | 0 .../progress/2.program.cpp | 0 .../{0.full_source => }/progress/3.game.cpp | 0 .../{0.full_source => }/progress/4.game.cpp | 0 .../{0.full_source => }/progress/4.game.h | 0 .../progress/5.1.ball_object_collisions.cpp | 0 .../progress/5.1.ball_object_collisions.h | 0 .../{0.full_source => }/progress/5.game.cpp | 0 .../{0.full_source => }/progress/5.game.h | 0 .../{0.full_source => }/progress/6.game.cpp | 0 .../{0.full_source => }/progress/7.game.cpp | 0 .../{0.full_source => }/progress/8.game.cpp | 0 .../{0.full_source => }/progress/8.game.h | 0 .../{0.full_source => }/progress/9.game.cpp | 0 .../{0.full_source => }/resource_manager.cpp | 0 .../{0.full_source => }/resource_manager.h | 0 .../3.2d_game/{0.full_source => }/shader.cpp | 0 .../3.2d_game/{0.full_source => }/shader.h | 0 .../{0.full_source => }/shaders/particle.frag | 0 .../{0.full_source => }/shaders/particle.vs | 0 .../shaders/post_processing.frag | 0 .../shaders/post_processing.vs | 0 .../{0.full_source => }/shaders/sprite.frag | 0 .../{0.full_source => }/shaders/sprite.vs | 0 .../{0.full_source => }/shaders/text.frag | 0 .../{0.full_source => }/shaders/text.vs | 0 .../{0.full_source => }/sprite_renderer.cpp | 0 .../{0.full_source => }/sprite_renderer.h | 0 .../{0.full_source => }/stb_image.cpp | 0 .../{0.full_source => }/text_renderer.cpp | 0 .../{0.full_source => }/text_renderer.h | 0 .../3.2d_game/{0.full_source => }/texture.cpp | 0 .../3.2d_game/{0.full_source => }/texture.h | 0 .../textures/awesomeface.png | Bin .../textures/background.jpg | Bin .../{0.full_source => }/textures/block.png | Bin .../textures/block_solid.png | Bin .../{0.full_source => }/textures/paddle.png | Bin .../{0.full_source => }/textures/particle.png | Bin .../textures/powerup_chaos.png | Bin .../textures/powerup_confuse.png | Bin .../textures/powerup_increase.png | Bin .../textures/powerup_passthrough.png | Bin .../textures/powerup_speed.png | Bin .../textures/powerup_sticky.png | Bin 96 files changed, 3294 insertions(+), 3 deletions(-) create mode 100644 dlls/ikpMP3.dll create mode 100644 dlls/irrKlang.dll create mode 100644 includes/irrKlang/ik_ESoundEngineOptions.h create mode 100644 includes/irrKlang/ik_ESoundOutputDrivers.h create mode 100644 includes/irrKlang/ik_EStreamModes.h create mode 100644 includes/irrKlang/ik_IAudioRecorder.h create mode 100644 includes/irrKlang/ik_IAudioStream.h create mode 100644 includes/irrKlang/ik_IAudioStreamLoader.h create mode 100644 includes/irrKlang/ik_IFileFactory.h create mode 100644 includes/irrKlang/ik_IFileReader.h create mode 100644 includes/irrKlang/ik_IRefCounted.h create mode 100644 includes/irrKlang/ik_ISound.h create mode 100644 includes/irrKlang/ik_ISoundDeviceList.h create mode 100644 includes/irrKlang/ik_ISoundEffectControl.h create mode 100644 includes/irrKlang/ik_ISoundEngine.h create mode 100644 includes/irrKlang/ik_ISoundMixedOutputReceiver.h create mode 100644 includes/irrKlang/ik_ISoundSource.h create mode 100644 includes/irrKlang/ik_ISoundStopEventReceiver.h create mode 100644 includes/irrKlang/ik_IVirtualRefCounted.h create mode 100644 includes/irrKlang/ik_SAudioStreamFormat.h create mode 100644 includes/irrKlang/ik_irrKlangTypes.h create mode 100644 includes/irrKlang/ik_vec3d.h create mode 100644 includes/irrKlang/irrKlang.h create mode 100644 lib/irrKlang.lib rename src/7.in_practice/3.2d_game/{0.full_source => }/audio/bleep.mp3 (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/audio/bleep.wav (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/audio/breakout.mp3 (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/audio/powerup.wav (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/audio/solid.wav (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/ball_object.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/ball_object.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/fonts/OCRAEXT.TTF (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game_level.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game_level.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game_object.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/game_object.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/glad.c (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/levels/four.lvl (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/levels/one.lvl (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/levels/three.lvl (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/levels/two.lvl (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/particle_generator.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/particle_generator.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/post_processor.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/post_processor.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/power_up.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/program.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/2.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/2.game.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/2.program.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/3.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/4.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/4.game.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/5.1.ball_object_collisions.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/5.1.ball_object_collisions.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/5.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/5.game.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/6.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/7.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/8.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/8.game.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/progress/9.game.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/resource_manager.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/resource_manager.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shader.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shader.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/particle.frag (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/particle.vs (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/post_processing.frag (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/post_processing.vs (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/sprite.frag (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/sprite.vs (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/text.frag (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/shaders/text.vs (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/sprite_renderer.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/sprite_renderer.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/stb_image.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/text_renderer.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/text_renderer.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/texture.cpp (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/texture.h (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/awesomeface.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/background.jpg (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/block.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/block_solid.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/paddle.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/particle.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_chaos.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_confuse.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_increase.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_passthrough.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_speed.png (100%) rename src/7.in_practice/3.2d_game/{0.full_source => }/textures/powerup_sticky.png (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2af2f32..cd1e91f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ message(STATUS "Found ASSIMP in ${ASSIMP_INCLUDE_DIR}") # message(STATUS "Found GLEW in ${GLEW_INCLUDE_DIR}") if(WIN32) - set(LIBS glfw3 opengl32 assimp freetype) + set(LIBS glfw3 opengl32 assimp freetype irrKlang) elseif(UNIX AND NOT APPLE) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") find_package(OpenGL REQUIRED) @@ -162,9 +162,8 @@ set(6.pbr set(7.in_practice 1.debugging - # due to trickier build setups (other libs rarely used everywhere else) these examples won't compile through CMake, but source code is available. 2.text_rendering - # 3.2d_game + 3.2d_game ) diff --git a/dlls/ikpMP3.dll b/dlls/ikpMP3.dll new file mode 100644 index 0000000000000000000000000000000000000000..b9134000c3d2185e5190823875644310d0e799ea GIT binary patch literal 183296 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

eA+7wR4{{b{OpgB!y%O2DsE6G9_ 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%0A!66 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

_{(V$ljnMxkM4|%a3zO1sB$Iw%kcsn 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 literal 0 HcmV?d00001 diff --git a/includes/irrKlang/ik_ESoundEngineOptions.h b/includes/irrKlang/ik_ESoundEngineOptions.h new file mode 100644 index 0000000..df65607 --- /dev/null +++ b/includes/irrKlang/ik_ESoundEngineOptions.h @@ -0,0 +1,78 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __E_IRRKLANG_SOUND_ENGINE_OPTIONS_H_INCLUDED__ +#define __E_IRRKLANG_SOUND_ENGINE_OPTIONS_H_INCLUDED__ + +namespace irrklang +{ + //! An enumeration for all options for starting up the sound engine + /** When using createIrrKlangDevice, use a combination of this these + as 'options' parameter to start up the engine. By default, irrKlang + uses ESEO_DEFAULT_OPTIONS, which is set to the combination + ESEO_MULTI_THREADED | ESEO_LOAD_PLUGINS | ESEO_USE_3D_BUFFERS | ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER | ESEO_PRINT_DEBUG_INFO_TO_STDOUT. */ + enum E_SOUND_ENGINE_OPTIONS + { + //! If specified (default), it will make irrKlang run in a separate thread. + /** Using this flag, irrKlang will update + all streams, sounds, 3d positions and whatever automaticly. You also don't need to call ISoundEngine::update() + if irrKlang is running multithreaded. However, if you want to run irrKlang in the same thread + as your application (for easier debugging for example), don't set this. But you need to call ISoundEngine::update() + as often as you can (at least about 2-3 times per second) to make irrKlang update everything correctly then. */ + ESEO_MULTI_THREADED = 0x01, + + //! If the window of the application doesn't have the focus, irrKlang will be silent if this has been set. + /** This will only work when irrKlang is using the DirectSound output driver. */ + ESEO_MUTE_IF_NOT_FOCUSED = 0x02, + + //! Automaticly loads external plugins when starting up. + /** Plugins usually are .dll, .so or .dylib + files named for example ikpMP3.dll (= short for irrKlangPluginMP3) which are executed + after the startup of the sound engine and modify it for example to make it possible + to play back mp3 files. Plugins are being loaded from the current working directory + as well as from the position where the .exe using the irrKlang library resides. + It is also possible to load the plugins after the engine has started up using + ISoundEngine::loadPlugins(). */ + ESEO_LOAD_PLUGINS = 0x04, + + //! Uses 3D sound buffers instead of emulating them when playing 3d sounds (default). + /** If this flag is not specified, all buffers will by created + in 2D only and 3D positioning will be emulated in software, making the engine run + faster if hardware 3d audio is slow on the system. */ + ESEO_USE_3D_BUFFERS = 0x08, + + //! Prints debug messages to the debugger window. + /** irrKlang will print debug info and status messages to any windows debugger supporting + OutputDebugString() (like VisualStudio). + This is useful if your application does not capture any console output (see ESEO_PRINT_DEBUG_INFO_TO_STDOUT). */ + ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER = 0x10, + + //! Prints debug messages to stdout (the ConsoleWindow). + /** irrKlang will print debug info and status messages stdout, the console window in Windows. */ + ESEO_PRINT_DEBUG_INFO_TO_STDOUT = 0x20, + + //! Uses linear rolloff for 3D sound. + /** If specified, instead of the default logarithmic one, irrKlang will + use a linear rolloff model which influences the attenuation + of the sounds over distance. The volume is interpolated linearly between the MinDistance + and MaxDistance, making it possible to adjust sounds more easily although this is not + physically correct. + Note that this option may not work when used together with the ESEO_USE_3D_BUFFERS + option when using Direct3D for example, irrKlang will then turn off ESEO_USE_3D_BUFFERS + automaticly to be able to use this option and write out a warning. */ + ESEO_LINEAR_ROLLOFF = 0x40, + + //! Default parameters when starting up the engine. + ESEO_DEFAULT_OPTIONS = ESEO_MULTI_THREADED | ESEO_LOAD_PLUGINS | ESEO_USE_3D_BUFFERS | ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER | ESEO_PRINT_DEBUG_INFO_TO_STDOUT, + + //! Never used, it only forces the compiler to compile these enumeration values to 32 bit. + /** Don't use this. */ + ESEO_FORCE_32_BIT = 0x7fffffff + }; + +} // end namespace irrklang + + +#endif + diff --git a/includes/irrKlang/ik_ESoundOutputDrivers.h b/includes/irrKlang/ik_ESoundOutputDrivers.h new file mode 100644 index 0000000..bc3e0ea --- /dev/null +++ b/includes/irrKlang/ik_ESoundOutputDrivers.h @@ -0,0 +1,59 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __E_IRRKLANG_SOUND_OUTPUT_DRIVERS_H_INCLUDED__ +#define __E_IRRKLANG_SOUND_OUTPUT_DRIVERS_H_INCLUDED__ + +namespace irrklang +{ + //! An enumeration for all types of supported sound drivers + /** Values of this enumeration can be used as parameter when calling createIrrKlangDevice(). */ + enum E_SOUND_OUTPUT_DRIVER + { + //! Autodetects the best sound driver for the system + ESOD_AUTO_DETECT = 0, + + //! DirectSound8 sound output driver, windows only. + /** In contrast to ESOD_DIRECT_SOUND, this supports sophisticated sound effects + but may not be available on old windows versions. It behaves very similar + to ESOD_DIRECT_SOUND but also supports DX8 sound effects.*/ + ESOD_DIRECT_SOUND_8, + + //! DirectSound sound output driver, windows only. + /** This uses DirectSound 3 or above, if available. If DX8 sound effects + are needed, use ESOD_DIRECT_SOUND_8 instead. The + ESOD_DIRECT_SOUND driver may be available on more and older windows + versions than ESOD_DIRECT_SOUND_8.*/ + ESOD_DIRECT_SOUND, + + //! WinMM sound output driver, windows only. + /** Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */ + ESOD_WIN_MM, + + //! ALSA sound output driver, linux only. + /** When using ESOD_ALSA in createIrrKlangDevice(), it is possible to set the third parameter, + 'deviceID' to the name of specific ALSA pcm device, to the irrKlang force to use this one. + Set it to 'default', or 'plug:hw' or whatever you need it to be. + Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */ + ESOD_ALSA, + + //! Core Audio sound output driver, mac os only. + /** Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */ + ESOD_CORE_AUDIO, + + //! Null driver, creating no sound output + ESOD_NULL, + + //! Amount of built-in sound output drivers + ESOD_COUNT, + + //! This enumeration literal is never used, it only forces the compiler to + //! compile these enumeration values to 32 bit. + ESOD_FORCE_32_BIT = 0x7fffffff + }; + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_EStreamModes.h b/includes/irrKlang/ik_EStreamModes.h new file mode 100644 index 0000000..62d4a0f --- /dev/null +++ b/includes/irrKlang/ik_EStreamModes.h @@ -0,0 +1,31 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __E_IRRKLANG_STREAM_MODES_H_INCLUDED__ +#define __E_IRRKLANG_STREAM_MODES_H_INCLUDED__ + +namespace irrklang +{ + //! An enumeration for all types of supported stream modes + enum E_STREAM_MODE + { + //! Autodetects the best stream mode for a specified audio data. + ESM_AUTO_DETECT = 0, + + //! Streams the audio data when needed. + ESM_STREAMING, + + //! Loads the whole audio data into the memory. + ESM_NO_STREAMING, + + //! This enumeration literal is never used, it only forces the compiler to + //! compile these enumeration values to 32 bit. + ESM_FORCE_32_BIT = 0x7fffffff + }; + +} // end namespace irrklang + + +#endif + diff --git a/includes/irrKlang/ik_IAudioRecorder.h b/includes/irrKlang/ik_IAudioRecorder.h new file mode 100644 index 0000000..49b4085 --- /dev/null +++ b/includes/irrKlang/ik_IAudioRecorder.h @@ -0,0 +1,110 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_AUDIO_RECORDER_H_INCLUDED__ +#define __I_IRRKLANG_AUDIO_RECORDER_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_ISoundSource.h" + + +namespace irrklang +{ + class ICapturedAudioDataReceiver; + + //! Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder() function. + /** It creates sound sources into an ISoundEngine which then can be played there. + See @ref recordingAudio for an example on how to use this. */ + class IAudioRecorder : public virtual IRefCounted + { + public: + + //! Starts recording audio. + /** Clears all possibly previously recorded buffered audio data and starts to record. + When finished recording audio data, call stopRecordingAudio(). + All recorded audio data gets stored into an internal audio buffer, which + can then be accessed for example using addSoundSourceFromRecordedAudio() or + getRecordedAudioData(). For recording audio data not into an internal audio + buffer, use startRecordingCustomHandledAudio(). + \param sampleRate: Sample rate of the recorded audio. + \param sampleFormat: Sample format of the recorded audio. + \param channelCount: Amount of audio channels. + \return Returns true if successfully started recording and false if not.*/ + virtual bool startRecordingBufferedAudio(ik_s32 sampleRate=22000, + ESampleFormat sampleFormat=ESF_S16, + ik_s32 channelCount=1) = 0; + + //! Starts recording audio. + /** Clears all possibly previously recorded buffered audio data and starts to record + audio data, which is delivered to a custom user callback interface. + When finished recording audio data, call stopRecordingAudio(). If instead of + recording the data to the receiver interface recording into a managed buffer + is wished, use startRecordingBufferedAudio() instead. + \param receiver: Interface to be implemented by the user, gets called once for each + captured audio data chunk. + \param sampleRate: Sample rate of the recorded audio. + \param sampleFormat: Sample format of the recorded audio. + \param channelCount: Amount of audio channels. + \return Returns true if successfully started recording and false if not. */ + virtual bool startRecordingCustomHandledAudio(ICapturedAudioDataReceiver* receiver, + ik_s32 sampleRate=22000, + ESampleFormat sampleFormat=ESF_S16, + ik_s32 channelCount=1) = 0; + + //! Stops recording audio. + virtual void stopRecordingAudio() = 0; + + //! Creates a sound source for the recorded audio data. + /** The returned sound source pointer then can be used to play back the recorded audio data + using ISoundEngine::play2D(). This method only will succeed if the audio was recorded using + startRecordingBufferedAudio() and audio recording is currently stopped. + \param soundName Name of the virtual sound file (e.g. "someRecordedAudio"). You can also use this + name when calling play3D() or play2D(). */ + virtual ISoundSource* addSoundSourceFromRecordedAudio(const char* soundName) = 0; + + //! Clears recorded audio data buffer, freeing memory. + /** This method will only succeed if audio recording is currently stopped. */ + virtual void clearRecordedAudioDataBuffer() = 0; + + //! Returns if the recorder is currently recording audio. + virtual bool isRecording() = 0; + + //! Returns the audio format of the recorded audio data. + /** Also contains informations about the length of the recorded audio stream. */ + virtual SAudioStreamFormat getAudioFormat() = 0; + + //! Returns a pointer to the recorded audio data. + /** This method will only succeed if audio recording is currently stopped and + something was recorded previously using startRecordingBufferedAudio(). + The lenght of the buffer can be retrieved using + getAudioFormat().getSampleDataSize(). Note that the pointer is only valid + as long as not clearRecordedAudioDataBuffer() is called or another sample is + recorded.*/ + virtual void* getRecordedAudioData() = 0; + + //! returns the name of the sound driver, like 'ALSA' for the alsa device. + /** Possible returned strings are "NULL", "ALSA", "CoreAudio", "winMM", + "DirectSound" and "DirectSound8". */ + virtual const char* getDriverName() = 0; + }; + + + //! Interface to be implemented by the user if access to the recorded audio data is needed. + /** Is used as parameter in IAudioRecorder::startRecordingCustomHandledAudio. */ + class ICapturedAudioDataReceiver : public IRefCounted + { + public: + + //! Gets called once for each captured audio data chunk. + /** See IAudioRecorder::startRecordingCustomHandledAudio for details. + \param audioData: Pointer to a part of the recorded audio data + \param lengthInBytes: Amount of bytes in the audioData buffer.*/ + virtual void OnReceiveAudioDataStreamChunk(unsigned char* audioData, unsigned long lengthInBytes) = 0; + }; + + +} // end namespace irrklang + + +#endif diff --git a/includes/irrKlang/ik_IAudioStream.h b/includes/irrKlang/ik_IAudioStream.h new file mode 100644 index 0000000..97bfbd4 --- /dev/null +++ b/includes/irrKlang/ik_IAudioStream.h @@ -0,0 +1,49 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_AUDIO_STREAM_H_INCLUDED__ +#define __I_IRRKLANG_AUDIO_STREAM_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_SAudioStreamFormat.h" + +namespace irrklang +{ + + +//! Reads and decodes audio data into an usable audio stream for the ISoundEngine +class IAudioStream : public IRefCounted +{ +public: + + //! destructor + virtual ~IAudioStream() {}; + + //! returns format of the audio stream + virtual SAudioStreamFormat getFormat() = 0; + + //! sets the position of the audio stream. + /** For example to let the stream be read from the beginning of the file again, + setPosition(0) would be called. This is usually done be the sound engine to + loop a stream after if has reached the end. Return true if sucessful and 0 if not. + \param pos: Position in frames.*/ + virtual bool setPosition(ik_s32 pos) = 0; + + //! returns true if the audio stream is seekable + /* Some file formats like (MODs) don't support seeking */ + virtual bool getIsSeekingSupported() { return true; } + + //! tells the audio stream to read frameCountToRead audio frames into the specified buffer + /** \param target: Target data buffer to the method will write the read frames into. The + specified buffer will be at least getFormat().getFrameSize()*frameCountToRead bytes big. + \param frameCountToRead: amount of frames to be read. + \returns Returns amount of frames really read. Should be frameCountToRead in most cases. */ + virtual ik_s32 readFrames(void* target, ik_s32 frameCountToRead) = 0; +}; + + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_IAudioStreamLoader.h b/includes/irrKlang/ik_IAudioStreamLoader.h new file mode 100644 index 0000000..dd90ae2 --- /dev/null +++ b/includes/irrKlang/ik_IAudioStreamLoader.h @@ -0,0 +1,40 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_AUDIO_STREAM_LOADER_H_INCLUDED__ +#define __I_IRRKLANG_AUDIO_STREAM_LOADER_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_IFileReader.h" + +namespace irrklang +{ + +class IAudioStream; + +//! Class which is able to create an audio file stream from a file. +class IAudioStreamLoader : public IRefCounted +{ +public: + + //! destructor + virtual ~IAudioStreamLoader() {}; + + //! Returns true if the file maybe is able to be loaded by this class. + /** This decision should be based only on the file extension (e.g. ".wav"). The given + filename string is guaranteed to be lower case. */ + virtual bool isALoadableFileExtension(const ik_c8* fileName) = 0; + + //! Creates an audio file input stream from a file + /** \return Pointer to the created audio stream. Returns 0 if loading failed. + If you no longer need the stream, you should call IAudioFileStream::drop(). + See IRefCounted::drop() for more information. */ + virtual IAudioStream* createAudioStream(IFileReader* file) = 0; +}; + + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_IFileFactory.h b/includes/irrKlang/ik_IFileFactory.h new file mode 100644 index 0000000..4160acb --- /dev/null +++ b/includes/irrKlang/ik_IFileFactory.h @@ -0,0 +1,41 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_FILE_FACTORY_H_INCLUDED__ +#define __I_IRRKLANG_FILE_FACTORY_H_INCLUDED__ + +#include "ik_IRefCounted.h" + +namespace irrklang +{ + class IFileReader; + + //! Interface to overwrite file access in irrKlang. + /** Derive your own class from IFileFactory, overwrite the createFileReader() + method and return your own implemented IFileReader 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. + */ + class IFileFactory : public virtual IRefCounted + { + public: + + virtual ~IFileFactory() {}; + + //! Opens a file for read access. + /** Derive your own class from IFileFactory, overwrite this + method and return your own implemented IFileReader 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. + \param filename Name of file to open. + \return Returns a pointer to the created file interface. + The returned pointer should be dropped when no longer needed. + See IRefCounted::drop() for more information. Returns 0 if file cannot be opened. */ + virtual IFileReader* createFileReader(const ik_c8* filename) = 0; + }; + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_IFileReader.h b/includes/irrKlang/ik_IFileReader.h new file mode 100644 index 0000000..818fe1a --- /dev/null +++ b/includes/irrKlang/ik_IFileReader.h @@ -0,0 +1,50 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_READ_FILE_H_INCLUDED__ +#define __I_IRRKLANG_READ_FILE_H_INCLUDED__ + +#include "ik_IRefCounted.h" + +namespace irrklang +{ + + //! Interface providing read acess to a file. + class IFileReader : public virtual IRefCounted + { + public: + + virtual ~IFileReader() {}; + + //! Reads an amount of bytes from the file. + //! \param buffer: Pointer to buffer where to read bytes will be written to. + //! \param sizeToRead: Amount of bytes to read from the file. + //! \return Returns how much bytes were read. + virtual ik_s32 read(void* buffer, ik_u32 sizeToRead) = 0; + + //! Changes position in file, returns true if successful. + //! \param finalPos: Destination position in the file. + //! \param relativeMovement: If set to true, the position in the file is + //! changed relative to current position. Otherwise the position is changed + //! from beginning of file. + //! \return Returns true if successful, otherwise false. + virtual bool seek(ik_s32 finalPos, bool relativeMovement = false) = 0; + + //! Returns size of file. + //! \return Returns the size of the file in bytes. + virtual ik_s32 getSize() = 0; + + //! Returns the current position in the file. + //! \return Returns the current position in the file in bytes. + virtual ik_s32 getPos() = 0; + + //! Returns name of file. + //! \return Returns the file name as zero terminated character string. + virtual const ik_c8* getFileName() = 0; + }; + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_IRefCounted.h b/includes/irrKlang/ik_IRefCounted.h new file mode 100644 index 0000000..f86e8b9 --- /dev/null +++ b/includes/irrKlang/ik_IRefCounted.h @@ -0,0 +1,119 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_IREFERENCE_COUNTED_H_INCLUDED__ +#define __I_IRRKLANG_IREFERENCE_COUNTED_H_INCLUDED__ + +#include "ik_irrKlangTypes.h" + +namespace irrklang +{ + //! Base class of most objects of the irrKlang. + /** This class provides reference counting through the methods grab() and drop(). + It also is able to store a debug string for every instance of an object. + Most objects of irrKlang are derived from IRefCounted, and so they are reference counted. + + When you receive an object in irrKlang (for example an ISound using play2D() or + play3D()), and you no longer need the object, you have + to call drop(). This will destroy the object, if grab() was not called + in another part of you program, because this part still needs the object. + Note, that you only don't need to call drop() for all objects you receive, it + will be explicitely noted in the documentation. + + A simple example: + + If you want to play a sound, you may want to call the method + ISoundEngine::play2D. You call + ISound* mysound = engine->play2D("foobar.mp3", false, false true); + If you no longer need the sound interface, call mysound->drop(). The + sound may still play on after this because the engine still has a reference + to that sound, but you can be sure that it's memory will be released as soon + the sound is no longer used. + + If you want to add a sound source, you may want to call a method + ISoundEngine::addSoundSourceFromFile. You do this like + ISoundSource* mysource = engine->addSoundSourceFromFile("example.jpg"); + You will not have to drop the pointer to the source, because + sound sources are managed by the engine (it will live as long as the sound engine) and + the documentation says so. + */ + class IRefCounted + { + public: + + //! Constructor. + IRefCounted() + : ReferenceCounter(1) + { + } + + //! Destructor. + virtual ~IRefCounted() + { + } + + //! Grabs the object. Increments the reference counter by one. + //! Someone who calls grab() to an object, should later also call + //! drop() to it. If an object never gets as much drop() as grab() + //! calls, it will never be destroyed. + //! The IRefCounted class provides a basic reference counting mechanism + //! with its methods grab() and drop(). Most objects of irrklang + //! are derived from IRefCounted, and so they are reference counted. + //! + //! When you receive an object in irrKlang (for example an ISound using play2D() or + //! play3D()), and you no longer need the object, you have + //! to call drop(). This will destroy the object, if grab() was not called + //! in another part of you program, because this part still needs the object. + //! Note, that you only don't need to call drop() for all objects you receive, it + //! will be explicitely noted in the documentation. + //! + //! A simple example: + //! + //! If you want to play a sound, you may want to call the method + //! ISoundEngine::play2D. You call + //! ISound* mysound = engine->play2D("foobar.mp3", false, false true); + //! If you no longer need the sound interface, call mysound->drop(). The + //! sound may still play on after this because the engine still has a reference + //! to that sound, but you can be sure that it's memory will be released as soon + //! the sound is no longer used. + void grab() { ++ReferenceCounter; } + + //! When you receive an object in irrKlang (for example an ISound using play2D() or + //! play3D()), and you no longer need the object, you have + //! to call drop(). This will destroy the object, if grab() was not called + //! in another part of you program, because this part still needs the object. + //! Note, that you only don't need to call drop() for all objects you receive, it + //! will be explicitely noted in the documentation. + //! + //! A simple example: + //! + //! If you want to play a sound, you may want to call the method + //! ISoundEngine::play2D. You call + //! ISound* mysound = engine->play2D("foobar.mp3", false, false true); + //! If you no longer need the sound interface, call mysound->drop(). The + //! sound may still play on after this because the engine still has a reference + //! to that sound, but you can be sure that it's memory will be released as soon + //! the sound is no longer used. + bool drop() + { + --ReferenceCounter; + + if (!ReferenceCounter) + { + delete this; + return true; + } + + return false; + } + + private: + + ik_s32 ReferenceCounter; + }; + +} // end namespace irr + +#endif + diff --git a/includes/irrKlang/ik_ISound.h b/includes/irrKlang/ik_ISound.h new file mode 100644 index 0000000..3f267b9 --- /dev/null +++ b/includes/irrKlang/ik_ISound.h @@ -0,0 +1,194 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_H_INCLUDED__ + +#include "ik_IVirtualRefCounted.h" +#include "ik_ISoundEffectControl.h" +#include "ik_vec3d.h" + + +namespace irrklang +{ + class ISoundSource; + class ISoundStopEventReceiver; + + //! Represents a sound which is currently played. + /** The sound can be stopped, its volume or pan changed, effects added/removed + and similar using this interface. + Creating sounds is done using ISoundEngine::play2D() or ISoundEngine::play3D(). + More informations about the source of a sound can be obtained from the ISoundSource + interface. */ + class ISound : public IVirtualRefCounted + { + public: + + //! returns source of the sound which stores the filename and other informations about that sound + /** \return Returns the sound source poitner of this sound. May return 0 if the sound source + has been removed.*/ + virtual ISoundSource* getSoundSource() = 0; + + //! returns if the sound is paused + virtual void setIsPaused( bool paused = true) = 0; + + //! returns if the sound is paused + virtual bool getIsPaused() = 0; + + //! Will stop the sound and free its resources. + /** If you just want to pause the sound, use setIsPaused(). + After calling stop(), isFinished() will usually return true. + Be sure to also call ->drop() once you are done.*/ + virtual void stop() = 0; + + //! returns volume of the sound, a value between 0 (mute) and 1 (full volume). + /** (this volume gets multiplied with the master volume of the sound engine + and other parameters like distance to listener when played as 3d sound) */ + virtual ik_f32 getVolume() = 0; + + //! sets the volume of the sound, a value between 0 (mute) and 1 (full volume). + /** This volume gets multiplied with the master volume of the sound engine + and other parameters like distance to listener when played as 3d sound. */ + virtual void setVolume(ik_f32 volume) = 0; + + //! sets the pan of the sound. Takes a value between -1 and 1, 0 is center. + virtual void setPan(ik_f32 pan) = 0; + + //! returns the pan of the sound. Takes a value between -1 and 1, 0 is center. + virtual ik_f32 getPan() = 0; + + //! returns if the sound has been started to play looped + virtual bool isLooped() = 0; + + //! changes the loop mode of the sound. + /** If the sound is playing looped and it is changed to not-looped, then it + will stop playing after the loop has finished. + If it is not looped and changed to looped, the sound will start repeating to be + played when it reaches its end. + Invoking this method will not have an effect when the sound already has stopped. */ + virtual void setIsLooped(bool looped) = 0; + + //! returns if the sound has finished playing. + /** Don't mix this up with isPaused(). isFinished() returns if the sound has been + finished playing. If it has, is maybe already have been removed from the playing list of the + sound engine and calls to any other of the methods of ISound will not have any result. + If you call stop() to a playing sound will result that this function will return true + when invoked. */ + virtual bool isFinished() = 0; + + //! Sets the minimal distance if this is a 3D sound. + /** Changes the distance at which the 3D sound stops getting louder. This works + like this: As a listener approaches a 3D sound source, the sound gets louder. + Past a certain point, it is not reasonable for the volume to continue to increase. + Either the maximum (zero) has been reached, or the nature of the sound source + imposes a logical limit. This is the minimum distance for the sound source. + Similarly, the maximum distance for a sound source is the distance beyond + which the sound does not get any quieter. + The default minimum distance is 1, the default max distance is a huge number like 1000000000.0f. */ + virtual void setMinDistance(ik_f32 min) = 0; + + //! Returns the minimal distance if this is a 3D sound. + /** See setMinDistance() for details. */ + virtual ik_f32 getMinDistance() = 0; + + //! Sets the maximal distance if this is a 3D sound. + /** Changing this value is usually not necessary. Use setMinDistance() instead. + Don't change this value if you don't know what you are doing: This value causes the sound + to stop attenuating after it reaches the max distance. Most people think that this sets the + volume of the sound to 0 after this distance, but this is not true. Only change the + minimal distance (using for example setMinDistance()) to influence this. + The maximum distance for a sound source is the distance beyond which the sound does not get any quieter. + The default minimum distance is 1, the default max distance is a huge number like 1000000000.0f. */ + virtual void setMaxDistance(ik_f32 max) = 0; + + //! Returns the maximal distance if this is a 3D sound. + /** See setMaxDistance() for details. */ + virtual ik_f32 getMaxDistance() = 0; + + //! sets the position of the sound in 3d space + virtual void setPosition(vec3df position) = 0; + + //! returns the position of the sound in 3d space + virtual vec3df getPosition() = 0; + + //! sets the position of the sound in 3d space, needed for Doppler effects. + /** To use doppler effects use ISound::setVelocity to set a sounds velocity, + ISoundEngine::setListenerPosition() to set the listeners velocity and + ISoundEngine::setDopplerEffectParameters() to adjust two parameters influencing + the doppler effects intensity. */ + virtual void setVelocity(vec3df vel) = 0; + + //! returns the velocity of the sound in 3d space, needed for Doppler effects. + /** To use doppler effects use ISound::setVelocity to set a sounds velocity, + ISoundEngine::setListenerPosition() to set the listeners velocity and + ISoundEngine::setDopplerEffectParameters() to adjust two parameters influencing + the doppler effects intensity. */ + virtual vec3df getVelocity() = 0; + + //! returns the current play position of the sound in milliseconds. + /** \return Returns -1 if not implemented or possible for this sound for example + because it already has been stopped and freed internally or similar. */ + virtual ik_u32 getPlayPosition() = 0; + + //! sets the current play position of the sound in milliseconds. + /** \param pos Position in milliseconds. Must be between 0 and the value returned + by getPlayPosition(). + \return Returns true successful. False is returned for example if the sound already finished + playing and is stopped or the audio source is not seekable, for example if it + is an internet stream or a a file format not supporting seeking (a .MOD file for example). + A file can be tested if it can bee seeking using ISoundSource::getIsSeekingSupported(). */ + virtual bool setPlayPosition(ik_u32 pos) = 0; + + //! Sets the playback speed (frequency) of the sound. + /** Plays the sound at a higher or lower speed, increasing or decreasing its + frequency which makes it sound lower or higher. + Note that this feature is not available on all sound output drivers (it is on the + DirectSound drivers at least), and it does not work together with the + 'enableSoundEffects' parameter of ISoundEngine::play2D and ISoundEngine::play3D when + using DirectSound. + \param speed Factor of the speed increase or decrease. 2 is twice as fast, + 0.5 is only half as fast. The default is 1.0. + \return Returns true if sucessful, false if not. The current sound driver might not + support changing the playBack speed, or the sound was started with the + 'enableSoundEffects' parameter. */ + virtual bool setPlaybackSpeed(ik_f32 speed = 1.0f) = 0; + + //! Returns the playback speed set by setPlaybackSpeed(). Default: 1.0f. + /** See setPlaybackSpeed() for details */ + virtual ik_f32 getPlaybackSpeed() = 0; + + //! returns the play length of the sound in milliseconds. + /** Returns -1 if not known for this sound for example because its decoder + does not support length reporting or it is a file stream of unknown size. + Note: You can also use ISoundSource::getPlayLength() to get the length of + a sound without actually needing to play it. */ + virtual ik_u32 getPlayLength() = 0; + + //! Returns the sound effect control interface for this sound. + /** Sound effects such as Chorus, Distorsions, Echo, Reverb and similar can + be controlled using this. The interface pointer is only valid as long as the ISound pointer is valid. + If the ISound pointer gets dropped (IVirtualRefCounted::drop()), the ISoundEffects + may not be used any more. + \return Returns a pointer to the sound effects interface if available. The sound + has to be started via ISoundEngine::play2D() or ISoundEngine::play3D(), + with the flag enableSoundEffects=true, otherwise 0 will be returned. Note that + if the output driver does not support sound effects, 0 will be returned as well.*/ + virtual ISoundEffectControl* getSoundEffectControl() = 0; + + //! Sets the sound stop event receiver, an interface which gets called if a sound has finished playing. + /** This event is guaranteed to be called when the 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. + There is an example on how to use events in irrklang at @ref events . + \param receiver Interface to a user implementation of the sound receiver. This interface + should be as long valid as the sound exists or another stop event receiver is set. + Set this to null to set no sound stop event receiver. + \param userData: A iser data pointer, can be null. */ + virtual void setSoundStopEventReceiver(ISoundStopEventReceiver* reciever, void* userData=0) = 0; + }; + +} // end namespace irrklang + + +#endif diff --git a/includes/irrKlang/ik_ISoundDeviceList.h b/includes/irrKlang/ik_ISoundDeviceList.h new file mode 100644 index 0000000..bda2090 --- /dev/null +++ b/includes/irrKlang/ik_ISoundDeviceList.h @@ -0,0 +1,41 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_DEVICE_LIST_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_DEVICE_LIST_H_INCLUDED__ + +#include "ik_IRefCounted.h" + +namespace irrklang +{ + +//! 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". +There is some example code on how to use the ISoundDeviceList in @ref enumeratingDevices.*/ +class ISoundDeviceList : public IRefCounted +{ +public: + + //! Returns amount of enumerated devices in the list. + virtual ik_s32 getDeviceCount() = 0; + + //! Returns the ID of the device. Use this string to identify this device in createIrrKlangDevice(). + /** \param index Index of the device, a value between 0 and ISoundDeviceList::getDeviceCount()-1. + \return Returns a pointer to a string identifying the device. The string will only as long valid + as long as the ISoundDeviceList exists. */ + virtual const char* getDeviceID(ik_s32 index) = 0; + + //! Returns description of the device. + /** \param index Index of the device, a value between 0 and ISoundDeviceList::getDeviceCount()-1. */ + virtual const char* getDeviceDescription(ik_s32 index) = 0; +}; + + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_ISoundEffectControl.h b/includes/irrKlang/ik_ISoundEffectControl.h new file mode 100644 index 0000000..86ade35 --- /dev/null +++ b/includes/irrKlang/ik_ISoundEffectControl.h @@ -0,0 +1,243 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_EFFECT_CONTROL_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_EFFECT_CONTROL_H_INCLUDED__ + +#include "ik_IVirtualRefCounted.h" +#include "ik_vec3d.h" + + +namespace irrklang +{ + //! 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. + Note that the interface pointer is only valid as long as + the ISound pointer is valid. If the ISound pointer gets dropped (IVirtualRefCounted::drop()), + the ISoundEffects may not be used any more. */ + class ISoundEffectControl + { + public: + + //! Disables all active sound effects + virtual void disableAllEffects() = 0; + + //! Enables the chorus sound effect or adjusts its values. + /** Chorus is a voice-doubling effect created by echoing the + original sound with a slight delay and slightly modulating the delay of the echo. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fWetDryMix Ratio of wet (processed) signal to dry (unprocessed) signal. Minimal Value:0, Maximal Value:100.0f; + \param fDepth Percentage by which the delay time is modulated by the low-frequency oscillator, in hundredths of a percentage point. Minimal Value:0, Maximal Value:100.0f; + \param fFeedback Percentage of output signal to feed back into the effect's input. Minimal Value:-99, Maximal Value:99.0f; + \param fFrequency Frequency of the LFO. Minimal Value:0, Maximal Value:10.0f; + \param sinusWaveForm True for sinus wave form, false for triangle. + \param fDelay Number of milliseconds the input is delayed before it is played back. Minimal Value:0, Maximal Value:20.0f; + \param lPhase Phase differential between left and right LFOs. Possible values: + -180, -90, 0, 90, 180 + \return Returns true if successful. */ + virtual bool enableChorusSoundEffect(ik_f32 fWetDryMix = 50, + ik_f32 fDepth = 10, + ik_f32 fFeedback = 25, + ik_f32 fFrequency = 1.1, + bool sinusWaveForm = true, + ik_f32 fDelay = 16, + ik_s32 lPhase = 90) = 0; + + //! removes the sound effect from the sound + virtual void disableChorusSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isChorusSoundEffectEnabled() = 0; + + //! Enables the Compressor sound effect or adjusts its values. + /** Compressor is a reduction in the fluctuation of a signal above a certain amplitude. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fGain Output gain of signal after Compressor. Minimal Value:-60, Maximal Value:60.0f; + \param fAttack Time before Compressor reaches its full value. Minimal Value:0.01, Maximal Value:500.0f; + \param fRelease Speed at which Compressor is stopped after input drops below fThreshold. Minimal Value:50, Maximal Value:3000.0f; + \param fThreshold Point at which Compressor begins, in decibels. Minimal Value:-60, Maximal Value:0.0f; + \param fRatio Compressor ratio. Minimal Value:1, Maximal Value:100.0f; + \param fPredelay Time after lThreshold is reached before attack phase is started, in milliseconds. Minimal Value:0, Maximal Value:4.0f; + \return Returns true if successful. */ + virtual bool enableCompressorSoundEffect( ik_f32 fGain = 0, + ik_f32 fAttack = 10, + ik_f32 fRelease = 200, + ik_f32 fThreshold = -20, + ik_f32 fRatio = 3, + ik_f32 fPredelay = 4) = 0; + + //! removes the sound effect from the sound + virtual void disableCompressorSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isCompressorSoundEffectEnabled() = 0; + + //! Enables the Distortion sound effect or adjusts its values. + /** Distortion is achieved by adding harmonics to the signal in such a way that, + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + as the level increases, the top of the waveform becomes squared off or clipped. + \param fGain Amount of signal change after distortion. Minimal Value:-60, Maximal Value:0; + \param fEdge Percentage of distortion intensity. Minimal Value:0, Maximal Value:100; + \param fPostEQCenterFrequency Center frequency of harmonic content addition. Minimal Value:100, Maximal Value:8000; + \param fPostEQBandwidth Width of frequency band that determines range of harmonic content addition. Minimal Value:100, Maximal Value:8000; + \param fPreLowpassCutoff Filter cutoff for high-frequency harmonics attenuation. Minimal Value:100, Maximal Value:8000; + \return Returns true if successful. */ + virtual bool enableDistortionSoundEffect(ik_f32 fGain = -18, + ik_f32 fEdge = 15, + ik_f32 fPostEQCenterFrequency = 2400, + ik_f32 fPostEQBandwidth = 2400, + ik_f32 fPreLowpassCutoff = 8000) = 0; + + //! removes the sound effect from the sound + virtual void disableDistortionSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isDistortionSoundEffectEnabled() = 0; + + //! Enables the Echo sound effect or adjusts its values. + /** An echo effect causes an entire sound to be repeated after a fixed delay. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fWetDryMix Ratio of wet (processed) signal to dry (unprocessed) signal. Minimal Value:0, Maximal Value:100.0f; + \param fFeedback Percentage of output fed back into input. Minimal Value:0, Maximal Value:100.0f; + \param fLeftDelay Delay for left channel, in milliseconds. Minimal Value:1, Maximal Value:2000.0f; + \param fRightDelay Delay for right channel, in milliseconds. Minimal Value:1, Maximal Value:2000.0f; + \param lPanDelay Value that specifies whether to swap left and right delays with each successive echo. Minimal Value:0, Maximal Value:1; + \return Returns true if successful. */ + virtual bool enableEchoSoundEffect(ik_f32 fWetDryMix = 50, + ik_f32 fFeedback = 50, + ik_f32 fLeftDelay = 500, + ik_f32 fRightDelay = 500, + ik_s32 lPanDelay = 0) = 0; + + //! removes the sound effect from the sound + virtual void disableEchoSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isEchoSoundEffectEnabled() = 0; + + //! Enables the Flanger sound effect or adjusts its values. + /** Flange is an echo effect in which the delay between the original + signal and its echo is very short and varies over time. The result is + sometimes referred to as a sweeping sound. The term flange originated + with the practice of grabbing the flanges of a tape reel to change the speed. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fWetDryMix Ratio of wet (processed) signal to dry (unprocessed) signal. Minimal Value:0, Maximal Value:100.0f; + \param fDepth Percentage by which the delay time is modulated by the low-frequency oscillator, in hundredths of a percentage point. Minimal Value:0, Maximal Value:100.0f; + \param fFeedback Percentage of output signal to feed back into the effect's input. Minimal Value:-99, Maximal Value:99.0f; + \param fFrequency Frequency of the LFO. Minimal Value:0, Maximal Value:10.0f; + \param triangleWaveForm True for triangle wave form, false for square. + \param fDelay Number of milliseconds the input is delayed before it is played back. Minimal Value:0, Maximal Value:20.0f; + \param lPhase Phase differential between left and right LFOs. Possible values: + -180, -90, 0, 90, 180 + \return Returns true if successful. */ + virtual bool enableFlangerSoundEffect(ik_f32 fWetDryMix = 50, + ik_f32 fDepth = 100, + ik_f32 fFeedback = -50, + ik_f32 fFrequency = 0.25f, + bool triangleWaveForm = true, + ik_f32 fDelay = 2, + ik_s32 lPhase = 0) = 0; + + //! removes the sound effect from the sound + virtual void disableFlangerSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isFlangerSoundEffectEnabled() = 0; + + //! Enables the Gargle sound effect or adjusts its values. + /** The gargle effect modulates the amplitude of the signal. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param rateHz Rate of modulation, in Hertz. Minimal Value:1, Maximal Value:1000 + \param sinusWaveForm True for sinus wave form, false for triangle. + \return Returns true if successful. */ + virtual bool enableGargleSoundEffect(ik_s32 rateHz = 20, bool sinusWaveForm = true) = 0; + + //! removes the sound effect from the sound + virtual void disableGargleSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isGargleSoundEffectEnabled() = 0; + + //! Enables the Interactive 3D Level 2 reverb sound effect or adjusts its values. + /** An implementation of the listener properties in the I3DL2 specification. Source properties are not supported. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param lRoom Attenuation of the room effect, in millibels (mB). Interval: [-10000, 0] Default: -1000 mB + \param lRoomHF Attenuation of the room high-frequency effect. Interval: [-10000, 0] default: 0 mB + \param flRoomRolloffFactor Rolloff factor for the reflected signals. Interval: [0.0, 10.0] default: 0.0 + \param flDecayTime Decay time, in seconds. Interval: [0.1, 20.0] default: 1.49s + \param flDecayHFRatio Ratio of the decay time at high frequencies to the decay time at low frequencies. Interval: [0.1, 2.0] default: 0.83 + \param lReflections Attenuation of early reflections relative to lRoom. Interval: [-10000, 1000] default: -2602 mB + \param flReflectionsDelay Delay time of the first reflection relative to the direct path in seconds. Interval: [0.0, 0.3] default: 0.007 s + \param lReverb Attenuation of late reverberation relative to lRoom, in mB. Interval: [-10000, 2000] default: 200 mB + \param flReverbDelay Time limit between the early reflections and the late reverberation relative to the time of the first reflection. Interval: [0.0, 0.1] default: 0.011 s + \param flDiffusion Echo density in the late reverberation decay in percent. Interval: [0.0, 100.0] default: 100.0 % + \param flDensity Modal density in the late reverberation decay, in percent. Interval: [0.0, 100.0] default: 100.0 % + \param flHFReference Reference high frequency, in hertz. Interval: [20.0, 20000.0] default: 5000.0 Hz + \return Returns true if successful. */ + virtual bool enableI3DL2ReverbSoundEffect(ik_s32 lRoom = -1000, + ik_s32 lRoomHF = -100, + ik_f32 flRoomRolloffFactor = 0, + ik_f32 flDecayTime = 1.49f, + ik_f32 flDecayHFRatio = 0.83f, + ik_s32 lReflections = -2602, + ik_f32 flReflectionsDelay = 0.007f, + ik_s32 lReverb = 200, + ik_f32 flReverbDelay = 0.011f, + ik_f32 flDiffusion = 100.0f, + ik_f32 flDensity = 100.0f, + ik_f32 flHFReference = 5000.0f ) = 0; + + //! removes the sound effect from the sound + virtual void disableI3DL2ReverbSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isI3DL2ReverbSoundEffectEnabled() = 0; + + //! Enables the ParamEq sound effect or adjusts its values. + /** Parametric equalizer amplifies or attenuates signals of a given frequency. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fCenter Center frequency, in hertz, The default value is 8000. Minimal Value:80, Maximal Value:16000.0f + \param fBandwidth Bandwidth, in semitones, The default value is 12. Minimal Value:1.0f, Maximal Value:36.0f + \param fGain Gain, default value is 0. Minimal Value:-15.0f, Maximal Value:15.0f + \return Returns true if successful. */ + virtual bool enableParamEqSoundEffect(ik_f32 fCenter = 8000, + ik_f32 fBandwidth = 12, + ik_f32 fGain = 0) = 0; + + //! removes the sound effect from the sound + virtual void disableParamEqSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isParamEqSoundEffectEnabled() = 0; + + //! Enables the Waves Reverb sound effect or adjusts its values. + /** \param fInGain Input gain of signal, in decibels (dB). Min/Max: [-96.0,0.0] Default: 0.0 dB. + If this sound effect is already enabled, calling this only modifies the parameters of the active effect. + \param fReverbMix Reverb mix, in dB. Min/Max: [-96.0,0.0] Default: 0.0 dB + \param fReverbTime Reverb time, in milliseconds. Min/Max: [0.001,3000.0] Default: 1000.0 ms + \param fHighFreqRTRatio High-frequency reverb time ratio. Min/Max: [0.001,0.999] Default: 0.001 + \return Returns true if successful. */ + virtual bool enableWavesReverbSoundEffect(ik_f32 fInGain = 0, + ik_f32 fReverbMix = 0, + ik_f32 fReverbTime = 1000, + ik_f32 fHighFreqRTRatio = 0.001f) = 0; + + //! removes the sound effect from the sound + virtual void disableWavesReverbSoundEffect() = 0; + + //! returns if the sound effect is active on the sound + virtual bool isWavesReverbSoundEffectEnabled() = 0; + }; + +} // end namespace irrklang + + +#endif diff --git a/includes/irrKlang/ik_ISoundEngine.h b/includes/irrKlang/ik_ISoundEngine.h new file mode 100644 index 0000000..fdb25e8 --- /dev/null +++ b/includes/irrKlang/ik_ISoundEngine.h @@ -0,0 +1,436 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_ENGINE_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_ENGINE_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_vec3d.h" +#include "ik_ISoundSource.h" +#include "ik_ISound.h" +#include "ik_EStreamModes.h" +#include "ik_IFileFactory.h" +#include "ik_ISoundMixedOutputReceiver.h" + + +namespace irrklang +{ + class IAudioStreamLoader; + struct SInternalAudioInterface; + + //! Interface to the sound engine, for playing 3d and 2d sound and music. + /** This is the main interface of irrKlang. You usually would create this using + the createIrrKlangDevice() function. + */ + class ISoundEngine : public virtual irrklang::IRefCounted + { + public: + + //! returns the name of the sound driver, like 'ALSA' for the alsa device + /** Possible returned strings are "NULL", "ALSA", "CoreAudio", "winMM", + "DirectSound" and "DirectSound8". */ + virtual const char* getDriverName() = 0; + + //! loads a sound source (if not loaded already) from a file and plays it. + /** \param sourceFileName Filename of sound, like "sounds/test.wav" or "foobar.ogg". + \param playLooped plays the sound in loop mode. If set to 'false', the sound is played once, then stopped and deleted from the internal playing list. Calls to + ISound have no effect after such a non looped sound has been stopped automaticly. + \param startPaused starts the sound paused. This implies that track=true. Use this if you want to modify some of the playing + parameters before the sound actually plays. Usually you would set this parameter to true, then use the ISound interface to + modify some of the sound parameters and then call ISound::setPaused(false); + Note: You need to call ISound::drop() when setting this parameter to true and you don't need the ISound + object anymore. See 'return' for details. + \param track Makes it possible to track the sound. Causes the method to return an ISound interface. See 'return' for details. + \param streamMode Specifies if the file should be streamed or loaded completely into memory for playing. + ESM_AUTO_DETECT sets this to autodetection. Note: if the sound has been loaded or played before into the + engine, this parameter has no effect. + \param enableSoundEffects Makes it possible to use sound effects such as chorus, distorsions, echo, + reverb and similar for this sound. Sound effects can then be controlled via ISound::getSoundEffectControl(). + Only enable if necessary. + \return Only returns a pointer to an ISound if the parameters 'track', 'startPaused' or + 'enableSoundEffects' have been set to true. Note: if this method returns an ISound as result, + you HAVE to call ISound::drop() after you don't need the ISound interface anymore. Otherwise this + will cause memory waste. This method also may return 0 altough 'track', 'startPaused' or + 'enableSoundEffects' have been set to true, if the sound could not be played.*/ + virtual ISound* play2D(const char* soundFileName, + bool playLooped = false, + bool startPaused = false, + bool track = false, + E_STREAM_MODE streamMode = ESM_AUTO_DETECT, + bool enableSoundEffects = false) = 0; + + //! Plays a sound source as 2D sound with its default settings stored in ISoundSource. + /** An ISoundSource object will be created internally when playing a sound the first time, + or can be added with getSoundSource(). + \param source The sound source, specifiying sound file source and default settings for this file. + Use the other ISoundEngine::play2D() overloads if you want to specify a filename string instead of this. + \param playLooped plays the sound in loop mode. If set to 'false', the sound is played once, then stopped and deleted from the internal playing list. Calls to + ISound have no effect after such a non looped sound has been stopped automaticly. + \param startPaused starts the sound paused. This implies that track=true. Use this if you want to modify some of the playing + parameters before the sound actually plays. Usually you would set this parameter to true, then use the ISound interface to + modify some of the sound parameters and then call ISound::setPaused(false); + Note: You need to call ISound::drop() when setting this parameter to true and you don't need the ISound + object anymore. See 'return' for details. + \param track Makes it possible to track the sound. Causes the method to return an ISound interface. See 'return' for details. + \param enableSoundEffects Makes it possible to use sound effects such as chorus, distorsions, echo, + reverb and similar for this sound. Sound effects can then be controlled via ISound::getSoundEffectControl(). + Only enable if necessary. + \return Only returns a pointer to an ISound if the parameters 'track', 'startPaused' or + 'enableSoundEffects' have been set to true. Note: if this method returns an ISound as result, + you HAVE to call ISound::drop() after you don't need the ISound interface anymore. Otherwise this + will cause memory waste. This method also may return 0 altough 'track', 'startPaused' or + 'enableSoundEffects' have been set to true, if the sound could not be played.*/ + virtual ISound* play2D(ISoundSource* source, + bool playLooped = false, + bool startPaused = false, + bool track = false, + bool enableSoundEffects = false) = 0; + + //! Loads a sound source (if not loaded already) from a file and plays it as 3D sound. + /** There is some example code on how to work with 3D sound at @ref sound3d. + \param sourceFileName Filename of sound, like "sounds/test.wav" or "foobar.ogg". + \param pos Position of the 3D sound. + \param playLooped plays the sound in loop mode. If set to 'false', the sound is played once, then stopped and deleted from the internal playing list. Calls to + ISound have no effect after such a non looped sound has been stopped automaticly. + \param startPaused starts the sound paused. This implies that track=true. Use this if you want to modify some of the playing + parameters before the sound actually plays. Usually you would set this parameter to true, then use the ISound interface to + modify some of the sound parameters and then call ISound::setPaused(false); + Note: You need to call ISound::drop() when setting this parameter to true and you don't need the ISound + object anymore. See 'return' for details. + \param track Makes it possible to track the sound. Causes the method to return an ISound interface. See 'return' for details. + \param streamMode Specifies if the file should be streamed or loaded completely into memory for playing. + ESM_AUTO_DETECT sets this to autodetection. Note: if the sound has been loaded or played before into the + engine, this parameter has no effect. + \param enableSoundEffects Makes it possible to use sound effects such as chorus, distorsions, echo, + reverb and similar for this sound. Sound effects can then be controlled via ISound::getSoundEffectControl(). + Only enable if necessary. + \return Only returns a pointer to an ISound if the parameters 'track', 'startPaused' or + 'enableSoundEffects' have been set to true. Note: if this method returns an ISound as result, + you HAVE to call ISound::drop() after you don't need the ISound interface anymore. Otherwise this + will cause memory waste. This method also may return 0 altough 'track', 'startPaused' or + 'enableSoundEffects' have been set to true, if the sound could not be played.*/ + virtual ISound* play3D(const char* soundFileName, vec3df pos, + bool playLooped = false, + bool startPaused = false, + bool track = false, + E_STREAM_MODE streamMode = ESM_AUTO_DETECT, + bool enableSoundEffects = false) = 0; + + //! Plays a sound source as 3D sound with its default settings stored in ISoundSource. + /** An ISoundSource object will be created internally when playing a sound the first time, + or can be added with getSoundSource(). There is some example code on how to work with 3D sound @ref sound3d. + \param source The sound source, specifiying sound file source and default settings for this file. + Use the other ISoundEngine::play2D() overloads if you want to specify a filename string instead of this. + \param pos Position of the 3D sound. + \param playLooped plays the sound in loop mode. If set to 'false', the sound is played once, then stopped and deleted from the internal playing list. Calls to + ISound have no effect after such a non looped sound has been stopped automaticly. + \param startPaused starts the sound paused. This implies that track=true. Use this if you want to modify some of the playing + parameters before the sound actually plays. Usually you would set this parameter to true, then use the ISound interface to + modify some of the sound parameters and then call ISound::setPaused(false); + Note: You need to call ISound::drop() when setting this parameter to true and you don't need the ISound + object anymore. See 'return' for details. + \param track Makes it possible to track the sound. Causes the method to return an ISound interface. See 'return' for details. + \param enableSoundEffects Makes it possible to use sound effects such as chorus, distorsions, echo, + reverb and similar for this sound. Sound effects can then be controlled via ISound::getSoundEffectControl(). + Only enable if necessary. + \return Only returns a pointer to an ISound if the parameters 'track', 'startPaused' or + 'enableSoundEffects' have been set to true. Note: if this method returns an ISound as result, + you HAVE to call ISound::drop() after you don't need the ISound interface anymore. Otherwise this + will cause memory waste. This method also may return 0 altough 'track', 'startPaused' or + 'enableSoundEffects' have been set to true, if the sound could not be played.*/ + virtual ISound* play3D(ISoundSource* source, vec3df pos, + bool playLooped = false, + bool startPaused = false, + bool track = false, + bool enableSoundEffects = false) = 0; + + //! Stops all currently playing sounds. + virtual void stopAllSounds() = 0; + + //! Pauses or unpauses all currently playing sounds. + virtual void setAllSoundsPaused( bool bPaused = true ) = 0; + + //! Gets a sound source by sound name. Adds the sound source as file into the sound engine if not loaded already. + /** Please note: For performance reasons most ISoundEngine implementations will + not try to load the sound when calling this method, but only when play() is called + with this sound source as parameter. + \param addIfNotFound if 'true' adds the sound source to the list and returns the interface to it + if it cannot be found in the sound source list. If 'false', returns 0 if the sound + source is not in the list and does not modify the list. Default value: true. + \return Returns the sound source or 0 if not available. + Note: Don't call drop() to this pointer, it will be managed by irrKlang and + exist as long as you don't delete irrKlang or call removeSoundSource(). However, + you are free to call grab() if you want and drop() it then later of course. */ + virtual ISoundSource* getSoundSource(const ik_c8* soundName, bool addIfNotFound=true) = 0; + + //! Returns a sound source by index. + /** \param idx: Index of the loaded sound source, must by smaller than getSoundSourceCount(). + \return Returns the sound source or 0 if not available. + Note: Don't call drop() to this pointer, it will be managed by irrKlang and + exist as long as you don't delete irrKlang or call removeSoundSource(). However, + you are free to call grab() if you want and drop() it then later of course. */ + virtual ISoundSource* getSoundSource(ik_s32 index) = 0; + + //! Returns amount of loaded sound sources. + virtual ik_s32 getSoundSourceCount() = 0; + + //! Adds sound source into the sound engine as file. + /** \param fileName Name of the sound file (e.g. "sounds/something.mp3"). You can also use this + name when calling play3D() or play2D(). + \param mode Streaming mode for this sound source + \param preload If this flag is set to false (which is default) the sound engine will + not try to load the sound file when calling this method, but only when play() is called + with this sound source as parameter. Otherwise the sound will be preloaded. + \return Returns the pointer to the added sound source or 0 if not sucessful because for + example a sound already existed with that name. If not successful, the reason will be printed + into the log. Note: Don't call drop() to this pointer, it will be managed by irrKlang and + exist as long as you don't delete irrKlang or call removeSoundSource(). However, + you are free to call grab() if you want and drop() it then later of course. */ + virtual ISoundSource* addSoundSourceFromFile(const ik_c8* fileName, E_STREAM_MODE mode=ESM_AUTO_DETECT, + bool preload=false) = 0; + + //! Adds a sound source into the sound engine as memory source. + /** Note: This method only accepts a file (.wav, .ogg, etc) which is totally loaded into memory. + If you want to add a sound source from decoded plain PCM data in memory, use addSoundSourceFromPCMData() instead. + \param memory Pointer to the memory to be treated as loaded sound file. + \param sizeInBytes Size of the memory chunk, in bytes. + \param soundName Name of the virtual sound file (e.g. "sounds/something.mp3"). You can also use this + name when calling play3D() or play2D(). Hint: If you include the extension of the original file + like .ogg, .mp3 or .wav at the end of the filename, irrKlang will be able to decide better what + file format it is and might be able to start playback faster. + \param copyMemory If set to true which is default, the memory block is copied + and stored in the engine, after calling addSoundSourceFromMemory() the memory pointer can be deleted + savely. If set to false, the memory is not copied and the user takes the responsibility that + the memory block pointed to remains there as long as the sound engine or at least this sound + source exists. + \return Returns the pointer to the added sound source or 0 if not sucessful because for example a sound already + existed with that name. If not successful, the reason will be printed into the log. + Note: Don't call drop() to this pointer, it will be managed by irrKlang and exist as long as you don't + delete irrKlang or call removeSoundSource(). However, you are free to call grab() if you + want and drop() it then later of course. */ + virtual ISoundSource* addSoundSourceFromMemory(void* memory, ik_s32 sizeInBytes, const ik_c8* soundName, + bool copyMemory=true) = 0; + + + //! Adds a sound source into the sound engine from plain PCM data in memory. + /** \param memory Pointer to the memory to be treated as loaded sound file. + \param sizeInBytes Size of the memory chunk, in bytes. + \param soundName Name of the virtual sound file (e.g. "sounds/something.mp3"). You can also use this + name when calling play3D() or play2D(). + \param copyMemory If set to true which is default, the memory block is copied + and stored in the engine, after calling addSoundSourceFromPCMData() the memory pointer can be deleted + savely. If set to true, the memory is not copied and the user takes the responsibility that + the memory block pointed to remains there as long as the sound engine or at least this sound + source exists. + \return Returns the pointer to the added sound source or 0 if not sucessful because for + example a sound already existed with that name. If not successful, the reason will be printed + into the log. */ + virtual ISoundSource* addSoundSourceFromPCMData(void* memory, ik_s32 sizeInBytes, + const ik_c8* soundName, SAudioStreamFormat format, + bool copyMemory=true) = 0; + + //! Adds a sound source as alias for an existing sound source, but with a different name or optional different default settings. + /** This is useful if you want to play multiple sounds but each sound isn't necessarily one single file. + Also useful if you want to or play the same sound using different names, volumes or min and max 3D distances. + \param baseSource The sound source where this sound source should be based on. This sound + source will use the baseSource as base to access the file and similar, but it will have its + own name and its own default settings. + \param soundName Name of the new sound source to be added. + \return Returns the pointer to the added sound source or 0 if not sucessful because for + example a sound already existed with that name. If not successful, the reason will be printed + into the log.*/ + virtual ISoundSource* addSoundSourceAlias(ISoundSource* baseSource, const ik_c8* soundName) = 0; + + //! Removes a sound source from the engine, freeing the memory it occupies. + /** This will also cause all currently playing sounds of this source to be stopped. + Also note that if the source has been removed successfully, the value returned + by getSoundSourceCount() will have been decreased by one. + Removing sound sources is only necessary if you know you won't use a lot of non-streamed + sounds again. Sound sources of streamed sounds do not cost a lot of memory.*/ + virtual void removeSoundSource(ISoundSource* source) = 0; + + //! Removes a sound source from the engine, freeing the memory it occupies. + /** This will also cause all currently playing sounds of this source to be stopped. + Also note that if the source has been removed successfully, the value returned + by getSoundSourceCount() will have been decreased by one. + Removing sound sources is only necessary if you know you won't use a lot of non-streamed + sounds again. Sound sources of streamed sounds do not cost a lot of memory. */ + virtual void removeSoundSource(const ik_c8* name) = 0; + + //! Removes all sound sources from the engine + /** This will also cause all sounds to be stopped. + Removing sound sources is only necessary if you know you won't use a lot of non-streamed + sounds again. Sound sources of streamed sounds do not cost a lot of memory. */ + virtual void removeAllSoundSources() = 0; + + //! Sets master sound volume. This value is multiplied with all sounds played. + /** \param volume 0 (silent) to 1.0f (full volume) */ + virtual void setSoundVolume(ik_f32 volume) = 0; + + //! Returns master sound volume. + /* A value between 0.0 and 1.0. Default is 1.0. Can be changed using setSoundVolume(). */ + virtual ik_f32 getSoundVolume() = 0; + + //! Sets the current listener 3d position. + /** When playing sounds in 3D, updating the position of the listener every frame should be + done using this function. + \param pos Position of the camera or listener. + \param lookdir Direction vector where the camera or listener is looking into. If you have a + camera position and a target 3d point where it is looking at, this would be cam->getTarget() - cam->getAbsolutePosition(). + \param velPerSecond The velocity per second describes the speed of the listener and + is only needed for doppler effects. + \param upvector Vector pointing 'up', so the engine can decide where is left and right. + This vector is usually (0,1,0).*/ + virtual void setListenerPosition(const vec3df& pos, + const vec3df& lookdir, + const vec3df& velPerSecond = vec3df(0,0,0), + const vec3df& upVector = vec3df(0,1,0)) = 0; + + //! Updates the audio engine. This should be called several times per frame if irrKlang was started in single thread mode. + /** This updates the 3d positions of the sounds as well as their volumes, effects, + streams and other stuff. Call this several times per frame (the more the better) if you + specified irrKlang to run single threaded. Otherwise it is not necessary to use this method. + This method is being called by the scene manager automaticly if you are using one, so + you might want to ignore this. */ + virtual void update() = 0; + + //! Returns if a sound with the specified name is currently playing. + virtual bool isCurrentlyPlaying(const char* soundName) = 0; + + //! Returns if a sound with the specified source is currently playing. + virtual bool isCurrentlyPlaying(ISoundSource* source) = 0; + + //! Stops all sounds of a specific sound source + virtual void stopAllSoundsOfSoundSource(ISoundSource* source) = 0; + + //! Registers a new audio stream loader in the sound engine. + /** Use this to enhance the audio engine to support other or new file formats. + To do this, implement your own IAudioStreamLoader interface and register it + with this method */ + virtual void registerAudioStreamLoader(IAudioStreamLoader* loader) = 0; + + //! Returns if irrKlang is running in the same thread as the application or is using multithreading. + /** This basicly returns the flag set by the user when creating the sound engine.*/ + virtual bool isMultiThreaded() const = 0; + + //! Adds a file factory to the sound engine, making it possible to override file access of the sound engine. + /** Derive your own class from IFileFactory, overwrite the createFileReader() + method and return your own implemented IFileReader to overwrite file access of irrKlang. */ + virtual void addFileFactory(IFileFactory* fileFactory) = 0; + + //! Sets the default minimal distance for 3D sounds. + /** This value influences how loud a sound is heard based on its distance. + See ISound::setMinDistance() for details about what the min distance is. + It is also possible to influence this default value for every sound file + using ISoundSource::setDefaultMinDistance(). + This method only influences the initial distance value of sounds. For changing the + distance after the sound has been started to play, use ISound::setMinDistance() and ISound::setMaxDistance(). + \param minDistance Default minimal distance for 3d sounds. The default value is 1.0f.*/ + virtual void setDefault3DSoundMinDistance(ik_f32 minDistance) = 0; + + //! Returns the default minimal distance for 3D sounds. + /** This value influences how loud a sound is heard based on its distance. + You can change it using setDefault3DSoundMinDistance(). + See ISound::setMinDistance() for details about what the min distance is. + It is also possible to influence this default value for every sound file + using ISoundSource::setDefaultMinDistance(). + \return Default minimal distance for 3d sounds. The default value is 1.0f. */ + virtual ik_f32 getDefault3DSoundMinDistance() = 0; + + //! Sets the default maximal distance for 3D sounds. + /** Changing this value is usually not necessary. Use setDefault3DSoundMinDistance() instead. + Don't change this value if you don't know what you are doing: This value causes the sound + to stop attenuating after it reaches the max distance. Most people think that this sets the + volume of the sound to 0 after this distance, but this is not true. Only change the + minimal distance (using for example setDefault3DSoundMinDistance()) to influence this. + See ISound::setMaxDistance() for details about what the max distance is. + It is also possible to influence this default value for every sound file + using ISoundSource::setDefaultMaxDistance(). + This method only influences the initial distance value of sounds. For changing the + distance after the sound has been started to play, use ISound::setMinDistance() and ISound::setMaxDistance(). + \param maxDistance Default maximal distance for 3d sounds. The default value is 1000000000.0f. */ + virtual void setDefault3DSoundMaxDistance(ik_f32 maxDistance) = 0; + + //! Returns the default maximal distance for 3D sounds. + /** This value influences how loud a sound is heard based on its distance. + You can change it using setDefault3DSoundmaxDistance(), but + changing this value is usually not necessary. This value causes the sound + to stop attenuating after it reaches the max distance. Most people think that this sets the + volume of the sound to 0 after this distance, but this is not true. Only change the + minimal distance (using for example setDefault3DSoundMinDistance()) to influence this. + See ISound::setMaxDistance() for details about what the max distance is. + It is also possible to influence this default value for every sound file + using ISoundSource::setDefaultMaxDistance(). + \return Default maximal distance for 3d sounds. The default value is 1000000000.0f. */ + virtual ik_f32 getDefault3DSoundMaxDistance() = 0; + + //! Sets a rolloff factor which influences the amount of attenuation that is applied to 3D sounds. + /** The rolloff factor can range from 0.0 to 10.0, where 0 is no rolloff. 1.0 is the default + rolloff factor set, the value which we also experience in the real world. A value of 2 would mean + twice the real-world rolloff. */ + virtual void setRolloffFactor(ik_f32 rolloff) = 0; + + //! Sets parameters affecting the doppler effect. + /** \param dopplerFactor is a value between 0 and 10 which multiplies the doppler + effect. Default value is 1.0, which is the real world doppler effect, and 10.0f + would be ten times the real world doppler effect. + \param distanceFactor is the number of meters in a vector unit. The default value + is 1.0. Doppler effects are calculated in meters per second, with this parameter, + this can be changed, all velocities and positions are influenced by this. If + the measurement should be in foot instead of meters, set this value to 0.3048f + for example.*/ + virtual void setDopplerEffectParameters(ik_f32 dopplerFactor=1.0f, ik_f32 distanceFactor=1.0f) = 0; + + //! Loads irrKlang plugins from a custom path. + /** Plugins usually are .dll, .so or .dylib + files named for example ikpMP3.dll (= short for irrKlangPluginMP3) which + make it possible to play back mp3 files. Plugins are being + loaded from the current working directory at startup of the sound engine + if the parameter ESEO_LOAD_PLUGINS is set (which it is by default), but + using this method, it is possible to load plugins from a custom path in addition. + \param path Path to the plugin directory, like "C:\games\somegamegame\irrklangplugins". + \return returns true if sucessful or fals if not, for example because the path could + not be found. */ + virtual bool loadPlugins(const ik_c8* path) = 0; + + //! Returns a pointer to internal sound engine pointers, like the DirectSound interface. + /** Use this with caution. This is only exposed to make it possible for other libraries + such as Video playback packages to extend or use the sound driver irrklang uses. */ + virtual const SInternalAudioInterface& getInternalAudioInterface() = 0; + + //! Sets the OutputMixedDataReceiver, so you can receive the pure mixed output audio data while it is being played. + /** This can be used to store the sound output as .wav file or for creating a Oscillograph or similar. + This works only with software based audio drivers, that is ESOD_WIN_MM, ESOD_ALSA, and ESOD_CORE_AUDIO. + Returns true if sucessful and fals if the current audio driver doesn't support this feature. Set this to null + again once you don't need it anymore. */ + virtual bool setMixedDataOutputReceiver(ISoundMixedOutputReceiver* receiver) = 0; + }; + + + //! structure for returning pointers to the internal audio interface. + /** Use ISoundEngine::getInternalAudioInterface() to get this. */ + struct SInternalAudioInterface + { + //! IDirectSound interface, this is not null when using the ESOD_DIRECT_SOUND audio driver + void* pIDirectSound; + + //! IDirectSound8 interface, this is not null when using the ESOD_DIRECT_SOUND8 audio driver + void* pIDirectSound8; + + //! HWaveout interface, this is not null when using the ESOD_WIN_MM audio driver + void* pWinMM_HWaveOut; + + //! ALSA PCM Handle interface, this is not null when using the ESOD_ALSA audio driver + void* pALSA_SND_PCM; + + //! AudioDeviceID handle, this is not null when using the ESOD_CORE_AUDIO audio driver + ik_u32 pCoreAudioDeciceID; + }; + + + +} // end namespace irrklang + + +#endif diff --git a/includes/irrKlang/ik_ISoundMixedOutputReceiver.h b/includes/irrKlang/ik_ISoundMixedOutputReceiver.h new file mode 100644 index 0000000..8f6d58e --- /dev/null +++ b/includes/irrKlang/ik_ISoundMixedOutputReceiver.h @@ -0,0 +1,46 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_MIXED_OUTPUT_RECEIVER_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_MIXED_OUTPUT_RECEIVER_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_SAudioStreamFormat.h" + + +namespace irrklang +{ + + +//! Interface to be implemented by the user, which recieves the mixed output when it it played by the sound engine. +/** This can be used to store the sound output as .wav file or for creating a Oscillograph or similar. + Simply implement your own class derived from ISoundMixedOutputReceiver and use ISoundEngine::setMixedDataOutputReceiver + to let the audio driver know about it. */ +class ISoundMixedOutputReceiver +{ +public: + + //! destructor + virtual ~ISoundMixedOutputReceiver() {}; + + //! Called when a chunk of sound has been mixed and is about to be played. + /** Note: This is called from the playing thread of the sound library, so you need to + make everything you are doing in this method thread safe. Additionally, it would + be a good idea to do nothing complicated in your implementation and return as fast as possible, + otherwise sound output may be stuttering. + \param data representing the sound frames which just have been mixed. Sound data always + consists of two interleaved sound channels at 16bit per frame. + \param byteCount Amount of bytes of the data + \param playbackrate The playback rate at samples per second (usually something like 44000). + This value will not change and always be the same for an instance of an ISoundEngine. */ + virtual void OnAudioDataReady(const void* data, int byteCount, int playbackrate) = 0; + +}; + + +} // end namespace irrklang + + +#endif + diff --git a/includes/irrKlang/ik_ISoundSource.h b/includes/irrKlang/ik_ISoundSource.h new file mode 100644 index 0000000..087d295 --- /dev/null +++ b/includes/irrKlang/ik_ISoundSource.h @@ -0,0 +1,167 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_IRR_SOUND_SOURCE_H_INCLUDED__ +#define __I_IRRKLANG_IRR_SOUND_SOURCE_H_INCLUDED__ + +#include "ik_IVirtualRefCounted.h" +#include "ik_vec3d.h" +#include "ik_EStreamModes.h" +#include "ik_SAudioStreamFormat.h" + + +namespace irrklang +{ + + //! A sound source describes an input file (.ogg, .mp3, .wav or similar) 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. There is some example code on how + to use Sound sources at @ref soundSources.*/ + class ISoundSource : public IVirtualRefCounted + { + public: + + //! Returns the name of the sound source (usually, this is the file name) + virtual const ik_c8* getName() = 0; + + //! Sets the stream mode which should be used for a sound played from this source. + /** Note that if this is set to ESM_NO_STREAMING, the engine still might decide + to stream the sound if it is too big. The threashold for this can be + adjusted using ISoundSource::setForcedStreamingThreshold(). */ + virtual void setStreamMode(E_STREAM_MODE mode) = 0; + + //! Returns the detected or set type of the sound with wich the sound will be played. + /** Note: If the returned type is ESM_AUTO_DETECT, this mode will change after the + sound has been played the first time. */ + virtual E_STREAM_MODE getStreamMode() = 0; + + //! Returns the play length of the sound in milliseconds. + /** Returns -1 if not known for this sound for example because its decoder + does not support lenght reporting or it is a file stream of unknown size. + Note: If the sound never has been played before, the sound engine will have to open + the file and try to get the play lenght from there, so this call could take a bit depending + on the type of file. */ + virtual ik_u32 getPlayLength() = 0; + + //! Returns informations about the sound source: channel count (mono/stereo), frame count, sample rate, etc. + /** \return Returns the structure filled with 0 or negative values if not known for this sound for example because + because the file could not be opened or similar. + Note: If the sound never has been played before, the sound engine will have to open + the file and try to get the play lenght from there, so this call could take a bit depending + on the type of file. */ + virtual SAudioStreamFormat getAudioFormat() = 0; + + //! Returns if sounds played from this source will support seeking via ISound::setPlayPosition(). + /* If a sound is seekable depends on the file type and the audio format. For example MOD files + cannot be seeked currently. + \return Returns true of the sound source supports setPlayPosition() and false if not. + Note: If the sound never has been played before, the sound engine will have to open + the file and try to get the information from there, so this call could take a bit depending + on the type of file. */ + virtual bool getIsSeekingSupported() = 0; + + //! Sets the default volume for a sound played from this source. + /** The default value of this is 1.0f. + Note that the default volume is being multiplied with the master volume + of ISoundEngine, change this via ISoundEngine::setSoundVolume(). + //! \param volume 0 (silent) to 1.0f (full volume). Default value is 1.0f. */ + virtual void setDefaultVolume(ik_f32 volume=1.0f) = 0; + + //! Returns the default volume for a sound played from this source. + /** You can influence this default volume value using setDefaultVolume(). + Note that the default volume is being multiplied with the master volume + of ISoundEngine, change this via ISoundEngine::setSoundVolume(). + //! \return 0 (silent) to 1.0f (full volume). Default value is 1.0f. */ + virtual ik_f32 getDefaultVolume() = 0; + + //! sets the default minimal distance for 3D sounds played from this source. + /** This value influences how loud a sound is heard based on its distance. + See ISound::setMinDistance() for details about what the min distance is. + This method only influences the initial distance value of sounds. For changing the + distance while the sound is playing, use ISound::setMinDistance() and ISound::setMaxDistance(). + \param minDistance: Default minimal distance for 3D sounds from this source. Set it to a negative + value to let sounds of this source use the engine level default min distance, which + can be set via ISoundEngine::setDefault3DSoundMinDistance(). Default value is -1, causing + the default min distance of the sound engine to take effect. */ + virtual void setDefaultMinDistance(ik_f32 minDistance) = 0; + + //! Returns the default minimal distance for 3D sounds played from this source. + /** This value influences how loud a sound is heard based on its distance. + See ISound::setMinDistance() for details about what the minimal distance is. + \return Default minimal distance for 3d sounds from this source. If setDefaultMinDistance() + was set to a negative value, it will return the default value set in the engine, + using ISoundEngine::setDefault3DSoundMinDistance(). Default value is -1, causing + the default min distance of the sound engine to take effect. */ + virtual ik_f32 getDefaultMinDistance() = 0; + + //! Sets the default maximal distance for 3D sounds played from this source. + /** Changing this value is usually not necessary. Use setDefaultMinDistance() instead. + Don't change this value if you don't know what you are doing: This value causes the sound + to stop attenuating after it reaches the max distance. Most people think that this sets the + volume of the sound to 0 after this distance, but this is not true. Only change the + minimal distance (using for example setDefaultMinDistance()) to influence this. + See ISound::setMaxDistance() for details about what the max distance is. + This method only influences the initial distance value of sounds. For changing the + distance while the sound is played, use ISound::setMinDistance() + and ISound::setMaxDistance(). + \param maxDistance Default maximal distance for 3D sounds from this source. Set it to a negative + value to let sounds of this source use the engine level default max distance, which + can be set via ISoundEngine::setDefault3DSoundMaxDistance(). Default value is -1, causing + the default max distance of the sound engine to take effect. */ + virtual void setDefaultMaxDistance(ik_f32 maxDistance) = 0; + + //! returns the default maxmial distance for 3D sounds played from this source. + /** This value influences how loud a sound is heard based on its distance. + Changing this value is usually not necessary. Use setDefaultMinDistance() instead. + Don't change this value if you don't know what you are doing: This value causes the sound + to stop attenuating after it reaches the max distance. Most people think that this sets the + volume of the sound to 0 after this distance, but this is not true. Only change the + minimal distance (using for example setDefaultMinDistance()) to influence this. + See ISound::setMaxDistance() for details about what the max distance is. + \return Default maximal distance for 3D sounds from this source. If setDefaultMaxDistance() + was set to a negative value, it will return the default value set in the engine, + using ISoundEngine::setDefault3DSoundMaxDistance(). Default value is -1, causing + the default max distance of the sound engine to take effect. */ + virtual ik_f32 getDefaultMaxDistance() = 0; + + //! Forces the sound to be reloaded at next replay. + /** Sounds which are not played as streams are buffered to make it possible to + replay them without much overhead. If the sound file is altered after the sound + has been played the first time, the engine won't play the changed file then. + Calling this method makes the engine reload the file before the file is played + the next time.*/ + virtual void forceReloadAtNextUse() = 0; + + //! Sets the threshold size where irrKlang decides to force streaming a file independent of the user specified setting. + /** When specifying ESM_NO_STREAMING for playing back a sound file, irrKlang will + ignore this setting if the file is bigger than this threshold and stream the file + anyway. Please note that if an audio format loader is not able to return the + size of a sound source and returns -1 as length, this will be ignored as well + and streaming has to be forced. + \param threshold: New threshold. The value is specified in uncompressed bytes and its default value is + about one Megabyte. Set to 0 or a negative value to disable stream forcing. */ + virtual void setForcedStreamingThreshold(ik_s32 thresholdBytes) = 0; + + //! Returns the threshold size where irrKlang decides to force streaming a file independent of the user specified setting. + /** The value is specified in uncompressed bytes and its default value is + about one Megabyte. See setForcedStreamingThreshold() for details. */ + virtual ik_s32 getForcedStreamingThreshold() = 0; + + //! Returns a pointer to the loaded and decoded sample data. + /** \return Returns a pointer to the sample data. The data is provided in decoded PCM data. The + exact format can be retrieved using getAudioFormat(). Use getAudioFormat().getSampleDataSize() + for getting the amount of bytes. The returned pointer will only be valid as long as the sound + source exists. + This function will only return a pointer to the data if the + audio file is not streamed, namely ESM_NO_STREAMING. Otherwise this function will return 0. + Note: If the sound never has been played before, the sound engine will have to open + the file and decode audio data from there, so this call could take a bit depending + on the type of the file.*/ + virtual void* getSampleData() = 0; + }; + +} // end namespace irrklang + + +#endif diff --git a/includes/irrKlang/ik_ISoundStopEventReceiver.h b/includes/irrKlang/ik_ISoundStopEventReceiver.h new file mode 100644 index 0000000..511a8b0 --- /dev/null +++ b/includes/irrKlang/ik_ISoundStopEventReceiver.h @@ -0,0 +1,72 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_SOUND_STOP_EVENT_RECEIVER_H_INCLUDED__ +#define __I_IRRKLANG_SOUND_STOP_EVENT_RECEIVER_H_INCLUDED__ + +#include "ik_IRefCounted.h" +#include "ik_SAudioStreamFormat.h" + + +namespace irrklang +{ + + +//! An enumeration listing all reasons for a fired sound stop event +enum E_STOP_EVENT_CAUSE +{ + //! The sound stop event was fired because the sound finished playing + ESEC_SOUND_FINISHED_PLAYING = 0, + + //! The sound stop event was fired because the sound was stopped by the user, calling ISound::stop(). + ESEC_SOUND_STOPPED_BY_USER, + + //! The sound stop event was fired because the source of the sound was removed, for example + //! because irrKlang was shut down or the user called ISoundEngine::removeSoundSource(). + ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL, + + //! This enumeration literal is never used, it only forces the compiler to + //! compile these enumeration values to 32 bit. + ESEC_FORCE_32_BIT = 0x7fffffff +}; + + +//! 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. */ +class ISoundStopEventReceiver +{ +public: + + //! destructor + virtual ~ISoundStopEventReceiver() {}; + + //! Called when a sound has stopped playing. + /** This is the only method to be implemented by the user. + 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. + Please note: Sound events will occur in a different thread when the engine runs in + multi threaded mode (default). In single threaded mode, the event will happen while + the user thread is calling ISoundEngine::update(). + \param sound: Sound which has been stopped. + \param reason: The reason why the sound stop event was fired. Usually, this will be ESEC_SOUND_FINISHED_PLAYING. + When the sound was aborded by calling ISound::stop() or ISoundEngine::stopAllSounds();, this would be + ESEC_SOUND_STOPPED_BY_USER. If irrKlang was deleted or the sound source was removed, the value is + ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL. + \param userData: userData pointer set by the user when registering the interface + via ISound::setSoundStopEventReceiver(). */ + virtual void OnSoundStopped(ISound* sound, E_STOP_EVENT_CAUSE reason, void* userData) = 0; + +}; + + +} // end namespace irrklang + + +#endif + diff --git a/includes/irrKlang/ik_IVirtualRefCounted.h b/includes/irrKlang/ik_IVirtualRefCounted.h new file mode 100644 index 0000000..86b589f --- /dev/null +++ b/includes/irrKlang/ik_IVirtualRefCounted.h @@ -0,0 +1,48 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __I_IRRKLANG_VIRTUAL_UNKNOWN_H_INCLUDED__ +#define __I_IRRKLANG_VIRTUAL_UNKNOWN_H_INCLUDED__ + +#include "ik_irrKlangTypes.h" + + +namespace irrklang +{ + + //! Reference counting base class for objects in the Irrlicht Engine similar to IRefCounted. + /** See IRefCounted for the basics of this class. + The difference to IRefCounted is that the class has to implement reference counting + for itself. + */ + class IVirtualRefCounted + { + public: + + //! Destructor. + virtual ~IVirtualRefCounted() + { + } + + //! Grabs the object. Increments the reference counter by one. + /** To be implemented by the derived class. If you don't want to + implement this, use the class IRefCounted instead. See IRefCounted::grab() for details + of this method. */ + virtual void grab() = 0; + + //! Drops the object. Decrements the reference counter by one. + /** To be implemented by the derived class. If you don't want to + implement this, use the class IRefCounted instead. See IRefCounted::grab() for details + of this method. */ + virtual bool drop() = 0; + }; + + + +} // end namespace irrklang + + + +#endif + diff --git a/includes/irrKlang/ik_SAudioStreamFormat.h b/includes/irrKlang/ik_SAudioStreamFormat.h new file mode 100644 index 0000000..cc6d343 --- /dev/null +++ b/includes/irrKlang/ik_SAudioStreamFormat.h @@ -0,0 +1,71 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __S_IRRKLANG_AUDIO_STREAM_FORMAT_H_INCLUDED__ +#define __S_IRRKLANG_AUDIO_STREAM_FORMAT_H_INCLUDED__ + +#include "ik_IRefCounted.h" + + +namespace irrklang +{ + + //! audio sample data format enumeration for supported formats + enum ESampleFormat + { + //! one unsigned byte (0;255) + ESF_U8, + + //! 16 bit, signed (-32k;32k) + ESF_S16 + }; + + + //! structure describing an audio stream format with helper functions + struct SAudioStreamFormat + { + //! channels, 1 for mono, 2 for stereo + ik_s32 ChannelCount; + + //! amount of frames in the sample data or stream. + /** If the stream has an unknown lenght, this is -1 */ + ik_s32 FrameCount; + + //! samples per second + ik_s32 SampleRate; + + //! format of the sample data + ESampleFormat SampleFormat; + + //! returns the size of a sample of the data described by the stream data in bytes + inline ik_s32 getSampleSize() const + { + return (SampleFormat == ESF_U8) ? 1 : 2; + } + + //! returns the frame size of the stream data in bytes + inline ik_s32 getFrameSize() const + { + return ChannelCount * getSampleSize(); + } + + //! returns the size of the sample data in bytes + /* Returns an invalid negative value when the stream has an unknown lenght */ + inline ik_s32 getSampleDataSize() const + { + return getFrameSize() * FrameCount; + } + + //! returns amount of bytes per second + inline ik_s32 getBytesPerSecond() const + { + return getFrameSize() * SampleRate; + } + }; + + +} // end namespace irrklang + +#endif + diff --git a/includes/irrKlang/ik_irrKlangTypes.h b/includes/irrKlang/ik_irrKlangTypes.h new file mode 100644 index 0000000..e2b1560 --- /dev/null +++ b/includes/irrKlang/ik_irrKlangTypes.h @@ -0,0 +1,96 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __IRRKLANG_TYPES_H_INCLUDED__ +#define __IRRKLANG_TYPES_H_INCLUDED__ + + +namespace irrklang +{ + + //! 8 bit unsigned variable. + /** This is a typedef for unsigned char, it ensures portability of the engine. */ + typedef unsigned char ik_u8; + + //! 8 bit signed variable. + /** This is a typedef for signed char, it ensures portability of the engine. */ + typedef signed char ik_s8; + + //! 8 bit character variable. + /** This is a typedef for char, it ensures portability of the engine. */ + typedef char ik_c8; + + + + //! 16 bit unsigned variable. + /** This is a typedef for unsigned short, it ensures portability of the engine. */ + typedef unsigned short ik_u16; + + //! 16 bit signed variable. + /** This is a typedef for signed short, it ensures portability of the engine. */ + typedef signed short ik_s16; + + + + //! 32 bit unsigned variable. + /** This is a typedef for unsigned int, it ensures portability of the engine. */ + typedef unsigned int ik_u32; + + //! 32 bit signed variable. + /** This is a typedef for signed int, it ensures portability of the engine. */ + typedef signed int ik_s32; + + + + //! 32 bit floating point variable. + /** This is a typedef for float, it ensures portability of the engine. */ + typedef float ik_f32; + + //! 64 bit floating point variable. + /** This is a typedef for double, it ensures portability of the engine. */ + typedef double ik_f64; + + + + // some constants + + const ik_f32 IK_ROUNDING_ERROR_32 = 0.000001f; + const ik_f64 IK_PI64 = 3.1415926535897932384626433832795028841971693993751; + const ik_f32 IK_PI32 = 3.14159265359f; + const ik_f32 IK_RADTODEG = 180.0f / IK_PI32; + const ik_f32 IK_DEGTORAD = IK_PI32 / 180.0f; + const ik_f64 IK_RADTODEG64 = 180.0 / IK_PI64; + const ik_f64 IK_DEGTORAD64 = IK_PI64 / 180.0; + + //! returns if a float equals the other one, taking floating + //! point rounding errors into account + inline bool equalsfloat(const ik_f32 a, const ik_f32 b, const ik_f32 tolerance = IK_ROUNDING_ERROR_32) + { + return (a + tolerance > b) && (a - tolerance < b); + } + +} // end irrklang namespace + +// ensure wchar_t type is existing for unicode support +#include + +// define the wchar_t type if not already built in. +#ifdef _MSC_VER // microsoft compiler + #ifndef _WCHAR_T_DEFINED + //! A 16 bit wide character type. + /** + Defines the wchar_t-type. + In VS6, its not possible to tell + the standard compiler to treat wchar_t as a built-in type, and + sometimes we just don't want to include the huge stdlib.h or wchar.h, + so we'll use this. + */ + typedef unsigned short wchar_t; + #define _WCHAR_T_DEFINED + #endif // wchar is not defined +#endif // microsoft compiler + + +#endif // __IRR_TYPES_H_INCLUDED__ + diff --git a/includes/irrKlang/ik_vec3d.h b/includes/irrKlang/ik_vec3d.h new file mode 100644 index 0000000..ce56669 --- /dev/null +++ b/includes/irrKlang/ik_vec3d.h @@ -0,0 +1,261 @@ +// Copyright (C) 2002-2018 Nikolaus Gebhardt +// This file is part of the "irrKlang" library. +// For conditions of distribution and use, see copyright notice in irrKlang.h + +#ifndef __IRR_IRRKLANG_VEC_3D_H_INCLUDED__ +#define __IRR_IRRKLANG_VEC_3D_H_INCLUDED__ + +#include +#include "ik_irrKlangTypes.h" + + +namespace irrklang +{ + + //! a 3d vector template class for representing vectors and points in 3d + template + class vec3d + { + public: + + vec3d(): X(0), Y(0), Z(0) {}; + vec3d(T nx, T ny, T nz) : X(nx), Y(ny), Z(nz) {}; + vec3d(const vec3d& other) :X(other.X), Y(other.Y), Z(other.Z) {}; + + //! constructor creating an irrklang vec3d from an irrlicht vector. + #ifdef __IRR_POINT_3D_H_INCLUDED__ + template + vec3d(const B& other) :X(other.X), Y(other.Y), Z(other.Z) {}; + #endif // __IRR_POINT_3D_H_INCLUDED__ + + // operators + + vec3d operator-() const { return vec3d(-X, -Y, -Z); } + + vec3d& operator=(const vec3d& other) { X = other.X; Y = other.Y; Z = other.Z; return *this; } + + vec3d operator+(const vec3d& other) const { return vec3d(X + other.X, Y + other.Y, Z + other.Z); } + vec3d& operator+=(const vec3d& other) { X+=other.X; Y+=other.Y; Z+=other.Z; return *this; } + + vec3d operator-(const vec3d& other) const { return vec3d(X - other.X, Y - other.Y, Z - other.Z); } + vec3d& operator-=(const vec3d& other) { X-=other.X; Y-=other.Y; Z-=other.Z; return *this; } + + vec3d operator*(const vec3d& other) const { return vec3d(X * other.X, Y * other.Y, Z * other.Z); } + vec3d& operator*=(const vec3d& other) { X*=other.X; Y*=other.Y; Z*=other.Z; return *this; } + vec3d operator*(const T v) const { return vec3d(X * v, Y * v, Z * v); } + vec3d& operator*=(const T v) { X*=v; Y*=v; Z*=v; return *this; } + + vec3d operator/(const vec3d& other) const { return vec3d(X / other.X, Y / other.Y, Z / other.Z); } + vec3d& operator/=(const vec3d& other) { X/=other.X; Y/=other.Y; Z/=other.Z; return *this; } + vec3d operator/(const T v) const { T i=(T)1.0/v; return vec3d(X * i, Y * i, Z * i); } + vec3d& operator/=(const T v) { T i=(T)1.0/v; X*=i; Y*=i; Z*=i; return *this; } + + bool operator<=(const vec3d&other) const { return X<=other.X && Y<=other.Y && Z<=other.Z;}; + bool operator>=(const vec3d&other) const { return X>=other.X && Y>=other.Y && Z>=other.Z;}; + + bool operator==(const vec3d& other) const { return other.X==X && other.Y==Y && other.Z==Z; } + bool operator!=(const vec3d& other) const { return other.X!=X || other.Y!=Y || other.Z!=Z; } + + // functions + + //! returns if this vector equalsfloat the other one, taking floating point rounding errors into account + bool equals(const vec3d& other) + { + return equalsfloat(X, other.X) && + equalsfloat(Y, other.Y) && + equalsfloat(Z, other.Z); + } + + void set(const T nx, const T ny, const T nz) {X=nx; Y=ny; Z=nz; } + void set(const vec3d& p) { X=p.X; Y=p.Y; Z=p.Z;} + + //! Returns length of the vector. + ik_f64 getLength() const { return sqrt(X*X + Y*Y + Z*Z); } + + //! Returns squared length of the vector. + /** This is useful because it is much faster then + getLength(). */ + ik_f64 getLengthSQ() const { return X*X + Y*Y + Z*Z; } + + //! Returns the dot product with another vector. + T dotProduct(const vec3d& other) const + { + return X*other.X + Y*other.Y + Z*other.Z; + } + + //! Returns distance from an other point. + /** Here, the vector is interpreted as point in 3 dimensional space. */ + ik_f64 getDistanceFrom(const vec3d& other) const + { + ik_f64 vx = X - other.X; ik_f64 vy = Y - other.Y; ik_f64 vz = Z - other.Z; + return sqrt(vx*vx + vy*vy + vz*vz); + } + + //! Returns squared distance from an other point. + /** Here, the vector is interpreted as point in 3 dimensional space. */ + ik_f32 getDistanceFromSQ(const vec3d& other) const + { + ik_f32 vx = X - other.X; ik_f32 vy = Y - other.Y; ik_f32 vz = Z - other.Z; + return (vx*vx + vy*vy + vz*vz); + } + + //! Calculates the cross product with another vector + vec3d crossProduct(const vec3d& p) const + { + return vec3d(Y * p.Z - Z * p.Y, Z * p.X - X * p.Z, X * p.Y - Y * p.X); + } + + //! Returns if this vector interpreted as a point is on a line between two other points. + /** It is assumed that the point is on the line. */ + bool isBetweenPoints(const vec3d& begin, const vec3d& end) const + { + ik_f32 f = (ik_f32)(end - begin).getLengthSQ(); + return (ik_f32)getDistanceFromSQ(begin) < f && + (ik_f32)getDistanceFromSQ(end) < f; + } + + //! Normalizes the vector. + vec3d& normalize() + { + T l = (T)getLength(); + if (l == 0) + return *this; + + l = (T)1.0 / l; + X *= l; + Y *= l; + Z *= l; + return *this; + } + + //! Sets the lenght of the vector to a new value + void setLength(T newlength) + { + normalize(); + *this *= newlength; + } + + //! Inverts the vector. + void invert() + { + X *= -1.0f; + Y *= -1.0f; + Z *= -1.0f; + } + + //! Rotates the vector by a specified number of degrees around the Y + //! axis and the specified center. + //! \param degrees: Number of degrees to rotate around the Y axis. + //! \param center: The center of the rotation. + void rotateXZBy(ik_f64 degrees, const vec3d& center) + { + degrees *= IK_DEGTORAD64; + T cs = (T)cos(degrees); + T sn = (T)sin(degrees); + X -= center.X; + Z -= center.Z; + set(X*cs - Z*sn, Y, X*sn + Z*cs); + X += center.X; + Z += center.Z; + } + + //! Rotates the vector by a specified number of degrees around the Z + //! axis and the specified center. + //! \param degrees: Number of degrees to rotate around the Z axis. + //! \param center: The center of the rotation. + void rotateXYBy(ik_f64 degrees, const vec3d& center) + { + degrees *= IK_DEGTORAD64; + T cs = (T)cos(degrees); + T sn = (T)sin(degrees); + X -= center.X; + Y -= center.Y; + set(X*cs - Y*sn, X*sn + Y*cs, Z); + X += center.X; + Y += center.Y; + } + + //! Rotates the vector by a specified number of degrees around the X + //! axis and the specified center. + //! \param degrees: Number of degrees to rotate around the X axis. + //! \param center: The center of the rotation. + void rotateYZBy(ik_f64 degrees, const vec3d& center) + { + degrees *= IK_DEGTORAD64; + T cs = (T)cos(degrees); + T sn = (T)sin(degrees); + Z -= center.Z; + Y -= center.Y; + set(X, Y*cs - Z*sn, Y*sn + Z*cs); + Z += center.Z; + Y += center.Y; + } + + //! Returns interpolated vector. + /** \param other: other vector to interpolate between + \param d: value between 0.0f and 1.0f. */ + vec3d getInterpolated(const vec3d& other, ik_f32 d) const + { + ik_f32 inv = 1.0f - d; + return vec3d(other.X*inv + X*d, + other.Y*inv + Y*d, + other.Z*inv + Z*d); + } + + //! Gets the Y and Z rotations of a vector. + /** Thanks to Arras on the Irrlicht forums to add this method. + \return A vector representing the rotation in degrees of + this vector. The Z component of the vector will always be 0. */ + vec3d getHorizontalAngle() + { + vec3d angle; + + angle.Y = (T)atan2(X, Z); + angle.Y *= (ik_f32)IK_RADTODEG; + + if (angle.Y < 0.0f) angle.Y += 360.0f; + if (angle.Y >= 360.0f) angle.Y -= 360.0f; + + ik_f32 z1 = (T)sqrt(X*X + Z*Z); + + angle.X = (T)atan2(z1, Y); + angle.X *= (ik_f32)IK_RADTODEG; + angle.X -= 90.0f; + + if (angle.X < 0.0f) angle.X += 360.0f; + if (angle.X >= 360) angle.X -= 360.0f; + + return angle; + } + + //! Fills an array of 4 values with the vector data (usually floats). + /** Useful for setting in shader constants for example. The fourth value + will always be 0. */ + void getAs4Values(T* array) + { + array[0] = X; + array[1] = Y; + array[2] = Z; + array[3] = 0; + } + + + // member variables + + T X, Y, Z; + }; + + + //! Typedef for a ik_f32 3d vector, a vector using floats for X, Y and Z + typedef vec3d vec3df; + + //! Typedef for an integer 3d vector, a vector using ints for X, Y and Z + typedef vec3d vec3di; + + template vec3d operator*(const S scalar, const vec3d& vector) { return vector*scalar; } + +} // end namespace irrklang + + +#endif + diff --git a/includes/irrKlang/irrKlang.h b/includes/irrKlang/irrKlang.h new file mode 100644 index 0000000..33f9ea0 --- /dev/null +++ b/includes/irrKlang/irrKlang.h @@ -0,0 +1,1040 @@ +/* irrKlang.h -- interface of the 'irrKlang' library + + Copyright (C) 2002-2018 Nikolaus Gebhardt + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. +*/ + +#ifndef __IRR_KLANG_H_INCLUDED__ +#define __IRR_KLANG_H_INCLUDED__ + +#include "ik_irrKlangTypes.h" +#include "ik_vec3d.h" + +#include "ik_IRefCounted.h" +#include "ik_IVirtualRefCounted.h" + +#include "ik_ESoundOutputDrivers.h" +#include "ik_ESoundEngineOptions.h" +#include "ik_EStreamModes.h" +#include "ik_SAudioStreamFormat.h" +#include "ik_ISoundEngine.h" +#include "ik_ISoundSource.h" +#include "ik_ISound.h" +#include "ik_IAudioStream.h" +#include "ik_IAudioStreamLoader.h" +#include "ik_ISoundEffectControl.h" +#include "ik_ISoundStopEventReceiver.h" +#include "ik_IFileFactory.h" +#include "ik_IFileReader.h" +#include "ik_ISoundDeviceList.h" +#include "ik_IAudioRecorder.h" +#include "ik_ISoundMixedOutputReceiver.h" + +//! irrKlang Version +#define IRR_KLANG_VERSION "1.6.0" + +/*! \mainpage irrKlang 1.6.0 API documentation + * + *

+ + * \section contents Contents + * General:
+ * @ref intro
+ * @ref features
+ * @ref links
+ * @ref tipsandtricks
+ *
+ * Programming irrKlang:
+ * @ref concept
+ * @ref playingSounds
+ * @ref changingSounds
+ * @ref soundSources
+ * @ref sound3d
+ * @ref removingSounds
+ * @ref events
+ * @ref memoryPlayback
+ * @ref effects
+ * @ref fileOverriding
+ * @ref audioDecoders
+ * @ref plugins
+ * @ref staticLib
+ * @ref enumeratingDevices
+ * @ref recordingAudio
+ * @ref unicode
+ *
+ * Short full examples:
+ * @ref quickstartexample
+ * @ref quickstartexample2
+ *
+ *
+ * + * \section intro Introduction + * + * Welcome to the irrKlang API documentation. This page should give you a short overview + * over irrKlang, the high level audio library. + * In this documentation files you'll find any information you'll need to develop applications with + * irrKlang using C++. If you are looking for a tutorial on how to start, you'll + * find some on the homepage of irrKlang at + *
http://www.ambiera.com/irrklang + * or inside the SDK in the directory \examples. + * + * The irrKlang library is intended to be an easy-to-use 3d and 2d sound engine, so + * this documentation is an important part of it. If you have any questions or + * suggestions, please take a look into the ambiera.com forum or just send a mail. + * + *
+ *
+ * + * + * \section features Features of irrKlang + * + * irrKlang is a high level 2D and 3D + * cross platform sound engine and audio library. + * It has a very simply object orientated interface and was designed to be used + * in games, scientific simulations, architectural visualizations and similar. + * irrKlang plays several file formats such as + *
    + *
  • RIFF WAVE (*.wav)
  • + *
  • Ogg Vorbis (*.ogg)
  • + *
  • MPEG-1 Audio Layer 3 (*.mp3)
  • + *
  • Free Lossless Audio Codec (*.flac)
  • + *
  • Amiga Modules (*.mod)
  • + *
  • Impulse Tracker (*.it)
  • + *
  • Scream Tracker 3 (*.s3d)
  • + *
  • Fast Tracker 2 (*.xm)
  • + *
+ * It is also able to run on different operating systems and use several output drivers: + *
    + *
  • Windows 98, ME, NT 4, 2000, XP, Vista, Windows 7, Windows 8
  • + *
      + *
    • DirectSound
    • + *
    • DirectSound8
    • + *
    • WinMM
    • + *
    + *
  • Linux / *nix
  • + *
      + *
    • ALSA
    • + *
    + *
  • MacOSX (x86 and PPC)
  • + *
      + *
    • CoreAudio
    • + *
    + *
+ *
+ *
+ *
+ * + * + * + * \section links Links into the API documentation + * + * irrklang::ISoundEngine: The main class of irrKlang.
+ * Class list: List of all classes with descriptions.
+ * Class members: Good place to find forgotten features.
+ *
+ *
+ *
+ * + * + * + * \section tipsandtricks Tips and Tricks + * + * This section lists a few tips you might consider when implementing the sound part of your application + * using irrKlang: + * + *
    + *
  • If you can choose which audio file format is the primary one for your application, + * use .OGG files, instead of for example .MP3 files. irrKlang uses a lot less memory + * and CPU power when playing .OGGs.
  • + *
  • To keep your application simple, each time you play a sound, you can use for example + * play2D("filename.mp3") and let irrKlang handle the rest. There is no need to implement + * a preloading/caching/file management system for the audio playback. irrKlang will handle + * all this by itself and will never load a file twice.
  • + *
  • irrKlang is crashing in your application? This should not happen, irrKlang is pretty stable, + * and in most cases, this is a problem in your code: In a lot of cases the reason is simply + * a wrong call to irrklang::IRefCounted::drop(). Be sure you are doing it correctly. (If you are unsure, + * tempoarily remove all calls to irrklang::IRefCounted::drop() and see if this helps.)
  • + *
+ * + *
+ *
+ *
+ *
+ * + * + * + * \section concept Starting up the Engine + * + * irrKlang is designed so that it is very easy to achieve everything, its interface should + * be very simple to use. The @ref quickstartexample shows how to play and mp3 file, and there + * is another example, @ref quickstartexample2, showing some few more details.
+ * To start up the sound engine, you simply need to call createIrrKlangDevice(). To shut it down, + * call IRefCounted::drop(): + * + * \code + * #include + * + * // ... + * + * // start up the engine + * irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice(); + * + * // ... + * + * // after finished, + * // close the engine again, similar as calling 'delete' + * engine->drop(); + * \endcode + * + * The createIrrKlangDevice() function also accepts several parameters, so that you can + * specify which sound driver should be used, if plugins should be used, if irrKlang + * should run in multithreaded mode, and similar. + *
+ *
+ *
+ *
+ * + * + * + * \section playingSounds Playing Sounds + * + * Once you have irrKlang running (like in @ref concept), you can start playing sounds: + * + * \code + * engine->play2D("someSoundFile.wav"); + * \endcode + * + * This works with all supported file types. You can replace "someSoundFile.wav" with + * "someSoundFile.mp3", or "someSoundFile.ogg", for example.
+ * To play a sound looped, set the second parameter to 'true': + * + * \code + * engine->play2D("myMusic.mp3", true); + * \endcode + * + * To stop this looping sound again, use engine->\link irrklang::ISoundEngine::stopAllSounds stopAllSounds()\endlink to stop all sounds, or + * irrklang::ISound::stop() if you only want to stop that single sound. @ref changingSounds + * shows how to get to that ISound interface. + *
+ *
+ *
+ *
+ * + * + * \section changingSounds Influencing Sounds during Playback + * To influence parameters of the sound such as pan, volume or playback speed during runtime, + * to get the play position or stop playback of single playing sounds, + * you can use the irrklang::ISound interface. + * irrklang::ISoundEngine::play2D (but also play3D) returns + * a pointer to this interface when its third ('startPaused') or fourth ('track') parameter + * was set to true: + * + * \code + * irrklang::ISound* snd = engine->play2D("myMusic.mp3", true, false, true); + * + * // ... + * + * if (snd) + * snd->setVolume(someNewValue); + * + * // ... + * + * if (snd) + * { + * snd->drop(); // don't forget to release the pointer once it is no longer needed by you + * snd = 0; + * } + * \endcode + * + * The irrklang::ISound interface can also be used to test if the sound has been finished, + * set event receivers, pause and unpause sounds and similar. + *
+ *
+ *
+ *
+ * + * + * \section soundSources Using Sound Sources + * + * To be more flexible playing back sounds, irrKlang uses the concept of sound sources. + * A sound source can be simply the name of a sound file, such as "sound.wav". It is possible + * to add "sound.wav" as sound source to irrKlang, and play it using the sound source pointer: + * + * \code + * irrklang::ISoundSource* shootSound = engine->addSoundSourceFromFile("shoot.wav"); + * + * engine->play2D(shootSound); + * + * // note: you don't need to drop() the shootSound if you don't use it anymore + * \endcode + * + * The advantage of using irrklang::ISoundSource is that it is possible to set + * default values for this source, such + * as volume or distances if it should be used as 3D sound: + * + * \code + * irrklang::ISoundSource* shootSound = engine->addSoundSourceFromFile("shoot.wav"); + * + * shootSound->setDefaultVolume(0.5f); + * + * // shootSound will now be played with half its sound volume by default: + * engine->play2D(shootSound); + * \endcode + * + * It is also possible to have multiple settings for the same sound file: + * + * \code + * irrklang::ISoundSource* shootSound = engine->addSoundSourceFromFile("shoot.wav"); + * irrklang::ISoundSource* shootSound2 = engine->addSoundSourceAlias(shootSound, "silentShoot"); + * + * shootSound2->setDefaultVolume(0.1f); + * + * // shootSound will now be played with 100% of its sound volume by default, + * // shootSound2 will now be played 10% of its sound volume by default. It is + * // also possible to play it using engine->play("silentShoot"), now. + * \endcode + * + * Using addSoundSourceFromMemory(), it is also possible to play sounds back directly from memory, + * without files. + * Of course, it is not necessary to use sound sources. Using irrklang::ISound, it is + * possible to change the settings of all sounds, too. But using sound sources, it is + * not necessary to do this every time a sound is played. + *
+ *
+ *
+ *
+ * + * + * + * \section sound3d 3D Sound + * + * There is nothing difficult in playing sounds in 3D using irrKlang: Instead of using + * irrklang::ISoundEngine::play2D(), just use irrklang::ISoundEngine::play3D(), which + * takes a 3D position as additional parameter: + * + * \code + * irrklang::vec3df position(23,70,90); + * engine->play3D("yourSound.wav", position); + * \endcode + * + * But to make it sound realistic, you need to set a minimal sound + * distance: If your sound is caused by a bee, it will usually have a smaller + * sound radius than for example a jet engine. You can set default values using sound sources + * (see @ref soundSources) or set these values after you have started the sound paused: + * + * \code + * irrklang::vec3df position(23,70,90); + * + * // start the sound paused: + * irrklang::ISound* snd = engine->play3D("yourSound.wav", position, false, true); + * + * if (snd) + * { + * snd->setMinDistance(30.0f); // a loud sound + * snd->setIsPaused(false); // unpause the sound + * } + * \endcode + * + * There is also the possibility to change the maxDistance, but it is only necessary to change this + * in very rare cicumstances. + * If the sound moves, it is also a good idea to update its position from time to time: + * + * \code + * if (snd) + * snd->setPosition(newPosition); + * \endcode + * + * And don't forget to drop() the sound after you don't need it anymore. If you do, it's + * nothing severe because irrKlang will still clean up the sounds resources after it has + * finished, but you still would waste some few bytes of memory: + * + * \code + * if (snd) + * { + * snd->drop(); + * snd = 0; + * } + * \endcode + * + * To update the position of yourself, the listener of the 3D sounds, use this from + * time to time: + * + * \code + * irrklang::vec3df position(0,0,0); // position of the listener + * irrklang::vec3df lookDirection(10,0,10); // the direction the listener looks into + * irrklang::vec3df velPerSecond(0,0,0); // only relevant for doppler effects + * irrklang::vec3df upVector(0,1,0); // where 'up' is in your 3D scene + * + * engine->setListenerPosition(position, lookDirection, velPerSecond, upVector); + * \endcode + * + *
+ *
+ *
+ *
+ * + * + * \section removingSounds Removing Sounds + * + * irrKlang manages the memory usage of sounds by itself, so usually, you don't have + * to care about memory management. But if you know you need to reduce the + * amount of used memory at a certain point in your program, you can do this: + * + * \code + * engine->removeAllSoundSources(); + * \endcode + * + * This will remove all sounds and also cause all sounds to be stopped. To remove single + * sounds from the engine, use: + * + * \code + * engine->removeSoundSource(pointerToSomeSoundSource); + * // or: + * engine->removeSoundSource("nameOfASoundFile.wav"); + * \endcode + * + * Note: Only removing buffered sounds will reduce the amount of memory used by irrKlang, streamed + * sounds don't occupy a lot of memory when they are not played. + *
+ *
+ *
+ *
+ * + * + * + * \section events Using Sound Events + * + * In order to wait for a sound to be finished, it is simply possible to + * poll irrklang::ISound::isFinished(). Another way would be to constantly use + * irrklang::ISoundEngine::isCurrentlyPlaying to test wether a sound with that name or source + * is currently playing. But of course, an event based approach is a lot nicer. That's why irrKlang + * supports sound events.
+ * The key to sound events is the method + * \link irrklang::ISound::setSoundStopEventReceiver setSoundStopEventReceiver \endlink + * of the irrklang::ISound interface + * (See @ref changingSounds on how to get the ISound interface): + * + * \code + * irrklang::ISound* snd = engine->play2D("speech.mp3", false, false, true); + * if (snd) + * snd->setSoundStopEventReceiver(yourEventReceiver, 0); + * \endcode + * + * The optional second parameter of setSoundStopEventReceiver is a user pointer, set it to whatever you like. + * 'yourEventReceiver' must be an implementation of the irrklang::ISoundStopEventReceiver interface.
+ * A whole implementation could look like this: + * + * \code + * class MySoundEndReceiver : public irrklang::ISoundStopEventReceiver + * { + * public: + * virtual void OnSoundStopped (irrklang::ISound* sound, irrklang::E_STOP_EVENT_CAUSE reason, void* userData) + * { + * // called when the sound has ended playing + * printf("sound has ended"); + * } + * } + * + * // ... + * + * MySoundEndReceiver* myReceiver = new MySoundEndReceiver(); + * irrklang::ISound* snd = engine->play2D("speech.mp3", false, false, true); + * if (snd) + * snd->setSoundStopEventReceiver(myReceiver); + * + * myReceiver->drop(); // similar to delete + * \endcode + * + * The irrklang::ISoundStopEventReceiver::OnSoundStopped() method is guaranteed to be called when a sound or sound stream has stopped, + * either because the sound reached its playback end, its sound source was removed, + * ISoundEngine::stopAllSounds() has been called or the whole engine was deleted. + *
+ *
+ *
+ *
+ * + * + * + * \section memoryPlayback Memory Playback + * + * Using irrKlang, it is easily possible to play sounds directly from memory instead out of + * files. There is an example project showing this: In the SDK, in /examples/03.MemoryPlayback. + * But in short, it simply works by adding the memory as sound source (See @ref soundSources for + * details about sound sources): + * + * \code + * engine->addSoundSourceFromMemory(pointerToMemory, memorySize, "nameforthesound.wav"); + * + * // play sound now + * engine->play2D("nameforthesound.wav"); + * \endcode + * + * Or using a sound source pointer: + * + * \code + * irrklang::ISoundSource* snd = + * engine->addSoundSourceFromMemory(pointerToMemory, memorySize, "nameforthesound.wav"); + * + * // play sound now + * engine->play2D(snd); + * \endcode + * + * Note: It is also possible to overwrite the file access directly, don't use this Memory Playback + * feature for this. See @ref fileOverriding for details. + *
+ *
+ *
+ *
+ * + * + * + * \section effects Sound Effects + * + * irrKlang supports the effects Chorus, Compressor, Distortion, Echo, Flanger + * Gargle, 3DL2Reverb, ParamEq and WavesReverb, when using the sound driver + * irrklang::ESOD_DIRECT_SOUND_8, which selected by default when using Windows.
+ * + * Using the irrklang::ISound interface, you can optain the irrklang::ISoundEffectControl + * interface if the sound device supports sound effects and the last parameter ('enableSoundEffects') + * was set to true when calling play2D(): + * + * \code + * irrklang::ISound* snd = engine->play2D("sound.wav", true, false, true, ESM_AUTO_DETECT, true); + * + * if (snd) + * { + * irrklang::ISoundEffectControl* fx = snd->getSoundEffectControl(); + * if (fx) + * { + * // enable the echo sound effect for this sound + * fx->enableEchoSoundEffect(); + * } + * } + * + * snd->drop(); + * \endcode + * + * This enabled the echo sound effect for this sound. The method also supports a lot of + * parameters, and can be called multiple times to change those parameters over time if wished. + * There are a lot of other sound effects, see irrklang::ISoundEffectControl for details. + *
+ *
+ *
+ *
+ * + * + * + * \section fileOverriding Overriding File Access + * + * It is possible to let irrKlang use your own file access functions. + * This is useful if you want to read sounds from other sources than + * just files, for example from custom internet streams or + * an own encypted archive format. There is an example in the SDK in + * examples/04.OverrideFileAccess which shows this as well.
+ * + * The only thing to do for this is to implement your own irrklang::IFileFactory, + * and set it in irrKlang using irrklang::ISoundEngine::addFileFactory(): + * + * \code + * // a class implementing the IFileFactory interface to override irrklang file access + * class CMyFileFactory : public irrklang::IFileFactory + * { + * public: + * + * // Opens a file for read access. Simply return 0 if file not found. + * virtual irrklang::IFileReader* createFileReader(const ik_c8* filename) + * { + * // return your own irrklang::IFileReader implementation here, for example like that: + * return new CMyReadFile(filename); + * } + * }; + * + * // ... + * + * CMyFileFactory* myFactory = new CMyFileFactory(); + * engine->addFileFactory(myFactory); + * myFactory->drop(); + * \endcode + * + * For a full example implementation, just take a look into the SDK in examples/04.OverrideFileAccess. + *
+ *
+ *
+ *
+ * + * + * + * \section audioDecoders Adding Audio Decoders + * + * To add support for new file formats, it is possible to add new audio decoders + * to irrKlang. + * The only thing to do for this is to implement your own irrklang::IAudioStreamLoader, + * and irrklang::IAudioStream, and set it in irrKlang using + * irrklang::ISoundEngine::registerAudioStreamLoader(): + * + * \code + * class NewAudioStreamLoader : public irrklang::IAudioStreamLoader + * { + * // ... returns NewAudioDecoder and the used file name suffices. + * }; + * + * class NewAudioDecoder : public irrklang::IAudioStream + * { + * public: + * // ... decodes the new file format + * }; + * + * // ... + * + * NewAudioDecoder* loader = new NewAudioDecoder(); + * engine->registerAudioStreamLoader(loader); + * loader->drop(); + * \endcode + * + * There is an example audio decoder and loader with full source in plugins/ikpMP3, which + * adds MP3 audio decoding capabilities to irrKlang. + *
+ *
+ *
+ *
+ * + * + * + * \section plugins Creating irrKlang Plugins + * + * irrKlang plugins are ikp*.dll (Windows), ikp*.so (Unix) or ikp*.dylib (MacOS) + * files which are loaded by irrKlang at startup when the + * irrklang::ESEO_LOAD_PLUGINS was set (which is default) or + * irrklang::ISoundEngine::loadPlugins() was called.
+ * + * The plugin only needs to contain the following function which will be called by irrKlang: + * + * \code + * #ifdef WIN32 + * // Windows version + * __declspec(dllexport) void __stdcall irrKlangPluginInit(ISoundEngine* engine, const char* version) + * #else + * // Linux and Mac OS version + * void irrKlangPluginInit(ISoundEngine* engine, const char* version) + * #endif + * { + * // your implementation here + * } + * \endcode + * + * In there, it is for example possible to extend irrKlang with new audio decoders, + * see @ref audioDecoders for details.
+ * + * There is an example plugin with full source in plugins/ikpMP3, which + * adds MP3 audio decoding capabilities to irrKlang. + *
+ *
+ *
+ *
+ * + * + * + * \section staticLib Using irrKlang as static Lib + * + * If you don't want to use the irrKlang.DLL file and link irrKlang statically, you can do this + * by simply linking to the irrKlang.lib in the bin/win32-visualstudio_lib folder. This folder + * will only available in the pro versions of irrKlang, which you get when purchasing an irrKlang + * license. + * + * To use irrKlang in this way, just define IRRKLANG_STATIC before including irrklang.h, like this: + * + * \code + * #define IRRKLANG_STATIC + * #include + * \endcode + * + * Of course, IRRKLANG_STATIC can also simply be defined in the project/compiler settings instead of + * in the source file. + *
+ *
+ *
+ *
+ * + * + * + * \section enumeratingDevices Enumerating sound devices + * + * irrKlang uses the default sound device when playing sound when started without parameters. But if you want + * irrKlang to playback sound on one specific sound device, you may want to enumerate the available + * sound devices on your system and select one of them. Use irrklang::createSoundDeviceList() for this. + * This example code shows how to print a list of all available sound devices on the current system and lets + * the user choose one of them: + * + * \code + * int main(int argc, const char** argv) + * { + * // enumerate devices + * + * irrklang::ISoundDeviceList* deviceList = createSoundDeviceList(); + * + * // ask user for a sound device + * + * printf("Devices available:\n\n"); + * + * for (int i=0; igetDeviceCount(); ++i) + * printf("%d: %s\n", i, deviceList->getDeviceDescription(i)); + * + * printf("\nselect a device using the number (or press any key to use default):\n\n"); + * int deviceNumber = getch() - '0'; + * + * // create device with the selected driver + * + * const char* deviceID = deviceList->getDeviceID(deviceNumber); + * + * ISoundEngine* engine = createIrrKlangDevice(irrklang::ESOD_AUTO_DETECT, + * irrklang::ESEO_DEFAULT_OPTIONS, + * deviceID); + * + * deviceList->drop(); // delete device list + * + * // ... use engine now + * } + * \endcode + * + * In this way, it is also possible to play back sound using two devices at the same time: Simply + * create two irrKlang devices with each a different deviceID.
+ * Note: createSoundDeviceList() takes a driver type parameter (such as irrklang::ESOD_DIRECT_SOUND8), which you + * have to set to the same value as the first parameter you want to use with createIrrKlangDevice(), if it is + * other than irrklang::ESOD_AUTO_DETECT. + *
+ *
+ *
+ *
+ * + * + * + * \section recordingAudio Recording Audio + * + * irrKlang is able to record audio from sound capturing devices such as microphones (currently only + * supported in windows). Use the irrklang::IAudioRecorder interface to do this. The following example shows how + * to record some audio and play it back again using the engine: + * + * \code + * int main(int argc, const char** argv) + * { + * irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice(); + * irrklang::IAudioRecorder* recorder = irrklang::createIrrKlangAudioRecorder(engine); + * + * if (!engine || !recorder) + * { + * printf("Could not create audio engine or audio recoder\n"); + * return 1; + * } + * + * printf("\nPress any key to start recording audio...\n"); + * getch(); + * + * // record some audio + * + * recorder->startRecordingBufferedAudio(); + * + * printf("\nRECORDING. Press any key to stop...\n"); + * getch(); + * + * recorder->stopRecordingAudio(); + * + * printf("\nRecording done, recorded %dms of audio.\n", + * recorder->getAudioFormat().FrameCount * 1000 / recorder->getAudioFormat().SampleRate ); + * printf("Press any key to play back recorded audio...\n"); + * getch(); + * + * // play the recorded audio + * recorder->addSoundSourceFromRecordedAudio("myRecordedVoice"); + * engine->play2D("myRecordedVoice", true); + * + * // wait until user presses a key + * printf("\nPress any key to quit..."); + * getch(); + * + * recorder->drop(); + * engine->drop(); // delete engine + * + * return 0; + * } + * \endcode + * + * In order to select a specific audio capturing device for recording, it is necessary to enumerate + * the available devices. Simply replace the first to lines of code of the example above with code + * like this to list all devices and select one: + * + * \code + * // enumerate recording devices and ask user to select one + * + * irrklang::ISoundDeviceList* deviceList = irrklang::createAudioRecorderDeviceList(); + * + * printf("Devices available:\n\n"); + * + * for (int i=0; igetDeviceCount(); ++i) + * printf("%d: %s\n", i, deviceList->getDeviceDescription(i)); + * + * printf("\nselect a device using the number (or press any key to use default):\n\n"); + * int deviceNumber = getch() - '0'; + * + * // create recording device with the selected driver + * + * const char* deviceID = deviceList->getDeviceID(deviceNumber); + * irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice(); + * irrklang::IAudioRecorder* recorder = + * irrklang::createIrrKlangAudioRecorder(engine, irrklang::ESOD_AUTO_DETECT, deviceID); + * + * \endcode + * + *
+ *
+ *
+ *
+ * + * + * \section unicode Unicode support + * + * irrKlang supports unicode on all operating systems. Internally, it uses UTF8, and all functions accepting strings + * and file names take UTF8 strings. If you are running irrKlang on Windows, and are using the UNICODE define or using + * wchar_t* strings directly, you can do this as well. Use the irrKlang provided function makeUTF8fromUTF16string() to + * convert your wchar_t* string to a char* string. + * + * This example shows how: + * + * \code + * const wchar_t* yourFilename = L"SomeUnicodeFilename.wav"; // assuming this is the file name you get from some of your functions + * + * const int nBufferSize = 2048; // large enough, but best would be wcslen(yourFilename)*3. + * char strBuffer[nBufferSize]; + * irrklang::makeUTF8fromUTF16string(yourFilename, strBuffer, nBufferSize); + * + * // now the converted file name is in strBuffer. We can play it for example now: + * engine->play2D(strBuffer); + * \endcode + * + * Of course, you can use any other unicode converion function for this. makeUTF8fromUTF16string() is only provided + * for convenience. + *
+ *
+ *
+ *
+ * + * + * + * + * + * \section quickstartexample Quick Start Example + * + * To simply start the engine and play a mp3 file, use code like this: + * + * \code + * #include + * #include + * #pragma comment(lib, "irrKlang.lib") // link with irrKlang.dll + * + * int main(int argc, const char** argv) + * { + * irrklang::ISoundEngine* engine = irrklang::createIrrKlangDevice(); + * if (!engine) return 1; // could not start engine + * + * engine->play2D("someMusic.mp3", true); // play some mp3 file, looped + * + * std::cin.get(); // wait until user presses a key + * + * engine->drop(); // delete engine + * return 0; + * } + * \endcode + * + * A mp3 file is being played until the user presses enter in this example. + * As you can see, irrKlang uses namespaces, all of + * the classes are located in the namespace irrklang. If you don't want to write + * this in front of every class and function you are using, simply write + * + * \code + * using namespace irrklang; + * \endcode + * in front of your code, as also shown in the next example. + *
+ *
+ *
+ *
+ * + * + * + * \section quickstartexample2 Quick Start Example 2 + * + * The following is a simple interactive application, starting up the sound engine and + * playing some streaming .ogg music file and a .wav sound effect every time the user + * presses a key. + * + * \code + * #include + * #include + * using namespace irrklang; + * + * #pragma comment(lib, "irrKlang.lib") // link with irrKlang.dll + * + * + * int main(int argc, const char** argv) + * { + * // start the sound engine with default parameters + * ISoundEngine* engine = createIrrKlangDevice(); + * + * if (!engine) + * return 0; // error starting up the engine + * + * // play some sound stream, looped + * engine->play2D("../../media/helltroopers.ogg", true); + * + * std::cout << "\nHello World!\n"; + * + * char i = 0; + * + * while(i != 'q') + * { + * std::cout << "Press any key to play some sound, press 'q' to quit.\n"; + * + * // play a single sound + * engine->play2D("../../media/bell.wav"); + * + * std::cin >> i; // wait for user to press some key + * } + * + * engine->drop(); // delete engine + * return 0; + * } + * + * \endcode + */ + +#if defined(IRRKLANG_STATIC) + #define IRRKLANG_API +#else + #if (defined(WIN32) || defined(WIN64) || defined(_MSC_VER)) + #ifdef IRRKLANG_EXPORTS + #define IRRKLANG_API __declspec(dllexport) + #else + #define IRRKLANG_API __declspec(dllimport) + #endif // IRRKLANG_EXPORT + #else + #define IRRKLANG_API __attribute__((visibility("default"))) + #endif // defined(WIN32) || defined(WIN64) +#endif // IRRKLANG_STATIC + +#if defined(_STDCALL_SUPPORTED) +#define IRRKLANGCALLCONV __stdcall // Declare the calling convention. +#else +#define IRRKLANGCALLCONV +#endif // STDCALL_SUPPORTED + +//! Everything in the irrKlang Sound Engine can be found in this namespace. +namespace irrklang +{ + //! Creates an irrKlang device. The irrKlang device is the root object for using the sound engine. + /** \param driver The sound output driver to be used for sound output. Use irrklang::ESOD_AUTO_DETECT + to let irrKlang decide which driver will be best. + \param options A combination of irrklang::E_SOUND_ENGINE_OPTIONS literals. Default value is + irrklang::ESEO_DEFAULT_OPTIONS. + \param deviceID Some additional optional deviceID for the audio driver. If not needed, simple + set this to 0. + This can be used for example to set a specific ALSA output pcm device for output + ("default" or "hw", for example). For most driver types, available deviceIDs can be + enumerated using createSoundDeviceList(). + See @ref enumeratingDevices for an example or ISoundDeviceList or details. + \param sdk_version_do_not_use Don't use or change this parameter. Always set it to + IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks. + \return Returns pointer to the created irrKlang device or null if the + device could not be created. If you don't need the device, use ISoundEngine::drop() to + delete it. See IRefCounted::drop() for details. + */ + IRRKLANG_API ISoundEngine* IRRKLANGCALLCONV createIrrKlangDevice( + E_SOUND_OUTPUT_DRIVER driver = ESOD_AUTO_DETECT, + int options = ESEO_DEFAULT_OPTIONS, + const char* deviceID = 0, + const char* sdk_version_do_not_use = IRR_KLANG_VERSION); + + + //! Creates a list of available sound devices for the driver type. + /** The device IDs in this list can be used as parameter to createIrrKlangDevice() to + make irrKlang use a special sound device. See @ref enumeratingDevices for an example on how + to use this. + \param driver The sound output driver of which the list is generated. Set it irrklang::ESOD_AUTO_DETECT + to let this function use the same device as createIrrKlangDevice() would choose. + \param sdk_version_do_not_use Don't use or change this parameter. Always set it to + IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks. + \return Returns a pointer to the list of enumerated sound devices for the selected sound driver. + The device IDs in this list can be used as parameter to createIrrKlangDevice() to + make irrKlang use a special sound device. + After you don't need the list anymore, call ISoundDeviceList::drop() in order to free its memory. */ + IRRKLANG_API ISoundDeviceList* IRRKLANGCALLCONV createSoundDeviceList( + E_SOUND_OUTPUT_DRIVER driver = ESOD_AUTO_DETECT, + const char* sdk_version_do_not_use = IRR_KLANG_VERSION); + + + //! Creates an irrKlang audio recording device. The IAudioRecorder is the root object for recording audio. + /** If you want to play back recorded audio as well, create the ISoundEngine first using + createIrrKlangDevice() and then the IAudioRecorder using createIrrKlangAudioRecorder(), where + you set the ISoundEngine as first parameter. See @ref recordingAudio for an example on how to use this. + Note: audio recording is a very new feature a still beta in irrKlang. It currently only works in Windows + and with DirectSound (subject to change). + \param irrKlangDeviceForPlayback A pointer to the already existing sound device used for playback + of audio. Sound sources recorded with the IAudioRecorder will be added into that device so that + they can be played back there. + \param driver The sound output driver to be used for recording audio. Use irrklang::ESOD_AUTO_DETECT + to let irrKlang decide which driver will be best. + \param deviceID Some additional optional deviceID for the audio driver. If not needed, simple + set this to 0. Use createAudioRecorderDeviceList() to get a list of all deviceIDs. + \param sdk_version_do_not_use Don't use or change this parameter. Always set it to + IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks. + \return Returns pointer to the created irrKlang device or null if the + device could not be created. If you don't need the device, use ISoundEngine::drop() to + delete it. See IRefCounted::drop() for details. + */ + IRRKLANG_API IAudioRecorder* IRRKLANGCALLCONV createIrrKlangAudioRecorder( + ISoundEngine* irrKlangDeviceForPlayback, + E_SOUND_OUTPUT_DRIVER driver = ESOD_AUTO_DETECT, + const char* deviceID = 0, + const char* sdk_version_do_not_use = IRR_KLANG_VERSION); + + //! Creates a list of available recording devices for the driver type. + /** The device IDs in this list can be used as parameter to createIrrKlangAudioRecorder() to + make irrKlang use a special recording device. + \param driver The sound output driver of which the list is generated. Set it irrklang::ESOD_AUTO_DETECT + to let this function use the same device as createIrrKlangDevice() would choose. + \param sdk_version_do_not_use Don't use or change this parameter. Always set it to + IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks. + \return Returns a pointer to the list of enumerated recording devices for the selected sound driver. + The device IDs in this list can be used as parameter to createIrrKlangAudioRecorder() to + make irrKlang use a special sound device. + After you don't need the list anymore, call ISoundDeviceList::drop() in order to free its memory. */ + IRRKLANG_API ISoundDeviceList* IRRKLANGCALLCONV createAudioRecorderDeviceList( + E_SOUND_OUTPUT_DRIVER driver = ESOD_AUTO_DETECT, + const char* sdk_version_do_not_use = IRR_KLANG_VERSION); + + + //! Converts a wchar_t string to an utf8 string, useful when using Windows in unicode mode. + /** irrKlang works with unicode file names, and accepts char* strings as parameters for names and filenames. + If you are running irrKlang in Windows, and working with wchar_t* pointers instead of char* ones, + you can use this function to create a char* (UTF8) representation of your wchar_t* (UTF16) string. + Works for filenames and other strings. + \param pInputString zero terminated input string. + \param pOutputBuffer the buffer where the converted string is written to. Be sure that this buffer + has a big enough size. A good size would be three times the string length of your input buffer, like + wcslen(yourInputBuffer)*3. Because each wchar_t can be represented by up to 3 chars. + \param outputBufferSize size of your output buffer. + \return Returns true if successful, and false if not. If 'false' is returned, maybe your buffer was too small. */ + IRRKLANG_API bool IRRKLANGCALLCONV makeUTF8fromUTF16string( + const wchar_t* pInputString, char* pOutputBuffer, int outputBufferSize); + + +} // end namespace irrklang + + +/*! \file irrKlang.h + \brief Main header file of the irrKlang sound library, the only file needed to include. +*/ + +#endif + diff --git a/lib/irrKlang.lib b/lib/irrKlang.lib new file mode 100644 index 0000000000000000000000000000000000000000..4c469ca343d2db65ea87bc9683484d8b507e04c5 GIT binary patch literal 4380 zcmc&&%}*LZ6n}uNmY^lIN84ax()LixA`sd%b+OP$L?C=<+RIAWRW}Nl6?<(@9*loS z|A?MEduSRDJ@(Lx|AIIB-tG*{fLcJdon&^t-p>5q$Ncue?CYvk+kWGJ5t7SuMIQ4} zn01tJEbeqS`~WZsFmVdtzW@k?0q)PRdWJ35sjO2ck5LqB@QA9WWmXIMVp&V2OK*#r zLOEa5Ov_r?tv0qm({hz;wpRi^a}h_Nyj;nxXsKj535zw$sJ4s@+ahIrGHZs4;ybjX zs=iMa(#f?=Q(~T{&VW^6_9!+bdd?lCC@|AL-f?$f7wR90zmJ8{nl%jq>C}w?6 zb8C0DuZ_xqoHh4b*T5D8Zh}t8yMeoLK$lID2fEoT8nvdS8&l_7b@_})<3uABxCcpz; zVdUei;Ho)g;*pM$Oln8GynMT8&C}}t+|pj0$9QhrY=%ZA-FVe>eW_tF2WZcV&^;7-)zE%tqS22CKqSZfCL6e zR&6;Nst`KyVml4@Xb1sOsV6WU9LLEY_7Wyk5P)<2!Kzuan)}VoR_JN*Sty&yt*~{e zLFxoTLKToHsfW~wj7dH57(`KP*7p$Zx$f~?UW)IaFc3a3aIIAU8}T-uvGsFKVlq*Z z!Iz*d6YI>-{470Kq1^#qu@N<1DC2X~xuU3XKhYA2@r0P7#cM~)Hya&cygFKRXQ}-Z zqGf?kQnY;K1J+WsxDy5ac=i#ZxHkFr4{WzY?=AaOcItxSc+c4o8Uk7^si8SD%r6t|ia|-%uqIy)ufn5w)*_+Kn_o0xk~v biJnA^!4A