// License: GPL. Copyright 2008 by David Earl and others
package org.openstreetmap.josm.actions.audio;
import static org.openstreetmap.josm.tools.I18n.tr;
import static org.openstreetmap.josm.tools.I18n.trc;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.net.URL;
import org.openstreetmap.josm.actions.JosmAction;
import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
import org.openstreetmap.josm.tools.AudioPlayer;
import org.openstreetmap.josm.tools.Shortcut;
public class AudioPlayPauseAction extends JosmAction {
public AudioPlayPauseAction() {
super(trc("audio", "Play/Pause"), "audio-playpause", tr("Play/pause audio."),
Shortcut.registerShortcut("audio:pause", tr("Audio: {0}", trc("audio", "Play/Pause")), KeyEvent.VK_PERIOD, Shortcut.GROUP_DIRECT), true);
}
public void actionPerformed(ActionEvent e) {
URL url = AudioPlayer.url();
try {
if (AudioPlayer.paused() && url != null) {
AudioPlayer.play(url);
} else if (AudioPlayer.playing()){
if (AudioPlayer.speed() != 1.0)
AudioPlayer.play(url, AudioPlayer.position());
else
AudioPlayer.pause();
} else {
// find first audio marker to play
MarkerLayer.playAudio();
}
} catch (Exception ex) {
AudioPlayer.audioMalfunction(ex);
}
}
}