FileDocCategorySizeDatePackage
SingleWaveformPanel.javaAPI DocExample1968Mon Jan 09 11:02:00 GMT 2006None

SingleWaveformPanel

public class SingleWaveformPanel extends JPanel
Created by IntelliJ IDEA. User: Jonathan Simon Date: Mar 6, 2005 Time: 9:16:15 PM To change this template use File | Settings | File Templates.

Fields Summary
protected static final Color
BACKGROUND_COLOR
protected static final Color
REFERENCE_LINE_COLOR
protected static final Color
WAVEFORM_COLOR
private AudioInfo
helper
private int
channelIndex
Constructors Summary
public SingleWaveformPanel(AudioInfo helper, int channelIndex)


         
        this.helper = helper;
        this.channelIndex = channelIndex;
        setBackground(BACKGROUND_COLOR);
    
Methods Summary
protected voiddrawWaveform(java.awt.Graphics g, int[] samples)

        if (samples == null) {
            return;
        }

        int oldX = 0;
        int oldY = (int) (getHeight() / 2);
        int xIndex = 0;

        int increment = helper.getIncrement(helper.getXScaleFactor(getWidth()));
        g.setColor(WAVEFORM_COLOR);

        int t = 0;

        for (t = 0; t < increment; t += increment) {
            g.drawLine(oldX, oldY, xIndex, oldY);
            xIndex++;
            oldX = xIndex;
        }

        for (; t < samples.length; t += increment) {
            double scaleFactor = helper.getYScaleFactor(getHeight());
            double scaledSample = samples[t] * scaleFactor;
            int y = (int) ((getHeight() / 2) - (scaledSample));
            g.drawLine(oldX, oldY, xIndex, y);

            xIndex++;
            oldX = xIndex;
            oldY = y;
        }
    
protected voidpaintComponent(java.awt.Graphics g)

        super.paintComponent(g);

        int lineHeight = getHeight() / 2;
        g.setColor(REFERENCE_LINE_COLOR);
        g.drawLine(0, lineHeight, (int)getWidth(), lineHeight);

        drawWaveform(g, helper.getAudio(channelIndex));