From 88cd10aa7b3559b092cf5575b0a17d002dc100ae Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 13 Feb 2014 09:59:52 +0200 Subject: Fix examples installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Had to add one folder to the examples structure so installation works correctly. Change-Id: Ic92dfe9997413a6243abcf5eeba12744ba9e938c Reviewed-by: Tomi Korpipää --- .../datavisualization/audiolevels/audiolevels.cpp | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 examples/datavisualization/audiolevels/audiolevels.cpp (limited to 'examples/datavisualization/audiolevels/audiolevels.cpp') diff --git a/examples/datavisualization/audiolevels/audiolevels.cpp b/examples/datavisualization/audiolevels/audiolevels.cpp new file mode 100644 index 00000000..18c1342a --- /dev/null +++ b/examples/datavisualization/audiolevels/audiolevels.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "audiolevelsiodevice.h" +#include "audiolevels.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace QtDataVisualization; + +AudioLevels::AudioLevels(Q3DBars *graph, QObject *parent) + : QObject(parent), + m_graph(graph), + m_device(0), + m_audioInput(0) +{ + // Set up the graph + m_graph->setBarThickness(0.5f); + m_graph->setBarSpacing(QSizeF(0.0, 1.0)); + m_graph->valueAxis()->setRange(-100.0f, 100.0f); + m_graph->valueAxis()->setSegmentCount(20); + m_graph->valueAxis()->setLabelFormat(QStringLiteral("%d%%")); + m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualityNone); + m_graph->setSelectionMode(QAbstract3DGraph::SelectionNone); + m_graph->scene()->activeCamera()->setCameraPosition(-25.0f, 10.0f, 190.0f); + m_graph->activeTheme()->setType(Q3DTheme::ThemeIsabelle); + m_graph->activeTheme()->setGridEnabled(true); + m_graph->activeTheme()->setBackgroundEnabled(false); + QFont font = m_graph->activeTheme()->font(); + font.setPointSize(10); + m_graph->activeTheme()->setFont(font); + QBar3DSeries *series = new QBar3DSeries; + series->setMesh(QAbstract3DSeries::MeshBar); + m_graph->addSeries(series); + + //! [0] + QAudioDeviceInfo inputDevice = QAudioDeviceInfo::defaultInputDevice(); + + QAudioFormat formatAudio; + formatAudio.setSampleRate(inputDevice.supportedSampleRates().at(0)); + formatAudio.setChannelCount(inputDevice.supportedChannelCounts().at(0)); + formatAudio.setSampleSize(inputDevice.supportedSampleSizes().at(0)); + formatAudio.setCodec(inputDevice.supportedCodecs().at(0)); + formatAudio.setByteOrder(QAudioFormat::LittleEndian); + formatAudio.setSampleType(QAudioFormat::UnSignedInt); + + m_audioInput = new QAudioInput(inputDevice, formatAudio, this); +#ifdef Q_OS_MAC + // Mac seems to wait for entire buffer to fill before calling writeData, so use smaller buffer + m_audioInput->setBufferSize(256); +#else + m_audioInput->setBufferSize(1024); +#endif + + m_device = new AudioLevelsIODevice(m_graph->seriesList().at(0)->dataProxy(), this); + m_device->open(QIODevice::WriteOnly); + + m_audioInput->start(m_device); + //! [0] +} + +AudioLevels::~AudioLevels() +{ + m_audioInput->stop(); + m_device->close(); +} -- cgit v1.2.3