001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.actions.audio; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005import static org.openstreetmap.josm.tools.I18n.trc; 006 007import java.awt.event.ActionEvent; 008import java.awt.event.KeyEvent; 009import java.io.IOException; 010 011import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer; 012import org.openstreetmap.josm.io.audio.AudioPlayer; 013import org.openstreetmap.josm.io.audio.AudioUtil; 014import org.openstreetmap.josm.spi.preferences.Config; 015import org.openstreetmap.josm.tools.Shortcut; 016 017/** 018 * Jump the audio forward 10 seconds. 019 * @since 547 020 */ 021public class AudioFwdAction extends AbstractAudioAction { 022 023 /** 024 * Constructs a new {@code AudioFwdAction}. 025 */ 026 public AudioFwdAction() { 027 super(trc("audio", "Forward"), "audio-fwd", trc("audio", "Jump forward"), 028 Shortcut.registerShortcut("audio:forward", tr("Audio: {0}", trc("audio", "Forward")), KeyEvent.VK_F7, Shortcut.DIRECT), true); 029 } 030 031 @Override 032 public void actionPerformed(ActionEvent e) { 033 try { 034 if (AudioPlayer.playing() || AudioPlayer.paused()) 035 AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position() 036 + Config.getPref().getDouble("audio.forwardbackamount", 10.0)); 037 else 038 MarkerLayer.playAudio(); 039 } catch (IOException | InterruptedException ex) { 040 AudioUtil.audioMalfunction(ex); 041 } 042 } 043}