Changeset 557 in josm for trunk/src/org


Ignore:
Timestamp:
2008-02-24T15:33:15+01:00 (17 years ago)
Author:
david
Message:

implement calibration function for audio player

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/AudioPreference.java

    r554 r557  
    4040        private JTextField audioLeadIn = new JTextField(8);
    4141        private JTextField audioForwardBackAmount = new JTextField(8);
     42        private JTextField audioCalibration = new JTextField(8);
    4243
    4344        public void addGui(PreferenceDialog gui) {
     
    110111                gui.audio.add(audioLeadIn, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
    111112
     113                audioCalibration.setText(Main.pref.get("audio.calibration", "1.0"));
     114                audioCalibration.setToolTipText(tr("The ratio of voice recorder elapsed time to true elapsed time"));
     115                gui.audio.add(new JLabel(tr("Voice recorder calibration")), GBC.std());
     116                gui.audio.add(audioCalibration, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
     117
    112118                gui.audio.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.VERTICAL));
    113119        }
     
    122128                Main.pref.put("audio.forwardbackamount", audioForwardBackAmount.getText());             
    123129                Main.pref.put("audio.leadin", audioLeadIn.getText());           
     130                Main.pref.put("audio.calibration", audioCalibration.getText());         
    124131    }
    125132}
  • trunk/src/org/openstreetmap/josm/tools/AudioPlayer.java

    r556 r557  
    3333    private URL playingUrl;
    3434    private double leadIn; // seconds
     35    private double calibration; // ratio of purported duration of samples to true duration
    3536        private double position; // seconds
    3637        private double bytesPerSecond;
     
    176177                } catch (NumberFormatException e) {
    177178                        leadIn = 1.0; // failed to parse
     179                }
     180                try {
     181                        calibration = Double.parseDouble(Main.pref.get("audio.calibration", "1.0" /* default, ratio */));
     182                } catch (NumberFormatException e) {
     183                        calibration = 1.0; // failed to parse
    178184                }
    179185                start();
     
    248254                                                        nBytesRead = 0;
    249255                                                        position = 0.0;
    250                                                         double adjustedOffset = offset - leadIn;
     256                                                        double adjustedOffset = (offset - leadIn) * calibration;
    251257                                                        bytesPerSecond = audioFormat.getFrameRate() /* frames per second */
    252258                                                                * audioFormat.getFrameSize() /* bytes per frame */;
Note: See TracChangeset for help on using the changeset viewer.