001    // License: GPL. Copyright 2007 by Immanuel Scholz and others
002    package org.openstreetmap.josm.actions.audio;
003    
004    import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
005    import static org.openstreetmap.josm.tools.I18n.tr;
006    import static org.openstreetmap.josm.tools.I18n.trc;
007    
008    import java.awt.event.ActionEvent;
009    import java.awt.event.KeyEvent;
010    
011    import org.openstreetmap.josm.Main;
012    import org.openstreetmap.josm.actions.JosmAction;
013    import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
014    import org.openstreetmap.josm.tools.AudioPlayer;
015    import org.openstreetmap.josm.tools.Shortcut;
016    
017    public class AudioBackAction extends JosmAction {
018    
019        public AudioBackAction() {
020            super(trc("audio", "Back"), "audio-back", trc("audio", "Jump back."),
021            Shortcut.registerShortcut("audio:back", tr("Audio: {0}", trc("audio", "Back")), KeyEvent.VK_F6, Shortcut.DIRECT), true);
022            this.putValue("help", ht("/Action/AudioBack"));
023        }
024    
025        public void actionPerformed(ActionEvent e) {
026            try {
027                if (AudioPlayer.playing() || AudioPlayer.paused())
028                    AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position()
029                    - Main.pref.getDouble("audio.forwardbackamount","10.0"));
030                else
031                    MarkerLayer.playAudio();
032            } catch (Exception ex) {
033                AudioPlayer.audioMalfunction(ex);
034            }
035        }
036    }