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 }