79 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // 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
 | |
| 
 |