examples/multimedia/audioinput/audioinput.h
changeset 7 f7bc934e204c
parent 0 1918ee327afb
--- a/examples/multimedia/audioinput/audioinput.h	Tue Feb 02 00:43:10 2010 +0200
+++ b/examples/multimedia/audioinput/audioinput.h	Wed Mar 31 11:06:36 2010 +0300
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
@@ -45,6 +45,7 @@
 #include <QMainWindow>
 #include <QPushButton>
 #include <QComboBox>
+#include <QByteArray>
 
 #include <qaudioinput.h>
 
@@ -52,21 +53,21 @@
 {
     Q_OBJECT
 public:
-    AudioInfo(QObject* parent, QAudioInput* device);
+    AudioInfo(const QAudioFormat &format, QObject *parent);
     ~AudioInfo();
 
     void start();
     void stop();
 
-    int LinearMax();
+    qreal level() const { return m_level; }
 
     qint64 readData(char *data, qint64 maxlen);
     qint64 writeData(const char *data, qint64 len);
 
-    QAudioInput*   input;
-
 private:
-    int m_maxValue;
+    const QAudioFormat m_format;
+    quint16 m_maxAmplitude;
+    qreal m_level; // 0.0 <= m_level <= 1.0
 
 signals:
     void update();
@@ -80,14 +81,14 @@
 public:
     RenderArea(QWidget *parent = 0);
 
-    void setLevel(int value);
+    void setLevel(qreal value);
 
 protected:
     void paintEvent(QPaintEvent *event);
 
 private:
-    int level;
-    QPixmap pixmap;
+    qreal m_level;
+    QPixmap m_pixmap;
 };
 
 class InputTest : public QMainWindow
@@ -97,28 +98,38 @@
     InputTest();
     ~InputTest();
 
-    QAudioDeviceInfo device;
-    QAudioFormat   format;
-    QAudioInput*   audioInput;
-    AudioInfo*     audioinfo;
-    QIODevice*     input;
-    RenderArea*    canvas;
-
-    bool           pullMode;
-
-    QPushButton*   button;
-    QPushButton*   button2;
-    QComboBox*     deviceBox;
-
-    char*          buffer;
+private:
+    void initializeWindow();
+    void initializeAudio();
+    void createAudioInput();
 
 private slots:
     void refreshDisplay();
-    void status();
+    void notified();
     void readMore();
     void toggleMode();
     void toggleSuspend();
-    void state(QAudio::State s);
-    void deviceChanged(int idx);
+    void stateChanged(QAudio::State state);
+    void deviceChanged(int index);
+
+private:
+    // Owned by layout
+    RenderArea *m_canvas;
+    QPushButton *m_modeButton;
+    QPushButton *m_suspendResumeButton;
+    QComboBox *m_deviceBox;
+
+    QAudioDeviceInfo m_device;
+    AudioInfo *m_audioInfo;
+    QAudioFormat m_format;
+    QAudioInput *m_audioInput;
+    QIODevice *m_input;
+    bool m_pullMode;
+    QByteArray m_buffer;
+
+    static const QString PushModeLabel;
+    static const QString PullModeLabel;
+    static const QString SuspendLabel;
+    static const QString ResumeLabel;
 };