| 
									
										
										
										
											2015-05-24 06:55:12 +02:00
										 |  |  | // Copyright 2008 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2013-04-17 23:09:55 -04:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							| 
									
										
										
										
											2010-11-14 23:56:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "AudioCommon/NullSoundStream.h"
 | 
					
						
							| 
									
										
										
										
											2015-12-05 14:33:33 -05:00
										 |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "Core/HW/AudioInterface.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-19 02:11:52 +01:00
										 |  |  | #include "Core/HW/SystemTimers.h"
 | 
					
						
							| 
									
										
										
										
											2010-11-14 23:56:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | void NullSound::SoundLoop() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool NullSound::Start() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   return true; | 
					
						
							| 
									
										
										
										
											2010-11-14 23:56:26 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NullSound::SetVolume(int volume) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NullSound::Update() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD.
 | 
					
						
							|  |  |  |   constexpr u32 stereo_16_bit_size = 4; | 
					
						
							|  |  |  |   constexpr u32 dma_length = 32; | 
					
						
							|  |  |  |   const u64 audio_dma_period = | 
					
						
							|  |  |  |       SystemTimers::GetTicksPerSecond() / | 
					
						
							|  |  |  |       (AudioInterface::GetAIDSampleRate() * stereo_16_bit_size / dma_length); | 
					
						
							|  |  |  |   const u64 ais_samples_per_second = 48000 * stereo_16_bit_size; | 
					
						
							|  |  |  |   const u64 num_samples_to_render = | 
					
						
							|  |  |  |       (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   m_mixer->Mix(m_realtime_buffer.data(), (unsigned int)num_samples_to_render); | 
					
						
							| 
									
										
										
										
											2010-11-14 23:56:26 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NullSound::Clear(bool mute) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   m_muted = mute; | 
					
						
							| 
									
										
										
										
											2010-11-14 23:56:26 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void NullSound::Stop() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } |