code: protected void drawMeter(Graphics g, int newTop, int newLeft, int newWidth, int newHeight, boolean doClear)
  	{
  		if (g!=null)
  		{
  			switch (drawWhat)
  			{
  				default:
  				case DRAW_SA_METER: drawSAMeter(g, newTop, newLeft, newWidth, newHeight, doClear); break; 
  				case DRAW_WAVE_METER: drawWaveMeter(g, newTop, newLeft, newWidth, newHeight, doClear); break; 
  				case DRAW_SK_METER: drawSKMeter(g, newTop, newLeft, newWidth, newHeight); break; 
  			}
  		}
  		for (int i=0; i<bands; i++)
  		{
  			fftLevels[i]-=rampDownValue;
  			if (fftLevels[i]<0.0F) fftLevels[i]=0.0F;
  			
  			maxFFTLevels[i] -= maxPeakLevelRampDownValue[i];
  			if (maxFFTLevels[i]<0.0F) 
  				maxFFTLevels[i]=0.0F;
  			else
  				maxPeakLevelRampDownValue[i] += maxPeakLevelRampDownDelay;
  		}
  	}
docs: Internal method doing the drawing
  @param g
  @param newTop
  @param newLeft
  @param newWidth
  @param newHeight
  @param doClear
  @since 06.05.2011