Source: qspectrumanalyzer.h


Annotated List
Files
Globals
Hierarchy
Index
// ##########################################################################
// ####                                                                  ####
// ####                      RTP Audio Server Project                    ####
// ####                    ============================                  ####
// ####                                                                  ####
// #### QSpectrumAnalyzer                                                ####
// ####                                                                  ####
// #### Version 1.00  --  February 23, 2001                              ####
// ####                                                                  ####
// #### Copyright (C) 1999  Thomas Dreibholz                             ####
// ####               2000  Universität Bonn, Abt. IV                    ####
// ####               2001  EMail: Dreibholz@bigfoot.com                 ####
// ####                     WWW:   http://www.bigfoot.com/~dreibholz     ####
// ####                                                                  ####
// ##########################################################################


#ifndef QSPECTRUMANALYZER_H
#define QSPECTRUMANALYZER_H


#include "system.h"
#include "spectrumanalyzer.h"


#include <qapp.h>
#if QT_VERSION < 200
#error QT Version 2.00 or better required!!!
#endif
#include <qlayout.h>
#include <qpushbutton.h>
#include <qbuttongroup.h>
#include <qradiobutton.h>
#include <qcheckbox.h>
#include <qtimer.h>
#include <qpainter.h>
#include <qgroupbox.h>
#include <qplatinumstyle.h>
#include <qmainwindow.h>


namespace Coral {


/**
  * Constants for the timing radio buttons.
  */
const card16 QSpectrumAnalyzerTimings[] = {
   50,100,150,250,350,500,750
};


/**
  * This class is the Qt-Toolkit GUI for the spectrum analyzer.
  *
  * @short   QSpectrumAnalyzer
  * @author  Thomas Dreibholz (Dreibholz@bigfoot.com)
  * @version 1.0
  */          
class QSpectrumAnalyzer : public QMainWindow
{
   // ====== Constructor/Destructor =========================================
   Q_OBJECT  
   public:
   /**
     * Constructor.
     *
     * @param analyzer SpectrumAnalyzer object.
     * @param parent Parent widget.
     * @param name Widget name.
     */
   QSpectrumAnalyzer(SpectrumAnalyzer* analyzer,
                     QWidget*          parent = NULL,
                     const char*       name   = NULL);

   /**
     * Destructor.
     */
   ~QSpectrumAnalyzer();


   // ====== Qt slots =======================================================
   public slots:
   /**
     * Qt slot: Called by QTimer.
     */
   void timerEvent();

   /**
     * Qt slot: Paint event.
     */
   void paintEvent(QPaintEvent*);

   /**
     * Qt slot: Pause displaying the spectrum.
     */
   void pause(bool on);

   /**
     * Qt slot: Reset spectrum analyzer.
     */
   void reset();

   /**
     * Qt slot: Close window.
     */
   void closeWindow();

   /**
     * Qt slot: Change update interval.
     */
   void newInterval(int index);


   // ====== Qt signals =====================================================
   signals:
   /**
     * Qt signal: Emitted, when "Close" or window's close button is clicked.
     */
   void closeSpectrumAnalyzer();


   // ====== Private data ===================================================
   private:
   void closeEvent(QCloseEvent* event);
   void drawBar(QPainter*      painter,
                const cardinal x,
                const cardinal y,
                const cardinal width,
                const cardinal height,
                const cardinal barValue);
   void showSpectrum(QWidget*        paintWidget,
                     const cardinal* array);

   static const cardinal Bars         = 70;   // Number of bars
   static const cardinal AverageSteps = 10;   // Number of bars per average line
   static const cardinal BarColors    = 12;   // Number of colors per bar
   cardinal              ArrayL[Bars];
   cardinal              ArrayR[Bars];

   cardinal              Max;
   QWidget*              PaintWidget1;
   QWidget*              PaintWidget2;
   QCheckBox*            Average;
   QPushButton*          Pause;
   QTimer*               Timer;
   card16                Timing;
   SpectrumAnalyzer*     Analyzer;
};


}


#endif

Generated by: viper@odin on Fri Feb 23 12:41:26 2001, using kdoc 2.0a36.