[Sv1-commits] SF.net SVN: sv1:[1622] sonic-visualiser/trunk
Brought to you by:
cannam
From: <ca...@us...> - 2009-09-10 18:44:57
|
Revision: 1622 http://sv1.svn.sourceforge.net/sv1/?rev=1622&view=rev Author: cannam Date: 2009-09-10 18:44:45 +0000 (Thu, 10 Sep 2009) Log Message: ----------- * solaris build fixes Modified Paths: -------------- sonic-visualiser/trunk/data/fileio/FileSource.cpp sonic-visualiser/trunk/data/midi/MIDIInput.cpp sonic-visualiser/trunk/data/model/FFTModel.cpp sonic-visualiser/trunk/data/model/ImageModel.h sonic-visualiser/trunk/data/model/IntervalModel.h sonic-visualiser/trunk/data/model/PowerOfSqrtTwoZoomConstraint.cpp sonic-visualiser/trunk/data/model/RegionModel.h sonic-visualiser/trunk/data/model/SparseModel.h sonic-visualiser/trunk/data/model/TextModel.h sonic-visualiser/trunk/data/model/WaveFileModel.cpp sonic-visualiser/trunk/data/osc/OSCQueue.cpp sonic-visualiser/trunk/layer/Colour3DPlotLayer.cpp sonic-visualiser/trunk/layer/Layer.cpp sonic-visualiser/trunk/layer/SpectrogramLayer.cpp sonic-visualiser/trunk/plugin/DSSIPluginInstance.cpp sonic-visualiser/trunk/plugin/FeatureExtractionPluginFactory.cpp sonic-visualiser/trunk/plugin/RealTimePluginFactory.cpp sonic-visualiser/trunk/plugin/api/dssi_alsa_compat.c sonic-visualiser/trunk/prf/sv.prf sonic-visualiser/trunk/system/System.cpp sonic-visualiser/trunk/view/View.cpp sonic-visualiser/trunk/widgets/PluginParameterDialog.cpp sonic-visualiser/trunk/widgets/WindowShapePreview.cpp Modified: sonic-visualiser/trunk/data/fileio/FileSource.cpp =================================================================== --- sonic-visualiser/trunk/data/fileio/FileSource.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/fileio/FileSource.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -30,6 +30,8 @@ #include <iostream> #include <cstdlib> +#include <unistd.h> + //#define DEBUG_FILE_SOURCE 1 int Modified: sonic-visualiser/trunk/data/midi/MIDIInput.cpp =================================================================== --- sonic-visualiser/trunk/data/midi/MIDIInput.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/midi/MIDIInput.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -17,6 +17,8 @@ #include "rtmidi/RtMidi.h" +#include <unistd.h> + MIDIInput::MIDIInput(QString name, FrameTimer *timer) : m_rtmidi(), m_frameTimer(timer), Modified: sonic-visualiser/trunk/data/model/FFTModel.cpp =================================================================== --- sonic-visualiser/trunk/data/model/FFTModel.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/FFTModel.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -24,6 +24,10 @@ #include <cassert> +#ifndef __GNUC__ +#include <alloca.h> +#endif + FFTModel::FFTModel(const DenseTimeValueModel *model, int channel, WindowType windowType, @@ -172,7 +176,11 @@ size_t h = getHeight(); result.reserve(h); +#ifdef __GNUC__ float magnitudes[h]; +#else + float *magnitudes = (float *)alloca(h * sizeof(float)); +#endif if (m_server->getMagnitudesAt(x << m_xshift, magnitudes)) { @@ -256,7 +264,11 @@ int maxbin = ymax; if (maxbin < getHeight() - 1) maxbin = maxbin + 1; const int n = maxbin - minbin + 1; +#ifdef __GNUC__ float values[n]; +#else + float *values = (float *)alloca(n * sizeof(float)); +#endif getMagnitudesAt(x, values, minbin, maxbin - minbin + 1); for (size_t bin = ymin; bin <= ymax; ++bin) { if (bin == minbin || bin == maxbin) continue; Modified: sonic-visualiser/trunk/data/model/ImageModel.h =================================================================== --- sonic-visualiser/trunk/data/model/ImageModel.h 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/ImageModel.h 2009-09-10 18:44:45 UTC (rev 1622) @@ -164,7 +164,7 @@ (row, column, role); } - PointListIterator i = getPointListIteratorForRow(row); + PointListConstIterator i = getPointListIteratorForRow(row); if (i == m_points.end()) return QVariant(); switch (column) { Modified: sonic-visualiser/trunk/data/model/IntervalModel.h =================================================================== --- sonic-visualiser/trunk/data/model/IntervalModel.h 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/IntervalModel.h 2009-09-10 18:44:45 UTC (rev 1622) @@ -134,14 +134,14 @@ PointType endPoint(end); - typename I::PointListIterator endItr = I::m_points.upper_bound(endPoint); + typename I::PointListConstIterator endItr = I::m_points.upper_bound(endPoint); if (endItr != I::m_points.end()) ++endItr; if (endItr != I::m_points.end()) ++endItr; typename I::PointList rv; - for (typename I::PointListIterator i = endItr; i != I::m_points.begin(); ) { + for (typename I::PointListConstIterator i = endItr; i != I::m_points.begin(); ) { --i; if (i->frame < start) { if (i->frame + long(i->duration) >= start) { @@ -171,11 +171,11 @@ PointType endPoint(end); - typename I::PointListIterator endItr = I::m_points.upper_bound(endPoint); + typename I::PointListConstIterator endItr = I::m_points.upper_bound(endPoint); typename I::PointList rv; - for (typename I::PointListIterator i = endItr; i != I::m_points.begin(); ) { + for (typename I::PointListConstIterator i = endItr; i != I::m_points.begin(); ) { --i; if (i->frame < start) { if (i->frame + long(i->duration) >= start) { Modified: sonic-visualiser/trunk/data/model/PowerOfSqrtTwoZoomConstraint.cpp =================================================================== --- sonic-visualiser/trunk/data/model/PowerOfSqrtTwoZoomConstraint.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/PowerOfSqrtTwoZoomConstraint.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -44,7 +44,7 @@ float val = 1.0, prevVal = 1.0; while (val + 0.01 < blockSize) { prevVal = val; - val *= sqrt(2); + val *= sqrt(2.f); } size_t rval; if (dir == RoundUp) rval = size_t(val + 0.01); @@ -70,7 +70,7 @@ if (type == 0) { base = (1 << power); } else { - base = (((unsigned int)((1 << minCachePower) * sqrt(2) + 0.01)) + base = (((unsigned int)((1 << minCachePower) * sqrt(2.) + 0.01)) << (power - minCachePower)); } Modified: sonic-visualiser/trunk/data/model/RegionModel.h =================================================================== --- sonic-visualiser/trunk/data/model/RegionModel.h 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/RegionModel.h 2009-09-10 18:44:45 UTC (rev 1622) @@ -163,7 +163,7 @@ return IntervalModel<RegionRec>::getData(row, column, role); } - PointListIterator i = getPointListIteratorForRow(row); + PointListConstIterator i = getPointListIteratorForRow(row); if (i == m_points.end()) return QVariant(); switch (column) { Modified: sonic-visualiser/trunk/data/model/SparseModel.h =================================================================== --- sonic-visualiser/trunk/data/model/SparseModel.h 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/SparseModel.h 2009-09-10 18:44:45 UTC (rev 1622) @@ -26,6 +26,7 @@ #include <set> #include <vector> #include <algorithm> +#include <iterator> #include <cmath> @@ -287,7 +288,12 @@ if (m_rows.empty()) rebuildRowVector(); std::vector<long>::iterator i = std::lower_bound(m_rows.begin(), m_rows.end(), frame); +#if defined(__SUNPRO_CC) && defined(__STD_RW_ITERATOR__) + int row = 0; + std::distance(m_rows.begin(), i, row); +#else int row = std::distance(m_rows.begin(), i); +#endif if (i != m_rows.begin() && (i == m_rows.end() || *i != frame)) { --row; } @@ -368,7 +374,10 @@ void getPointIterators(long frame, PointListIterator &startItr, - PointListIterator &endItr) const; + PointListIterator &endItr); + void getPointIterators(long frame, + PointListConstIterator &startItr, + PointListConstIterator &endItr) const; // This is only used if the model is called on to act in // TabularModel mode @@ -376,12 +385,12 @@ void rebuildRowVector() const { m_rows.clear(); - for (PointListIterator i = m_points.begin(); i != m_points.end(); ++i) { + for (PointListConstIterator i = m_points.begin(); i != m_points.end(); ++i) { m_rows.push_back(i->frame); } } - PointListIterator getPointListIteratorForRow(int row) const + PointListIterator getPointListIteratorForRow(int row) { if (m_rows.empty()) rebuildRowVector(); if (row < 0 || row + 1 > int(m_rows.size())) return m_points.end(); @@ -406,6 +415,32 @@ } return i; } + + PointListConstIterator getPointListIteratorForRow(int row) const + { + if (m_rows.empty()) rebuildRowVector(); + if (row < 0 || row + 1 > int(m_rows.size())) return m_points.end(); + + size_t frame = m_rows[row]; + int indexAtFrame = 0; + int ri = row; + while (ri > 0 && m_rows[ri-1] == m_rows[row]) { --ri; ++indexAtFrame; } + int initialIndexAtFrame = indexAtFrame; + + PointListConstIterator i0, i1; + getPointIterators(frame, i0, i1); + PointListConstIterator i = i0; + + for (i = i0; i != i1; ++i) { + if (indexAtFrame > 0) { --indexAtFrame; continue; } + return i; + } + + if (indexAtFrame > 0) { + std::cerr << "WARNING: SparseModel::getPointListIteratorForRow: No iterator available for row " << row << " (frame = " << frame << ", index at frame = " << initialIndexAtFrame << ", leftover index " << indexAtFrame << ")" << std::endl; + } + return i; + } }; @@ -443,7 +478,7 @@ QMutexLocker locker(&m_mutex); size_t f = 0; if (!m_points.empty()) { - PointListIterator i(m_points.end()); + PointListConstIterator i(m_points.end()); f = (--i)->frame; } return f; @@ -493,8 +528,8 @@ PointType startPoint(start), endPoint(end); - PointListIterator startItr = m_points.lower_bound(startPoint); - PointListIterator endItr = m_points.upper_bound(endPoint); + PointListConstIterator startItr = m_points.lower_bound(startPoint); + PointListConstIterator endItr = m_points.upper_bound(endPoint); if (startItr != m_points.begin()) --startItr; if (startItr != m_points.begin()) --startItr; @@ -503,7 +538,7 @@ PointList rv; - for (PointListIterator i = startItr; i != endItr; ++i) { + for (PointListConstIterator i = startItr; i != endItr; ++i) { rv.insert(*i); } @@ -514,12 +549,12 @@ typename SparseModel<PointType>::PointList SparseModel<PointType>::getPoints(long frame) const { - PointListIterator startItr, endItr; + PointListConstIterator startItr, endItr; getPointIterators(frame, startItr, endItr); PointList rv; - for (PointListIterator i = startItr; i != endItr; ++i) { + for (PointListConstIterator i = startItr; i != endItr; ++i) { rv.insert(*i); } @@ -530,7 +565,7 @@ void SparseModel<PointType>::getPointIterators(long frame, PointListIterator &startItr, - PointListIterator &endItr) const + PointListIterator &endItr) { QMutexLocker locker(&m_mutex); @@ -550,6 +585,29 @@ } template <typename PointType> +void +SparseModel<PointType>::getPointIterators(long frame, + PointListConstIterator &startItr, + PointListConstIterator &endItr) const +{ + QMutexLocker locker(&m_mutex); + + if (m_resolution == 0) { + startItr = m_points.end(); + endItr = m_points.end(); + return; + } + + long start = (frame / m_resolution) * m_resolution; + long end = start + m_resolution; + + PointType startPoint(start), endPoint(end); + + startItr = m_points.lower_bound(startPoint); + endItr = m_points.upper_bound(endPoint); +} + +template <typename PointType> typename SparseModel<PointType>::PointList SparseModel<PointType>::getPreviousPoints(long originFrame) const { @@ -558,7 +616,7 @@ PointType lookupPoint(originFrame); PointList rv; - PointListIterator i = m_points.lower_bound(lookupPoint); + PointListConstIterator i = m_points.lower_bound(lookupPoint); if (i == m_points.begin()) return rv; --i; @@ -581,7 +639,7 @@ PointType lookupPoint(originFrame); PointList rv; - PointListIterator i = m_points.upper_bound(lookupPoint); + PointListConstIterator i = m_points.upper_bound(lookupPoint); if (i == m_points.end()) return rv; long frame = i->frame; @@ -738,7 +796,7 @@ .arg(getObjectExportId(&m_points)) .arg(PointType(0).getDimensions()); - for (PointListIterator i = m_points.begin(); i != m_points.end(); ++i) { + for (PointListConstIterator i = m_points.begin(); i != m_points.end(); ++i) { i->toXml(out, indent + " "); } Modified: sonic-visualiser/trunk/data/model/TextModel.h =================================================================== --- sonic-visualiser/trunk/data/model/TextModel.h 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/TextModel.h 2009-09-10 18:44:45 UTC (rev 1622) @@ -129,7 +129,7 @@ (row, column, role); } - PointListIterator i = getPointListIteratorForRow(row); + PointListConstIterator i = getPointListIteratorForRow(row); if (i == m_points.end()) return QVariant(); switch (column) { Modified: sonic-visualiser/trunk/data/model/WaveFileModel.cpp =================================================================== --- sonic-visualiser/trunk/data/model/WaveFileModel.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/model/WaveFileModel.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -494,8 +494,8 @@ cacheBlock = (1 << m_zoomConstraint.getMinCachePower()); div = (1 << power) / cacheBlock; } else { - cacheBlock = ((unsigned int)((1 << m_zoomConstraint.getMinCachePower()) * sqrt(2) + 0.01)); - div = ((unsigned int)((1 << power) * sqrt(2) + 0.01)) / cacheBlock; + cacheBlock = ((unsigned int)((1 << m_zoomConstraint.getMinCachePower()) * sqrt(2.) + 0.01)); + div = ((unsigned int)((1 << power) * sqrt(2.) + 0.01)) / cacheBlock; } size_t startIndex = start / cacheBlock; @@ -656,7 +656,7 @@ size_t cacheBlockSize[2]; cacheBlockSize[0] = (1 << m_model.m_zoomConstraint.getMinCachePower()); cacheBlockSize[1] = ((unsigned int)((1 << m_model.m_zoomConstraint.getMinCachePower()) * - sqrt(2) + 0.01)); + sqrt(2.) + 0.01)); size_t frame = 0; int readBlockSize = 16384; Modified: sonic-visualiser/trunk/data/osc/OSCQueue.cpp =================================================================== --- sonic-visualiser/trunk/data/osc/OSCQueue.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/data/osc/OSCQueue.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -23,6 +23,7 @@ #include "base/Profiler.h" #include <iostream> +#include <unistd.h> #define OSC_MESSAGE_QUEUE_SIZE 1023 Modified: sonic-visualiser/trunk/layer/Colour3DPlotLayer.cpp =================================================================== --- sonic-visualiser/trunk/layer/Colour3DPlotLayer.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/layer/Colour3DPlotLayer.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -30,6 +30,10 @@ #include <cassert> +#ifndef __GNUC__ +#include <alloca.h> +#endif + //#define DEBUG_COLOUR_3D_PLOT_LAYER_PAINT 1 @@ -1372,7 +1376,11 @@ float epsilon = 0.000001; +#ifdef __GNUC__ float sxa[w * 2]; +#else + float *sxa = (float *)alloca(w * 2 * sizeof(float)); +#endif for (int x = 0; x < w; ++x) { xf = nxf; Modified: sonic-visualiser/trunk/layer/Layer.cpp =================================================================== --- sonic-visualiser/trunk/layer/Layer.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/layer/Layer.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -554,7 +554,7 @@ int xd = focusPoint.x() - cx; int yd = focusPoint.y() - cy; - float d = sqrt(xd * xd + yd * yd); + float d = sqrt(float(xd * xd + yd * yd)); if (focusRectItr == m_measureRects.end() || d < frDist) { focusRectItr = i; Modified: sonic-visualiser/trunk/layer/SpectrogramLayer.cpp =================================================================== --- sonic-visualiser/trunk/layer/SpectrogramLayer.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/layer/SpectrogramLayer.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -45,6 +45,10 @@ #include <cassert> #include <cmath> +#ifndef __GNUC__ +#include <alloca.h> +#endif + //#define DEBUG_SPECTROGRAM_REPAINT 1 SpectrogramLayer::SpectrogramLayer(Configuration config) : @@ -2256,8 +2260,13 @@ bufwid = w; } +#ifdef __GNUC__ int binforx[bufwid]; float binfory[h]; +#else + int *binforx = (int *)alloca(bufwid * sizeof(int)); + float *binfory = (float *)alloca(h * sizeof(float)); +#endif bool usePeaksCache = false; @@ -2502,7 +2511,12 @@ FFTModel::PeakSet peakfreqs; int px = -1, psx = -1; + +#ifdef __GNUC__ float values[maxbin - minbin + 1]; +#else + float *values = (float *)alloca((maxbin - minbin + 1) * sizeof(float)); +#endif for (int x = 0; x < w; ++x) { @@ -2642,10 +2656,17 @@ } int psx = -1; + +#ifdef __GNUC__ float autoarray[maxbin - minbin + 1]; + float peaks[h]; +#else + float *autoarray = (float *)alloca((maxbin - minbin + 1) * sizeof(float)); + float *peaks = (float *)alloca(h * sizeof(float)); +#endif + const float *values = autoarray; DenseThreeDimensionalModel::Column c; - float peaks[h]; for (int x = 0; x < w; ++x) { Modified: sonic-visualiser/trunk/plugin/DSSIPluginInstance.cpp =================================================================== --- sonic-visualiser/trunk/plugin/DSSIPluginInstance.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/plugin/DSSIPluginInstance.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -27,6 +27,8 @@ #include <cstdlib> +#include <alloca.h> + //#define DEBUG_DSSI 1 //#define DEBUG_DSSI_PROCESS 1 Modified: sonic-visualiser/trunk/plugin/FeatureExtractionPluginFactory.cpp =================================================================== --- sonic-visualiser/trunk/plugin/FeatureExtractionPluginFactory.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/plugin/FeatureExtractionPluginFactory.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -102,7 +102,8 @@ } // Plugins can change the locale, revert it to default. - setlocale(LC_ALL, "C"); + RestoreStartupLocale(); + return rv; } Modified: sonic-visualiser/trunk/plugin/RealTimePluginFactory.cpp =================================================================== --- sonic-visualiser/trunk/plugin/RealTimePluginFactory.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/plugin/RealTimePluginFactory.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -129,6 +129,6 @@ if (factory) factory->enumeratePlugins(list); // Plugins can change the locale, revert it to default. - setlocale(LC_ALL, "C"); + RestoreStartupLocale(); } Modified: sonic-visualiser/trunk/plugin/api/dssi_alsa_compat.c =================================================================== --- sonic-visualiser/trunk/plugin/api/dssi_alsa_compat.c 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/plugin/api/dssi_alsa_compat.c 2009-09-10 18:44:45 UTC (rev 1622) @@ -25,6 +25,7 @@ #define FIXED_EV(x) (_SND_SEQ_TYPE(SND_SEQ_EVFLG_FIXED) | _SND_SEQ_TYPE(x)) /** Event types conversion array */ +/* const unsigned int snd_seq_event_types[256] = { [SND_SEQ_EVENT_SYSTEM ... SND_SEQ_EVENT_RESULT] = FIXED_EV(SND_SEQ_EVFLG_RESULT), @@ -63,7 +64,7 @@ [SND_SEQ_EVENT_NONE] = FIXED_EV(SND_SEQ_EVFLG_NONE), }; - +*/ /** * \file seq/seq_midi_event.c * \brief MIDI byte <-> sequencer event coder Modified: sonic-visualiser/trunk/prf/sv.prf =================================================================== --- sonic-visualiser/trunk/prf/sv.prf 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/prf/sv.prf 2009-09-10 18:44:45 UTC (rev 1622) @@ -20,6 +20,8 @@ QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O3 QMAKE_CXXFLAGS_DEBUG += -Wall -Woverloaded-virtual -Wextra +INCLUDEPATH += /usr/local/include + # To do a static build with gcc on Linux # #linux-g++*:LIBS += -Wl,-Bstatic @@ -27,6 +29,9 @@ DEFINES += NO_PIXMAP_COPY_TO_SELF +solaris*:QMAKE_CFLAGS_DEBUG += -xc99 +solaris*:QMAKE_CFLAGS_RELEASE += -xc99 + macx*:LIBS += -framework QuickTime -framework CoreAudio -framework CoreMidi -framework AudioUnit -framework AudioToolbox linux*:LIBS += -lasound # needed for MIDI, even if unused for audio Modified: sonic-visualiser/trunk/system/System.cpp =================================================================== --- sonic-visualiser/trunk/system/System.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/system/System.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -23,6 +23,8 @@ #ifndef _WIN32 #include <signal.h> #include <sys/statvfs.h> +#include <locale.h> +#include <unistd.h> #endif #ifdef __APPLE__ Modified: sonic-visualiser/trunk/view/View.cpp =================================================================== --- sonic-visualiser/trunk/view/View.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/view/View.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -38,6 +38,8 @@ #include <cassert> #include <cmath> +#include <unistd.h> + //#define DEBUG_VIEW_WIDGET_PAINT 1 using std::cerr; Modified: sonic-visualiser/trunk/widgets/PluginParameterDialog.cpp =================================================================== --- sonic-visualiser/trunk/widgets/PluginParameterDialog.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/widgets/PluginParameterDialog.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -423,7 +423,7 @@ blockSizeCombo->addItem(QString("%1").arg(size)); blockSizeCombo->setCurrentIndex(blockSizeCombo->count() - 1); } - blockSizeCombo->setValidator(new QIntValidator(1, int(pow(2, 18)), this)); + blockSizeCombo->setValidator(new QIntValidator(1, int(pow(2., 18)), this)); connect(blockSizeCombo, SIGNAL(editTextChanged(const QString &)), this, SLOT(blockSizeComboChanged(const QString &))); windowLayout->addWidget(blockSizeCombo, 0, 1); @@ -445,7 +445,7 @@ incrementCombo->addItem(QString("%1").arg(increment)); incrementCombo->setCurrentIndex(incrementCombo->count() - 1); } - incrementCombo->setValidator(new QIntValidator(1, int(pow(2, 18)), this)); + incrementCombo->setValidator(new QIntValidator(1, int(pow(2., 18)), this)); connect(incrementCombo, SIGNAL(editTextChanged(const QString &)), this, SLOT(incrementComboChanged(const QString &))); windowLayout->addWidget(incrementCombo, 1, 1); Modified: sonic-visualiser/trunk/widgets/WindowShapePreview.cpp =================================================================== --- sonic-visualiser/trunk/widgets/WindowShapePreview.cpp 2009-09-10 15:25:58 UTC (rev 1621) +++ sonic-visualiser/trunk/widgets/WindowShapePreview.cpp 2009-09-10 18:44:45 UTC (rev 1622) @@ -26,6 +26,10 @@ #include <iostream> +#ifndef __GNUC__ +#include <alloca.h> +#endif + WindowShapePreview::WindowShapePreview(QWidget *parent) : QFrame(parent), m_windowType(WindowType(999)) @@ -67,7 +71,12 @@ path = QPainterPath(); +#ifdef __GNUC__ float acc[w]; +#else + float *acc = (float *)alloca(w * sizeof(float)); +#endif + for (int i = 0; i < w; ++i) acc[i] = 0.f; for (int j = 0; j < 3; ++j) { for (int i = 0; i < step * 2; ++i) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |