Polish and fix qmlvideofx example
authorhjk <qthjk@ovi.com>
Tue, 18 Dec 2012 14:11:44 +0000 (15:11 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 20 Dec 2012 18:28:19 +0000 (19:28 +0100)
Change-Id: I30f6d7d2af784ba018a659a16aceb4876a4b1be6
Reviewed-by: hjk <qthjk@ovi.com>
33 files changed:
examples/multimedia/video/qmlvideo/main.cpp
examples/multimedia/video/qmlvideofx/filereader.cpp
examples/multimedia/video/qmlvideofx/filereader.h
examples/multimedia/video/qmlvideofx/main.cpp
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Effect.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectEmboss.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGlow.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSepia.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection2.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectTiltShift.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectVignette.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWarhol.qml
examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml
examples/multimedia/video/qmlvideofx/qmlvideofx.pro
examples/multimedia/video/qmlvideofx/qmlvideofx.qrc
examples/multimedia/video/qmlvideofx/trace.h
examples/multimedia/video/snippets/frequencymonitor/frequencymonitor.cpp
examples/multimedia/video/snippets/frequencymonitor/frequencymonitor.h
examples/multimedia/video/snippets/performancemonitor/performancemonitor.cpp
examples/multimedia/video/snippets/performancemonitor/performancemonitor.h

index 8230e94..ac26c98 100644 (file)
@@ -69,8 +69,8 @@ int main(int argc, char *argv[])
     QStringList args = app.arguments();
     PerformanceMonitor::State performanceMonitorState;
     bool sourceIsUrl = false;
-    for (int i=1; i<args.count(); ++i) {
-        const QString &arg = args.at(i);
+    for (int i = 1; i < args.size(); ++i) {
+        const QByteArray arg = args.at(i).toUtf8();
         if (arg.startsWith('-')) {
             if ("-volume" == arg) {
                 if (i+1 < args.count())
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
                     qtTrace() << "Option \"-volume\" takes a value";
             }
 #ifdef PERFORMANCEMONITOR_SUPPORT
-            else if (PerformanceMonitor::parseArgument(arg, performanceMonitorState)) {
+            else if (performanceMonitorState.parseArgument(arg)) {
                 // Do nothing
             }
 #endif
index 0657663..6c97733 100644 (file)
 
 #include "filereader.h"
 #include "trace.h"
-#include <QtCore/QCoreApplication>
-#include <QtCore/QDir>
-#include <QtCore/QFile>
-#include <QtCore/QFileInfo>
-#include <QtCore/QTextStream>
 
-QString adjustPath(const QString &path)
-{
-#ifdef Q_OS_UNIX
-#ifdef Q_OS_MAC
-    if (!QDir::isAbsolutePath(path))
-        return QCoreApplication::applicationDirPath()
-                + QLatin1String("/../Resources/") + path;
-#else
-    QString pathInInstallDir;
-    const QString applicationDirPath = QCoreApplication::applicationDirPath();
-    pathInInstallDir = QString::fromLatin1("%1/../%2").arg(applicationDirPath, path);
-
-    if (QFileInfo(pathInInstallDir).exists())
-        return pathInInstallDir;
-#endif
-#endif
-    return path;
-}
+#include <QCoreApplication>
+#include <QDir>
+#include <QFile>
+#include <QFileInfo>
+#include <QTextStream>
 
 QString FileReader::readFile(const QString &fileName)
 {
     qtTrace() << "FileReader::readFile" << "fileName" << fileName;
     QString content;
-    QFile file(adjustPath(fileName));
+    QFile file(fileName);
     if (file.open(QIODevice::ReadOnly)) {
         QTextStream stream(&file);
         content = stream.readAll();
index 44393b1..443a2a2 100644 (file)
@@ -39,7 +39,7 @@
 **
 ****************************************************************************/
 
-#include <QtCore/QObject>
+#include <QObject>
 
 class FileReader : public QObject
 {
index 9f47a9c..056c274 100644 (file)
@@ -72,17 +72,17 @@ int main(int argc, char *argv[])
 #ifdef PERFORMANCEMONITOR_SUPPORT
     PerformanceMonitor::State performanceMonitorState;
 #endif
-    for (int i=1; i<args.count(); ++i) {
-        const QString &arg = args.at(i);
+    for (int i = 1; i < args.size(); ++i) {
+        const QByteArray arg = args.at(i).toUtf8();
         if (arg.startsWith('-')) {
             if ("-volume" == arg) {
-                if (i+1 < args.count())
+                if (i + 1 < args.size())
                     volume = 0.01 * args.at(++i).toInt();
                 else
                     qtTrace() << "Option \"-volume\" takes a value";
             }
 #ifdef PERFORMANCEMONITOR_SUPPORT
-            else if (PerformanceMonitor::parseArgument(arg, performanceMonitorState)) {
+            else if (performanceMonitorState.parseArgument(arg)) {
                 // Do nothing
             }
 #endif
index 535ab10..0010673 100644 (file)
@@ -69,7 +69,7 @@ ShaderEffect {
     // rather than being inline in the QML file
 
     onFragmentShaderFilenameChanged:
-        fragmentShader = d.fragmentShaderCommon + fileReader.readFile(fragmentShaderFilename)
+        fragmentShader = d.fragmentShaderCommon + fileReader.readFile(":shaders/" + fragmentShaderFilename)
     onVertexShaderFilenameChanged:
         vertexShader = fileReader.readFile(vertexShaderFilename)
 }
index 124a2a1..4a458b7 100644 (file)
@@ -55,5 +55,5 @@ Effect {
     property real step_x: 0.0015625
     property real step_y: targetHeight ? (step_x * targetWidth / targetHeight) : 0.0
 
-    fragmentShaderFilename: "shaders/billboard.fsh"
+    fragmentShaderFilename: "billboard.fsh"
 }
index 37a3b6e..0660e91 100644 (file)
@@ -52,5 +52,5 @@ Effect {
     // Transform slider values, and bind result to shader uniforms
     property real threshold: parameters.get(0).value
 
-    fragmentShaderFilename: "shaders/blackandwhite.fsh"
+    fragmentShaderFilename: "blackandwhite.fsh"
 }
index 4bf5771..a71b30e 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/emboss.fsh"
+    fragmentShaderFilename: "emboss.fsh"
 }
index b804e90..a3ef874 100644 (file)
@@ -63,7 +63,7 @@ Item {
         anchors.fill:  parent
         dividerValue: parent.dividerValue
         property real blurSize: 4.0 * parent.parameters.get(0).value / targetHeight
-        fragmentShaderFilename: "shaders/gaussianblur_v.fsh"
+        fragmentShaderFilename: "gaussianblur_v.fsh"
     }
 
     Effect {
@@ -71,7 +71,7 @@ Item {
         anchors.fill: parent
         dividerValue: parent.dividerValue
         property real blurSize: 4.0 * parent.parameters.get(0).value / parent.targetWidth
-        fragmentShaderFilename: "shaders/gaussianblur_h.fsh"
+        fragmentShaderFilename: "gaussianblur_h.fsh"
         source: horizontalShaderSource
 
         ShaderEffectSource {
index d6e987d..5b3ae41 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/glow.fsh"
+    fragmentShaderFilename: "glow.fsh"
 }
index 2425a25..d81c793 100644 (file)
@@ -57,5 +57,5 @@ Effect {
     property real targetHue: parameters.get(0).value * 360
     property real windowWidth: parameters.get(1).value * 60
 
-    fragmentShaderFilename: "shaders/isolate.fsh"
+    fragmentShaderFilename: "isolate.fsh"
 }
index 5a207f9..4a37a0a 100644 (file)
@@ -84,7 +84,7 @@ Effect {
         d.oldTargetHeight = targetHeight
     }
 
-    fragmentShaderFilename: "shaders/magnify.fsh"
+    fragmentShaderFilename: "magnify.fsh"
 
     MouseArea {
         anchors.fill: parent
index 7724bfa..862c267 100644 (file)
@@ -53,5 +53,5 @@ Effect {
     // Transform slider values, and bind result to shader uniforms
     property real curlExtent: 1.0 - parameters.get(0).value
 
-    fragmentShaderFilename: "shaders/pagecurl.fsh"
+    fragmentShaderFilename: "pagecurl.fsh"
 }
index 71f7da9..11281f7 100644 (file)
@@ -52,5 +52,5 @@ Effect {
     // Transform slider values, and bind result to shader uniforms
     property real granularity: parameters.get(0).value * 20
 
-    fragmentShaderFilename: "shaders/pixelate.fsh"
+    fragmentShaderFilename: "pixelate.fsh"
 }
index 0cf16a0..c70a0c1 100644 (file)
@@ -54,5 +54,5 @@ Effect {
 
     property real numColors: 8.0
 
-    fragmentShaderFilename: "shaders/posterize.fsh"
+    fragmentShaderFilename: "posterize.fsh"
 }
index 0b7c48c..0ec0d13 100644 (file)
@@ -60,5 +60,5 @@ Effect {
     property real time: 0
     NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
 
-    fragmentShaderFilename: "shaders/ripple.fsh"
+    fragmentShaderFilename: "ripple.fsh"
 }
index 446e779..2b42e68 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/sepia.fsh"
+    fragmentShaderFilename: "sepia.fsh"
 }
index 99ece3c..2c69378 100644 (file)
@@ -52,5 +52,5 @@ Effect {
     // Transform slider values, and bind result to shader uniforms
     property real amount: parameters.get(0).value * 18
 
-    fragmentShaderFilename: "shaders/sharpen.fsh"
+    fragmentShaderFilename: "sharpen.fsh"
 }
index fe91781..7716bf6 100644 (file)
@@ -76,5 +76,5 @@ Effect {
         }
     }
 
-    fragmentShaderFilename: "shaders/shockwave.fsh"
+    fragmentShaderFilename: "shockwave.fsh"
 }
index 189d5d3..78b9085 100644 (file)
@@ -55,5 +55,5 @@ Effect {
     property real resS: targetSize
     property real resT: targetSize
 
-    fragmentShaderFilename: "shaders/sobeledgedetection1.fsh"
+    fragmentShaderFilename: "sobeledgedetection1.fsh"
 }
index 4bcc6ef..94d87b4 100644 (file)
@@ -52,5 +52,5 @@ Effect {
     // Transform slider values, and bind result to shader uniforms
     property real weight: parameters.get(0).value
 
-    fragmentShaderFilename: "shaders/sobeledgedetection2.fsh"
+    fragmentShaderFilename: "sobeledgedetection2.fsh"
 }
index b1f214b..b8097a6 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/tiltshift.fsh"
+    fragmentShaderFilename: "tiltshift.fsh"
 }
index 08f1849..31d8869 100644 (file)
@@ -59,5 +59,5 @@ Effect {
     property real magTol: 0.3
     property real quantize: 8.0
 
-    fragmentShaderFilename: "shaders/toon.fsh"
+    fragmentShaderFilename: "toon.fsh"
 }
index 1120161..be868e2 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/vignette.fsh"
+    fragmentShaderFilename: "vignette.fsh"
 }
index e96d052..0592507 100644 (file)
@@ -42,5 +42,5 @@
 import QtQuick 2.0
 
 Effect {
-    fragmentShaderFilename: "shaders/warhol.fsh"
+    fragmentShaderFilename: "warhol.fsh"
 }
index 4cccf48..191eb93 100644 (file)
@@ -57,5 +57,5 @@ Effect {
 
     NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
 
-    fragmentShaderFilename: "shaders/wobble.fsh"
+    fragmentShaderFilename: "wobble.fsh"
 }
index 629c0bd..d62ade8 100644 (file)
@@ -3,16 +3,12 @@ TARGET = qmlvideofx
 
 QT += quick
 
-LOCAL_SOURCES = filereader.cpp main.cpp
-LOCAL_HEADERS = filereader.h trace.h
-
-SOURCES += $$LOCAL_SOURCES
-HEADERS += $$LOCAL_HEADERS
+SOURCES += filereader.cpp main.cpp
+HEADERS += filereader.h trace.h
 
 RESOURCES += qmlvideofx.qrc
 
-SNIPPETS_PATH = ../snippets
-include($$SNIPPETS_PATH/performancemonitor/performancemonitordeclarative.pri)
+include($$PWD/../snippets/performancemonitor/performancemonitordeclarative.pri)
 
 maemo6: {
     DEFINES += SMALL_SCREEN_LAYOUT
index 0b39099..93cb4f1 100644 (file)
         <file>qml/qmlvideofx/main-smallscreen.qml</file>
         <file>qml/qmlvideofx/ParameterPanel.qml</file>
         <file>qml/qmlvideofx/Slider.qml</file>
+        <file>shaders/billboard.fsh</file>
+        <file>shaders/blackandwhite.fsh</file>
+        <file>shaders/emboss.fsh</file>
+        <file>shaders/gaussianblur_h.fsh</file>
+        <file>shaders/gaussianblur_v.fsh</file>
+        <file>shaders/glow.fsh</file>
+        <file>shaders/isolate.fsh</file>
+        <file>shaders/magnify.fsh</file>
+        <file>shaders/pagecurl.fsh</file>
+        <file>shaders/pixelate.fsh</file>
+        <file>shaders/posterize.fsh</file>
+        <file>shaders/ripple.fsh</file>
+        <file>shaders/selectionpanel.fsh</file>
+        <file>shaders/sepia.fsh</file>
+        <file>shaders/sharpen.fsh</file>
+        <file>shaders/shockwave.fsh</file>
+        <file>shaders/sobeledgedetection1.fsh</file>
+        <file>shaders/sobeledgedetection2.fsh</file>
+        <file>shaders/tiltshift.fsh</file>
+        <file>shaders/toon.fsh</file>
+        <file>shaders/vignette.fsh</file>
+        <file>shaders/warhol.fsh</file>
+        <file>shaders/wobble.fsh</file>
     </qresource>
 </RCC>
index 73095f5..c5332d5 100644 (file)
@@ -42,7 +42,7 @@
 #ifndef TRACE_H
 #define TRACE_H
 
-#include <QtCore/QDebug>
+#include <QDebug>
 
 #define ENABLE_TRACE
 //#define VERBOSE_TRACE
@@ -53,7 +53,7 @@ class NullDebug
 {
 public:
     template <typename T>
-    NullDebug& operator<<(const T&) { return *this; }
+    NullDebug &operator<<(const T &) { return *this; }
 };
 
 inline NullDebug nullDebug() { return NullDebug(); }
@@ -68,18 +68,12 @@ struct PtrWrapper
 } // namespace Trace
 
 template <typename T>
-inline QDebugoperator<<(QDebug &debug, const Trace::PtrWrapper<T> &wrapper)
+inline QDebug &operator<<(QDebug &debug, const Trace::PtrWrapper<T> &wrapper)
 {
     debug.nospace() << "[" << (void*)wrapper.m_ptr << "]";
     return debug.space();
 }
 
-template<typename T>
-inline const void *qtVoidPtr(const T *ptr)
-{ return static_cast<const void *>(ptr); }
-
-#define qtThisPtr() qtVoidPtr(this)
-
 #ifdef ENABLE_TRACE
         inline QDebug qtTrace() { return qDebug() << "[qmlvideofx]"; }
 #    ifdef VERBOSE_TRACE
index 1d44f12..568bbc7 100644 (file)
 ****************************************************************************/
 
 #include "frequencymonitor.h"
-#include <QtCore/QDebug>
-#include <QtCore/QElapsedTimer>
-#include <QtCore/QString>
-#include <QtCore/QTime>
-#include <QtCore/QTimer>
+#include <QDebug>
+#include <QElapsedTimer>
+#include <QString>
+#include <QTime>
+#include <QTimer>
 
 //#define VERBOSE_TRACE
 
@@ -61,6 +61,7 @@ static const int DefaultTraceInterval = 0;
 class FrequencyMonitorPrivate : public QObject
 {
     Q_OBJECT
+
 public:
     FrequencyMonitorPrivate(FrequencyMonitor *parent);
     void calculateInstantaneousFrequency();
@@ -116,16 +117,16 @@ void FrequencyMonitorPrivate::calculateInstantaneousFrequency()
     m_stalledTimer->start(3 * ms);
     if (m_instantaneousFrequency)
         q_ptr->setActive(true);
-    q_ptr->emit instantaneousFrequencyChanged(m_instantaneousFrequency);
-    q_ptr->emit frequencyChanged();
+    emit q_ptr->instantaneousFrequencyChanged(m_instantaneousFrequency);
+    emit q_ptr->frequencyChanged();
 }
 
 void FrequencyMonitorPrivate::calculateAverageFrequency()
 {
     const qint64 ms = m_averageElapsed.restart();
     m_averageFrequency = qreal(m_count * 1000) / ms;
-    q_ptr->emit averageFrequencyChanged(m_averageFrequency);
-    q_ptr->emit frequencyChanged();
+    emit q_ptr->averageFrequencyChanged(m_averageFrequency);
+    emit q_ptr->frequencyChanged();
     m_count = 0;
 }
 
@@ -134,14 +135,13 @@ void FrequencyMonitorPrivate::stalled()
     if (m_instantaneousFrequency) {
         qtVerboseTrace() << "FrequencyMonitor::stalled";
         m_instantaneousFrequency = 0;
-        q_ptr->emit instantaneousFrequencyChanged(m_instantaneousFrequency);
-        q_ptr->emit frequencyChanged();
+        emit q_ptr->instantaneousFrequencyChanged(m_instantaneousFrequency);
+        emit q_ptr->frequencyChanged();
     }
 }
 
 FrequencyMonitor::FrequencyMonitor(QObject *parent)
 :   QObject(parent)
-,   d_ptr(0)
 {
     d_ptr = new FrequencyMonitorPrivate(this);
     qtTrace() << "FrequencyMonitor::FrequencyMonitor";
@@ -152,7 +152,7 @@ FrequencyMonitor::~FrequencyMonitor()
 
 }
 
-const QString &FrequencyMonitor::label() const
+QString FrequencyMonitor::label() const
 {
     return d_func()->m_label;
 }
index 1efd8b3..f34646f 100644 (file)
@@ -42,8 +42,8 @@
 #ifndef FREQUENCYMONITOR_H
 #define FREQUENCYMONITOR_H
 
-#include <QtCore/QObject>
-#include <QtCore/QTimer>
+#include <QObject>
+#include <QTimer>
 
 class FrequencyMonitorPrivate;
 
@@ -64,13 +64,14 @@ class FrequencyMonitor : public QObject
     Q_PROPERTY(int traceInterval READ traceInterval WRITE setTraceInterval NOTIFY traceIntervalChanged)
     Q_PROPERTY(qreal instantaneousFrequency READ instantaneousFrequency NOTIFY instantaneousFrequencyChanged)
     Q_PROPERTY(qreal averageFrequency READ averageFrequency NOTIFY averageFrequencyChanged)
+
 public:
     FrequencyMonitor(QObject *parent = 0);
     ~FrequencyMonitor();
 
     static void qmlRegisterType();
 
-    const QString &label() const;
+    QString label() const;
     bool active() const;
     int samplingInterval() const;
     int traceInterval() const;
index 9a7e060..07c8348 100644 (file)
 
 namespace PerformanceMonitor {
 
-    bool parseArgument(const QString &arg, State &state)
-    {
-        bool result = false;
-        if ("-log-perf" == arg) {
-            state.logging = true;
-            state.valid = true;
-            result = true;
-        } else if ("-no-log-perf" == arg) {
-            state.logging = false;
-            state.valid = true;
-            result = true;
-        } else if ("-show-perf" == arg) {
-            state.visible = true;
-            state.valid = true;
-            result = true;
-        } else if ("-hide-perf" == arg) {
-            state.visible = false;
-            state.valid = true;
-            result = true;
-        }
-        return result;
+bool State::parseArgument(const QByteArray &arg)
+{
+    bool result = false;
+    if (arg == "-log-perf") {
+        logging = true;
+        valid = true;
+        result = true;
+    } else if (arg == "-no-log-perf") {
+        logging = false;
+        valid = true;
+        result = true;
+    } else if (arg == "-show-perf") {
+        visible = true;
+        valid = true;
+        result = true;
+    } else if (arg == "-hide-perf") {
+        visible = false;
+        valid = true;
+        result = true;
     }
-
+    return result;
 }
+
+} // namespace PerformanceMonitor
index d87d71e..f1a443e 100644 (file)
 #ifndef PERFORMANCEMONITOR_H
 #define PERFORMANCEMONITOR_H
 
-#include <QtCore/QString>
+#include <QByteArray>
 
 namespace PerformanceMonitor {
-    struct State {
-        bool valid;
-        bool logging;
-        bool visible;
 
-        State() : valid(true), logging(false), visible(true) { }
-        State(bool l, bool v) : valid(true), logging(l), visible(v) { }
-        bool operator==(const State &other) const
-        { return logging == other.logging && visible == other.visible; }
-        bool operator!=(const State &other) const
-        { return logging != other.logging || visible != other.visible; }
-    };
+struct State
+{
+    State() : valid(true), logging(false), visible(true) { }
+    State(bool l, bool v) : valid(true), logging(l), visible(v) { }
+    bool operator==(const State &other) const
+    { return logging == other.logging && visible == other.visible; }
+    bool operator!=(const State &other) const
+    { return logging != other.logging || visible != other.visible; }
 
-    bool parseArgument(const QString &arg, State &state);
-}
+    bool parseArgument(const QByteArray &arg);
+
+    bool valid;
+    bool logging;
+    bool visible;
+};
+
+} // namespace PerformanceMonitor
 
 #endif // PERFORMANCEMONITOR_H