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;
009
010import org.openstreetmap.josm.Main;
011import org.openstreetmap.josm.actions.JosmAction;
012import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
013import org.openstreetmap.josm.tools.AudioPlayer;
014import org.openstreetmap.josm.tools.Shortcut;
015
016/**
017 * Jump the audio forward 10 seconds.
018 * @since 547
019 */
020public class AudioFwdAction extends JosmAction {
021
022    /**
023     * Constructs a new {@code AudioFwdAction}.
024     */
025    public AudioFwdAction() {
026        super(trc("audio", "Forward"), "audio-fwd", trc("audio", "Jump forward"),
027        Shortcut.registerShortcut("audio:forward", tr("Audio: {0}", trc("audio", "Forward")), KeyEvent.VK_F7, Shortcut.DIRECT), true);
028    }
029
030    @Override
031    public void actionPerformed(ActionEvent e) {
032        try {
033            if (AudioPlayer.playing() || AudioPlayer.paused())
034                AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position()
035                + Main.pref.getDouble("audio.forwardbackamount", 10.0));
036            else
037                MarkerLayer.playAudio();
038        } catch (Exception ex) {
039            AudioPlayer.audioMalfunction(ex);
040        }
041    }
042}