Skip to content
Snippets Groups Projects
Select Git revision
  • 76aeadc936be4d0e1f6e89eeb217bc6e8c92e680
  • develop default protected
  • master protected
  • feature/scrollbars
  • native-audio
  • v7.3.0
  • v7.2.0
  • v7.1.0
  • v7.0.2
  • v7.0.1
  • v7.0.0
  • v5.0.1
  • v5.1.0
  • v6.1.0
  • v6.0.0
15 results

NativeAudioMacHandlerConnect.java

Blame
  • NativeAudioMacHandlerConnect.java 2.32 KiB
    package de.tobias.playpad.namac;
    
    import java.util.HashMap;
    
    import de.tobias.playpad.NativeAudio;
    import de.tobias.playpad.NativeAudio.NativeAudioDelegate;
    import de.tobias.playpad.audio.AudioCapability;
    import de.tobias.playpad.audio.AudioHandler;
    import de.tobias.playpad.audio.AudioHandlerConnect;
    import de.tobias.playpad.audio.Peakable.Channel;
    import de.tobias.playpad.pad.PadStatus;
    import de.tobias.playpad.pad.conntent.PadContent;
    import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
    import javafx.util.Duration;
    
    public class NativeAudioMacHandlerConnect extends AudioHandlerConnect implements NativeAudioDelegate {
    
    	private static final HashMap<Integer, NativeAudioMacHandler> handlers = new HashMap<>();
    
    	public NativeAudioMacHandlerConnect() {
    		NativeAudio.initialize();
    		NativeAudio.setDelegate(this);
    	}
    
    	@Override
    	public AudioHandler createAudioHandler(PadContent content) {
    		NativeAudioMacHandler nativeAudioMacHandler = new NativeAudioMacHandler(content);
    		handlers.put(nativeAudioMacHandler.getId(), nativeAudioMacHandler);
    		return nativeAudioMacHandler;
    	}
    
    	@Override
    	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
    		return null;
    	}
    
    	@Override
    	public String getType() {
    		return "Native";
    	}
    
    	@Override
    	public void onFinish(int id) {
    		NativeAudioMacHandler nativeAudioMacHandler = handlers.get(id);
    		if (nativeAudioMacHandler != null) {
    			PadContent content = nativeAudioMacHandler.getContent();
    			if (content != null) {
    				content.getPad().setStatus(PadStatus.STOP);
    			}
    		}
    	}
    	
    	@Override
    	public void onPositionChanged(int id, double position) {
    		NativeAudioMacHandler nativeAudioMacHandler = handlers.get(id);
    		if (nativeAudioMacHandler != null) {
    			nativeAudioMacHandler.positionProperty.set(Duration.seconds(position));
    		}
    	}
    	
    	@Override
    	public void onPeakMeter(int id, float left, float right) {
    		NativeAudioMacHandler nativeAudioMacHandler = handlers.get(id);
    		if (nativeAudioMacHandler != null) {
    			nativeAudioMacHandler.audioLevelProperty(Channel.LEFT).set(left);
    			nativeAudioMacHandler.audioLevelProperty(Channel.RIGHT).set(right);
    		}
    	}
    
    	@Override