tuiotouch: clean up

- order includes from most specific to most general
- include only what you need
- port uses of inefficient QLists to QVector
  (required adding default ctors to the payload types)
- mark types as Q_MOVABLE_TYPE
- inline some trivial functions
- add explicit to ctors
- mark plugin with QT_NO_FOREACH

Change-Id: I7ae13141ece22bfdf49be42deb0987d51da2d72b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
bb10
Marc Mutz 2016-08-16 10:01:05 +02:00
parent 7fb3448161
commit 7f801ed73a
8 changed files with 54 additions and 59 deletions

View File

@ -38,17 +38,20 @@
**
****************************************************************************/
#include "qoscbundle_p.h"
#include "qtuio_p.h"
#include <QtEndian>
#include <QDebug>
#include <QLoggingCategory>
#include "qoscbundle_p.h"
#include "qtuio_p.h"
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcTuioBundle, "qt.qpa.tuio.bundle")
QOscBundle::QOscBundle() {}
// TUIO packets are transmitted using the OSC protocol, located at:
// http://opensoundcontrol.org/specification
// Snippets of this specification have been pasted into the source as a means of
@ -172,21 +175,5 @@ QOscBundle::QOscBundle(const QByteArray &data)
}
}
bool QOscBundle::isValid() const
{
return m_isValid;
}
QList<QOscBundle> QOscBundle::bundles() const
{
return m_bundles;
}
QList<QOscMessage> QOscBundle::messages() const
{
return m_messages;
}
QT_END_NAMESPACE

View File

@ -43,25 +43,32 @@
#include "qoscmessage_p.h"
#include <QtCore/QVector>
QT_BEGIN_NAMESPACE
class QByteArray;
class QOscBundle
{
QOscBundle(); // for QVector, don't use
friend class QVector<QOscBundle>;
public:
QOscBundle(const QByteArray &data);
explicit QOscBundle(const QByteArray &data);
bool isValid() const;
QList<QOscBundle> bundles() const;
QList<QOscMessage> messages() const;
bool isValid() const { return m_isValid; }
QVector<QOscBundle> bundles() const { return m_bundles; }
QVector<QOscMessage> messages() const { return m_messages; }
private:
bool m_isValid;
bool m_immediate;
quint32 m_timeEpoch;
quint32 m_timePico;
QList<QOscBundle> m_bundles;
QList<QOscMessage> m_messages;
QVector<QOscBundle> m_bundles;
QVector<QOscMessage> m_messages;
};
Q_DECLARE_TYPEINFO(QOscBundle, Q_MOVABLE_TYPE);
QT_END_NAMESPACE

View File

@ -38,19 +38,19 @@
**
****************************************************************************/
#include <QByteArray>
#include <QDebug>
#include <QtEndian>
#include <QVariant>
#include <QLoggingCategory>
#include "qoscmessage_p.h"
#include "qtuio_p.h"
#include <QDebug>
#include <QtEndian>
#include <QLoggingCategory>
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcTuioMessage, "qt.qpa.tuio.message")
QOscMessage::QOscMessage() {}
// TUIO packets are transmitted using the OSC protocol, located at:
// http://opensoundcontrol.org/specification
// Snippets of this specification have been pasted into the source as a means of
@ -125,20 +125,5 @@ QOscMessage::QOscMessage(const QByteArray &data)
qCDebug(lcTuioMessage) << "Message with address pattern: " << addressPattern << " arguments: " << arguments;
}
bool QOscMessage::isValid() const
{
return m_isValid;
}
QByteArray QOscMessage::addressPattern() const
{
return m_addressPattern;
}
QList<QVariant> QOscMessage::arguments() const
{
return m_arguments;
}
QT_END_NAMESPACE

View File

@ -41,22 +41,32 @@
#ifndef QOSCMESSAGE_P_H
#define QOSCMESSAGE_P_H
#include <QtCore/QByteArray>
#include <QtCore/QVariant>
#include <QtCore/QVector>
#include <QtCore/QList>
QT_BEGIN_NAMESPACE
class QOscMessage
{
QOscMessage(); // for QVector, don't use
friend class QVector<QOscMessage>;
public:
QOscMessage(const QByteArray &data);
bool isValid() const;
explicit QOscMessage(const QByteArray &data);
QByteArray addressPattern() const;
QList<QVariant> arguments() const;
bool isValid() const { return m_isValid; }
QByteArray addressPattern() const { return m_addressPattern; }
QList<QVariant> arguments() const { return m_arguments; }
private:
bool m_isValid;
QByteArray m_addressPattern;
QList<QVariant> m_arguments;
};
Q_DECLARE_TYPEINFO(QOscMessage, Q_MOVABLE_TYPE);
QT_END_NAMESPACE

View File

@ -102,6 +102,7 @@ private:
float m_acceleration;
Qt::TouchPointState m_state;
};
Q_DECLARE_TYPEINFO(QTuioCursor, Q_MOVABLE_TYPE); // Q_PRIMITIVE_TYPE: not possible, m_state is = 1, not 0.
QT_END_NAMESPACE

View File

@ -38,19 +38,22 @@
**
****************************************************************************/
#include <QLoggingCategory>
#include <QRect>
#include <QWindow>
#include <QGuiApplication>
#include <QTouchDevice>
#include <qmath.h>
#include <qpa/qwindowsysteminterface.h>
#include "qtuiohandler_p.h"
#include "qtuiocursor_p.h"
#include "qtuiotoken_p.h"
#include "qtuiohandler_p.h"
#include "qoscbundle_p.h"
#include "qoscmessage_p.h"
#include <qpa/qwindowsysteminterface.h>
#include <QTouchDevice>
#include <QWindow>
#include <QGuiApplication>
#include <QLoggingCategory>
#include <QRect>
#include <qmath.h>
QT_BEGIN_NAMESPACE
@ -151,7 +154,7 @@ void QTuioHandler::processPackets()
// messages. The FSEQ frame ID is incremented for each delivered bundle,
// while redundant bundles can be marked using the frame sequence ID
// -1."
QList<QOscMessage> messages;
QVector<QOscMessage> messages;
QOscBundle bundle(datagram);
if (bundle.isValid()) {

View File

@ -138,6 +138,7 @@ private:
float m_angularAcceleration;
Qt::TouchPointState m_state;
};
Q_DECLARE_TYPEINFO(QTuioToken, Q_MOVABLE_TYPE); // Q_PRIMITIVE_TYPE: not possible: m_id, m_classId == -1
QT_END_NAMESPACE

View File

@ -21,6 +21,7 @@ HEADERS += \
OTHER_FILES += \
tuiotouch.json
DEFINES += QT_NO_FOREACH
PLUGIN_TYPE = generic
PLUGIN_EXTENDS = -
PLUGIN_CLASS_NAME = QTuioTouchPlugin