Audio: Allow adjusting BGS and SE volumes via mkxp.conf
This commit is contained in:
		
							parent
							
								
									24efc4d2f2
								
							
						
					
					
						commit
						9cf5ee54e0
					
				
					 6 changed files with 17 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -73,6 +73,8 @@ struct AudioPrivate
 | 
			
		|||
		meWatch.state = MeNotPlaying;
 | 
			
		||||
		meWatch.thread = createSDLThread
 | 
			
		||||
			<AudioPrivate, &AudioPrivate::meWatchFun>(this, "audio_mewatch");
 | 
			
		||||
 | 
			
		||||
		bgs.setVolume(AudioStream::Config, rtData.config.volume.bgs);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	~AudioPrivate()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,6 +49,7 @@ struct AudioStream
 | 
			
		|||
		FadeOut,
 | 
			
		||||
		FadeIn,
 | 
			
		||||
		External,
 | 
			
		||||
		Config,
 | 
			
		||||
 | 
			
		||||
		VolumeTypeCount
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -183,6 +183,8 @@ void Config::read(int argc, char *argv[])
 | 
			
		|||
	PO_DESC(midi.chorus, bool, false) \
 | 
			
		||||
	PO_DESC(midi.reverb, bool, false) \
 | 
			
		||||
	PO_DESC(SE.sourceCount, int, 6) \
 | 
			
		||||
	PO_DESC(volume.bgs, float, 1.0f) \
 | 
			
		||||
	PO_DESC(volume.se, float, 1.0f) \
 | 
			
		||||
	PO_DESC(customScript, std::string, "") \
 | 
			
		||||
	PO_DESC(pathCache, bool, true) \
 | 
			
		||||
	PO_DESC(useScriptNames, bool, false)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,6 +84,12 @@ struct Config
 | 
			
		|||
		int sourceCount;
 | 
			
		||||
	} SE;
 | 
			
		||||
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		float bgs;
 | 
			
		||||
		float se;
 | 
			
		||||
	} volume;
 | 
			
		||||
 | 
			
		||||
	bool useScriptNames;
 | 
			
		||||
 | 
			
		||||
	std::string customScript;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,7 +93,8 @@ SoundEmitter::SoundEmitter(const Config &conf)
 | 
			
		|||
      srcCount(conf.SE.sourceCount),
 | 
			
		||||
      alSrcs(srcCount),
 | 
			
		||||
      atchBufs(srcCount),
 | 
			
		||||
      srcPrio(srcCount)
 | 
			
		||||
      srcPrio(srcCount),
 | 
			
		||||
      configVolume(conf.volume.se)
 | 
			
		||||
{
 | 
			
		||||
	for (size_t i = 0; i < srcCount; ++i)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -172,7 +173,7 @@ void SoundEmitter::play(const std::string &filename,
 | 
			
		|||
	if (switchBuffer)
 | 
			
		||||
		AL::Source::attachBuffer(src, buffer->alBuffer);
 | 
			
		||||
 | 
			
		||||
	AL::Source::setVolume(src, _volume * GLOBAL_VOLUME);
 | 
			
		||||
	AL::Source::setVolume(src, _volume * configVolume * GLOBAL_VOLUME);
 | 
			
		||||
	AL::Source::setPitch(src, _pitch);
 | 
			
		||||
 | 
			
		||||
	AL::Source::play(src);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,6 +49,9 @@ struct SoundEmitter
 | 
			
		|||
	/* Indices of sources, sorted by priority (lowest first) */
 | 
			
		||||
	std::vector<size_t> srcPrio;
 | 
			
		||||
 | 
			
		||||
	/* Constant premultiplier */
 | 
			
		||||
	float configVolume;
 | 
			
		||||
 | 
			
		||||
	SoundEmitter(const Config &conf);
 | 
			
		||||
	~SoundEmitter();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue