00001
#ifndef AUDIODISPLAYVOLUME_HPP
00002
#define AUDIODISPLAYVOLUME_HPP
00003
00004
#ifdef HAVE_CONFIG_H
00005
#include "config.h"
00006
#endif
00007
00008
#include <qarray.h>
00009
#include <qthread.h>
00010
#include <qvector.h>
00011
#include <qwidget.h>
00012
00013
#include "AudioDevice.h"
00014
#include "LedBar.h"
00015
00016 class CAudioDisplayVolume:
public QWidget,
public QThread
00017 {
00018 Q_OBJECT
00019
public:
00023 enum DisplayMode
00024 {
00025
SkyLine,
00026
Stereo,
00027
Stack,
00028 };
00029
00030
private:
00031 QMutex m_Mutex;
00032 DisplayMode m_DisplayMode;
00033
int m_DisplayLength;
00034
CAudioRingBufferReader *m_pReader;
00035
SoundAttributes m_SndAttr;
00036
int m_Samples;
00037
bool m_Done;
00038 QSize m_SizeHint;
00039
int m_Length;
00040
int m_MaxShift;
00041
00042 QVector<CLedBar> m_Bars;
00043 QArray<int> m_OldMax;
00044 QArray<int> m_Max;
00045
00046
void RecalculateSizes();
00047
00048
protected:
00049
virtual void run();
00050
virtual void paintEvent(QPaintEvent *ev);
00051
virtual void resizeEvent(QResizeEvent *ev);
00052
00053
public:
00054
CAudioDisplayVolume(QWidget *parent = 0,
const char *name = 0);
00055
CAudioDisplayVolume(
CAudioRingBufferReader *reader, DisplayMode mode, QWidget *parent = 0,
const char *name = 0);
00056
~CAudioDisplayVolume();
00057
00058
void SetMode(DisplayMode mode);
00059
void SetReader(
CAudioRingBufferReader *reader);
00060
void SetLength(
int length);
00061
00062
virtual QSize
sizeHint();
00063
void Quit(
bool Wait =
true);
00064
00065
public slots:
00066
void SetSoundAttributes(
const SoundAttributes &);
00067 };
00068
00069
#endif
00070