001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.actions.audio; 003 004import static org.openstreetmap.josm.gui.help.HelpUtil.ht; 005import static org.openstreetmap.josm.tools.I18n.tr; 006import static org.openstreetmap.josm.tools.I18n.trc; 007 008import java.awt.event.ActionEvent; 009import java.awt.event.KeyEvent; 010 011import org.openstreetmap.josm.Main; 012import org.openstreetmap.josm.actions.JosmAction; 013import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer; 014import org.openstreetmap.josm.tools.AudioPlayer; 015import org.openstreetmap.josm.tools.Shortcut; 016 017/** 018 * Jump the audio backward 10 seconds and start playing if paused. 019 * @since 547 020 */ 021public class AudioBackAction extends JosmAction { 022 023 /** 024 * Constructs a new {@code AudioBackAction}. 025 */ 026 public AudioBackAction() { 027 super(trc("audio", "Back"), "audio-back", trc("audio", "Jump back."), 028 Shortcut.registerShortcut("audio:back", tr("Audio: {0}", trc("audio", "Back")), KeyEvent.VK_F6, Shortcut.DIRECT), true); 029 this.putValue("help", ht("/Action/AudioBack")); 030 } 031 032 @Override 033 public void actionPerformed(ActionEvent e) { 034 try { 035 if (AudioPlayer.playing() || AudioPlayer.paused()) 036 AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position() 037 - Main.pref.getDouble("audio.forwardbackamount", 10.0)); 038 else 039 MarkerLayer.playAudio(); 040 } catch (Exception ex) { 041 AudioPlayer.audioMalfunction(ex); 042 } 043 } 044}