forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			39 lines
		
	
	
		
			953 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			953 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package iron.system;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import kha.audio1.AudioChannel;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Audio playback. This class wraps around `kha.audio1.Audio`.
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								class Audio {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if lnx_audio
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function new() {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Plays the given sound.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										If `stream` is `true` and the sound has compressed data, it is streamed
							 | 
						||
| 
								 | 
							
										from disk instead of being fully loaded into memory. This is useful for
							 | 
						||
| 
								 | 
							
										longer sounds such as background music.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										This function returns `null` if:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										- there is no unoccupied audio channel available for playback.
							 | 
						||
| 
								 | 
							
										- the sound has compressed data only but `stream` is `false`. In this
							 | 
						||
| 
								 | 
							
										  case, call `kha.Sound.uncompress()` first.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public static function play(sound: kha.Sound, loop = false, stream = false): Null<AudioChannel> {
							 | 
						||
| 
								 | 
							
										if (stream && sound.compressedData != null) {
							 | 
						||
| 
								 | 
							
											return kha.audio1.Audio.stream(sound, loop);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if (sound.uncompressedData != null) {
							 | 
						||
| 
								 | 
							
											return kha.audio1.Audio.play(sound, loop);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else return null;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#end
							 | 
						||
| 
								 | 
							
								}
							 |