001 // License: GPL. Copyright 2008 by David Earl and others 002 package org.openstreetmap.josm.actions.audio; 003 004 import static org.openstreetmap.josm.tools.I18n.tr; 005 import static org.openstreetmap.josm.tools.I18n.trc; 006 import java.awt.event.ActionEvent; 007 import java.awt.event.KeyEvent; 008 import java.net.URL; 009 010 import org.openstreetmap.josm.actions.JosmAction; 011 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer; 012 import org.openstreetmap.josm.tools.AudioPlayer; 013 import org.openstreetmap.josm.tools.Shortcut; 014 015 public class AudioPlayPauseAction extends JosmAction { 016 017 public AudioPlayPauseAction() { 018 super(trc("audio", "Play/Pause"), "audio-playpause", tr("Play/pause audio."), 019 Shortcut.registerShortcut("audio:pause", tr("Audio: {0}", trc("audio", "Play/Pause")), KeyEvent.VK_PERIOD, Shortcut.DIRECT), true); 020 } 021 022 public void actionPerformed(ActionEvent e) { 023 URL url = AudioPlayer.url(); 024 try { 025 if (AudioPlayer.paused() && url != null) { 026 AudioPlayer.play(url); 027 } else if (AudioPlayer.playing()){ 028 if (AudioPlayer.speed() != 1.0) 029 AudioPlayer.play(url, AudioPlayer.position()); 030 else 031 AudioPlayer.pause(); 032 } else { 033 // find first audio marker to play 034 MarkerLayer.playAudio(); 035 } 036 } catch (Exception ex) { 037 AudioPlayer.audioMalfunction(ex); 038 } 039 } 040 }