38 lines
		
	
	
		
			994 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			994 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								@startuml
							 | 
						||
| 
								 | 
							
								package com.iluwatar.event.queue {
							 | 
						||
| 
								 | 
							
								  class App {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + App()
							 | 
						||
| 
								 | 
							
								    + main(args : String[]) {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class Audio {
							 | 
						||
| 
								 | 
							
								    - INSTANCE : Audio {static}
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    - MAX_PENDING : int {static}
							 | 
						||
| 
								 | 
							
								    - headIndex : int
							 | 
						||
| 
								 | 
							
								    - pendingAudio : PlayMessage[]
							 | 
						||
| 
								 | 
							
								    - tailIndex : int
							 | 
						||
| 
								 | 
							
								    - updateThread : Thread
							 | 
						||
| 
								 | 
							
								    ~ Audio()
							 | 
						||
| 
								 | 
							
								    + getAudioStream(filePath : String) : AudioInputStream
							 | 
						||
| 
								 | 
							
								    + getInstance() : Audio {static}
							 | 
						||
| 
								 | 
							
								    + getPendingAudio() : PlayMessage[]
							 | 
						||
| 
								 | 
							
								    + init()
							 | 
						||
| 
								 | 
							
								    + isServiceRunning() : boolean
							 | 
						||
| 
								 | 
							
								    + playSound(stream : AudioInputStream, volume : float)
							 | 
						||
| 
								 | 
							
								    - startThread()
							 | 
						||
| 
								 | 
							
								    + stopService()
							 | 
						||
| 
								 | 
							
								    - update()
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class PlayMessage {
							 | 
						||
| 
								 | 
							
								    - stream : AudioInputStream
							 | 
						||
| 
								 | 
							
								    - volume : float
							 | 
						||
| 
								 | 
							
								    + PlayMessage(stream : AudioInputStream, volume : float)
							 | 
						||
| 
								 | 
							
								    + getStream() : AudioInputStream
							 | 
						||
| 
								 | 
							
								    + getVolume() : float
							 | 
						||
| 
								 | 
							
								    - setStream(stream : AudioInputStream)
							 | 
						||
| 
								 | 
							
								    + setVolume(volume : float)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								Audio -->  "-INSTANCE" Audio
							 | 
						||
| 
								 | 
							
								@enduml
							 |