| 
									
										
										
										
											2018-05-22 11:58:45 +08:00
										 |  |  | #include "..\e2dcustom.h"
 | 
					
						
							|  |  |  | #include "..\e2dbase.h"
 | 
					
						
							|  |  |  | #include "..\e2dtool.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | e2d::VoiceCallback::VoiceCallback(Music * music) | 
					
						
							|  |  |  | 	: _music(music) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | e2d::VoiceCallback::~VoiceCallback() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnLoopEnd(void * pBufferContext) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (_loopEndFunc) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		_loopEndFunc(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnStreamEnd() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-07-03 23:44:17 +08:00
										 |  |  | 	if (_music) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		_music->_playing = false; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2018-05-22 11:58:45 +08:00
										 |  |  | 	if (_streamEndFunc) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		_streamEndFunc(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnBufferEnd(void * pBufferContext) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (_loopEndFunc) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		_loopEndFunc(); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-07-03 23:44:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if (_music) | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2018-07-07 01:43:41 +08:00
										 |  |  | 		GC::release(_music); | 
					
						
							| 
									
										
										
										
											2018-07-03 23:44:17 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-05-22 11:58:45 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnBufferStart(void * pBufferContext) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-07-03 23:44:17 +08:00
										 |  |  | 	if (_music) | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2018-07-07 01:43:41 +08:00
										 |  |  | 		GC::retain(_music); | 
					
						
							| 
									
										
										
										
											2018-07-03 23:44:17 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-05-22 11:58:45 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnVoiceProcessingPassEnd() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnVoiceProcessingPassStart(UINT32 SamplesRequired) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::OnVoiceError(void * pBufferContext, HRESULT Error) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::SetFuncOnStreamEnd(const Function & func) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	_streamEndFunc = func; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::VoiceCallback::SetFuncOnLoopEnd(const Function & func) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	_loopEndFunc = func; | 
					
						
							|  |  |  | } |