001 // License: GPL. Copyright 2007 by Immanuel Scholz and others
002 package org.openstreetmap.josm.actions.audio;
003
004 import java.awt.event.ActionEvent;
005
006 import org.openstreetmap.josm.Main;
007 import org.openstreetmap.josm.actions.JosmAction;
008 import org.openstreetmap.josm.tools.AudioPlayer;
009 import org.openstreetmap.josm.tools.Shortcut;
010
011 abstract public class AudioFastSlowAction extends JosmAction {
012
013 private double multiplier;
014
015 public AudioFastSlowAction(String name, String iconName, String tooltip, Shortcut shortcut, boolean fast) {
016 super(name, iconName, tooltip, shortcut, true);
017 multiplier = Main.pref.getDouble("audio.fastfwdmultiplier","1.3");
018 if (! fast)
019 multiplier = 1.0 / multiplier;
020 }
021
022 public void actionPerformed(ActionEvent e) {
023 double speed = AudioPlayer.speed();
024 if (speed * multiplier <= 0.1)
025 return;
026 try {
027 if (AudioPlayer.playing() || AudioPlayer.paused())
028 AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position(), speed * multiplier);
029 } catch (Exception ex) {
030 AudioPlayer.audioMalfunction(ex);
031 }
032 }
033 }