Declare more metatypes and debug operators.

Nearly all of the multimedia metatypes used in the auto tests are
now declared properly, and a large number of the types have debug
operators as well.

Removed the superfluous decls as well.

Change-Id: I42cfe37562db0c71d9811b4577fc326a3326ccc9
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
Michael Goddard
2011-11-01 12:46:48 +10:00
committed by Qt by Nokia
parent 6a3a442ea6
commit 7dfb883df6
30 changed files with 720 additions and 168 deletions

View File

@@ -41,7 +41,7 @@
#include <qaudio.h>
#include <QDebug>
QT_BEGIN_NAMESPACE
@@ -98,6 +98,48 @@ public:
\value AudioInput audio input device
*/
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, QAudio::Error error)
{
switch (error) {
case QAudio::NoError:
return dbg.nospace() << "NoError";
case QAudio::OpenError:
return dbg.nospace() << "OpenError";
case QAudio::IOError:
return dbg.nospace() << "IOError";
case QAudio::UnderrunError:
return dbg.nospace() << "UnderrunError";
case QAudio::FatalError:
return dbg.nospace() << "FatalError";
}
}
QDebug operator<<(QDebug dbg, QAudio::State state)
{
switch (state) {
case QAudio::ActiveState:
return dbg.nospace() << "ActiveState";
case QAudio::SuspendedState:
return dbg.nospace() << "SuspendedState";
case QAudio::StoppedState:
return dbg.nospace() << "StoppedState";
case QAudio::IdleState:
return dbg.nospace() << "IdleState";
}
}
QDebug operator<<(QDebug dbg, QAudio::Mode mode)
{
switch (mode) {
case QAudio::AudioInput:
return dbg.nospace() << "AudioInput";
case QAudio::AudioOutput:
return dbg.nospace() << "AudioOutput";
}
}
#endif
QT_END_NAMESPACE

View File

@@ -63,12 +63,18 @@ namespace QAudio
enum Mode { AudioInput, AudioOutput };
}
QT_END_NAMESPACE
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::Error error);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::State state);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::Mode mode);
#endif
QT_END_HEADER
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QAudio::Error)
Q_DECLARE_METATYPE(QAudio::State)
Q_DECLARE_METATYPE(QAudio::Mode)
QT_END_HEADER
#endif // QAUDIO_H

View File

@@ -44,21 +44,6 @@
QT_BEGIN_NAMESPACE
// Debugging
QDebug operator<<(QDebug dbg, const QAudioFormat& audioFormat)
{
dbg.nospace() << "QAudioFormat(" <<
audioFormat.frequency() << "," <<
audioFormat.channels() << "," <<
audioFormat.sampleSize()<< "," <<
audioFormat.codec() << "," <<
audioFormat.byteOrder() << "," <<
audioFormat.sampleType() << ")";
return dbg.space();
}
// Conversion
QAudioFormat toQAudioFormat(AudioStreamBasicDescription const& sf)
{

View File

@@ -67,10 +67,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
extern QDebug operator<<(QDebug dbg, const QAudioFormat& audioFormat);
extern QAudioFormat toQAudioFormat(const AudioStreamBasicDescription& streamFormat);
extern AudioStreamBasicDescription toAudioStreamBasicDescription(QAudioFormat const& audioFormat);

View File

@@ -109,8 +109,8 @@ private:
QT_END_NAMESPACE
QT_END_HEADER
Q_DECLARE_METATYPE(QAudioDeviceInfo)
QT_END_HEADER
#endif // QAUDIODEVICEINFO_H

View File

@@ -403,5 +403,46 @@ QAudioFormat::SampleType QAudioFormat::sampleType() const
\value LittleEndian Samples are little endian byte order
*/
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, QAudioFormat::Endian endian)
{
switch (endian) {
case QAudioFormat::BigEndian:
return dbg.nospace() << "BigEndian";
case QAudioFormat::LittleEndian:
return dbg.nospace() << "LittleEndian";
}
}
QDebug operator<<(QDebug dbg, QAudioFormat::SampleType type)
{
switch (type) {
case QAudioFormat::SignedInt:
return dbg.nospace() << "SignedInt";
case QAudioFormat::UnSignedInt:
return dbg.nospace() << "UnSignedInt";
case QAudioFormat::Float:
return dbg.nospace() << "Float";
default:
return dbg.nospace() << "Unknown";
}
}
QDebug operator<<(QDebug dbg, const QAudioFormat &f)
{
dbg.nospace() << "QAudioFormat(" << f.sampleRate();
dbg.nospace() << "Hz, " << f.sampleSize();
dbg.nospace() << "bit, channelCount=" << f.channelCount();
dbg.nospace() << ", sampleType=" << f.sampleType();
dbg.nospace() << ", byteOrder=" << f.byteOrder();
dbg.nospace() << ", codec=" << f.codec();
dbg.nospace() << ")";
return dbg.space();
}
#endif
QT_END_NAMESPACE

View File

@@ -55,8 +55,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
class QAudioFormatPrivate;
class Q_MULTIMEDIA_EXPORT QAudioFormat
@@ -101,9 +99,18 @@ private:
QSharedDataPointer<QAudioFormatPrivate> d;
};
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QAudioFormat &);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAudioFormat::SampleType);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAudioFormat::Endian);
#endif
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QAudioFormat)
Q_DECLARE_METATYPE(QAudioFormat::SampleType)
Q_DECLARE_METATYPE(QAudioFormat::Endian)
QT_END_HEADER
#endif // QAUDIOFORMAT_H

View File

@@ -219,6 +219,20 @@ QDebug operator<<(QDebug dbg, QAbstractVideoBuffer::HandleType type)
return dbg.nospace() << QString(QLatin1String("UserHandle(%1)")).arg(int(type)).toAscii().constData();
}
}
QDebug operator<<(QDebug dbg, QAbstractVideoBuffer::MapMode mode)
{
switch (mode) {
case QAbstractVideoBuffer::ReadOnly:
return dbg.nospace() << "ReadOnly";
case QAbstractVideoBuffer::ReadWrite:
return dbg.nospace() << "ReadWrite";
case QAbstractVideoBuffer::WriteOnly:
return dbg.nospace() << "WriteOnly";
default:
return dbg.nospace() << "NotMapped";
}
}
#endif
QT_END_NAMESPACE

View File

@@ -104,6 +104,7 @@ private:
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAbstractVideoBuffer::HandleType);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAbstractVideoBuffer::MapMode);
#endif
QT_END_NAMESPACE

View File

@@ -46,12 +46,10 @@
#include "qvideosurfaceformat.h"
#include <QtCore/qvariant.h>
#include <QDebug>
QT_BEGIN_NAMESPACE
Q_DECLARE_METATYPE(QVideoSurfaceFormat)
Q_DECLARE_METATYPE(QAbstractVideoSurface::Error)
class QAbstractVideoSurfacePrivate {
@@ -340,6 +338,25 @@ void QAbstractVideoSurface::setNativeResolution(const QSize &resolution)
\since 1.1
*/
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QAbstractVideoSurface::Error& error)
{
switch (error) {
case QAbstractVideoSurface::UnsupportedFormatError:
return dbg.nospace() << "UnsupportedFormatError";
case QAbstractVideoSurface::IncorrectFormatError:
return dbg.nospace() << "IncorrectFormatError";
case QAbstractVideoSurface::StoppedError:
return dbg.nospace() << "StoppedError";
case QAbstractVideoSurface::ResourceError:
return dbg.nospace() << "ResourceError";
default:
return dbg.nospace() << "NoError";
}
}
#endif
QT_END_NAMESPACE
#include "moc_qabstractvideosurface.cpp"

View File

@@ -51,7 +51,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
class QRectF;
class QVideoSurfaceFormat;
@@ -107,8 +106,14 @@ private:
QScopedPointer<QAbstractVideoSurfacePrivate> d_ptr;
};
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QAbstractVideoSurface::Error &);
#endif
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QAbstractVideoSurface::Error)
QT_END_HEADER
#endif

View File

@@ -640,7 +640,10 @@ QVariant QVideoFrame::handle() const
}
/*!
Returns the presentation time when the frame should be displayed.
Returns the presentation time (in microseconds) when the frame should be displayed.
An invalid time is represented as -1.
\since 1.0
*/
qint64 QVideoFrame::startTime() const
@@ -649,7 +652,10 @@ qint64 QVideoFrame::startTime() const
}
/*!
Sets the presentation \a time when the frame should be displayed.
Sets the presentation \a time (in microseconds) when the frame should initially be displayed.
An invalid time is represented as -1.
\since 1.0
*/
void QVideoFrame::setStartTime(qint64 time)
@@ -658,7 +664,9 @@ void QVideoFrame::setStartTime(qint64 time)
}
/*!
Returns the presentation time when a frame should stop being displayed.
Returns the presentation time (in microseconds) when a frame should stop being displayed.
An invalid time is represented as -1.
\since 1.0
*/
@@ -668,7 +676,10 @@ qint64 QVideoFrame::endTime() const
}
/*!
Sets the presentation \a time when a frame should stop being displayed.
Sets the presentation \a time (in microseconds) when a frame should stop being displayed.
An invalid time is represented as -1.
\since 1.0
*/
void QVideoFrame::setEndTime(qint64 time)
@@ -761,7 +772,6 @@ QImage::Format QVideoFrame::imageFormatFromPixelFormat(PixelFormat format)
}
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, QVideoFrame::PixelFormat pf)
{
switch (pf) {
@@ -837,6 +847,99 @@ QDebug operator<<(QDebug dbg, QVideoFrame::PixelFormat pf)
}
}
QDebug operator<<(QDebug dbg, QVideoFrame::FieldType f)
{
switch (f) {
case QVideoFrame::TopField:
return dbg.nospace() << "TopField";
case QVideoFrame::BottomField:
return dbg.nospace() << "BottomField";
case QVideoFrame::InterlacedFrame:
return dbg.nospace() << "InterlacedFrame";
default:
return dbg.nospace() << "ProgressiveFrame";
}
}
static QString qFormatTimeStamps(qint64 start, qint64 end)
{
// Early out for invalid.
if (start < 0)
return QLatin1String("[no timestamp]");
bool onlyOne = (start == end);
// [hh:]mm:ss.ms
const int s_millis = start % 1000000;
start /= 1000000;
const int s_seconds = start % 60;
start /= 60;
const int s_minutes = start % 60;
start /= 60;
if (onlyOne) {
if (start > 0)
return QString::fromLatin1("@%1:%2:%3.%4")
.arg(start, 1, 10, QLatin1Char('0'))
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'));
else
return QString::fromLatin1("@%1:%2.%3")
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'));
} else if (end == -1) {
// Similar to start-start, except it means keep displaying it?
if (start > 0)
return QString::fromLatin1("%1:%2:%3.%4 - forever")
.arg(start, 1, 10, QLatin1Char('0'))
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'));
else
return QString::fromLatin1("%1:%2.%3 - forever")
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'));
} else {
const int e_millis = end % 1000000;
end /= 1000000;
const int e_seconds = end % 60;
end /= 60;
const int e_minutes = end % 60;
end /= 60;
if (start > 0 || end > 0)
return QString::fromLatin1("%1:%2:%3.%4 - %5:%6:%7.%8")
.arg(start, 1, 10, QLatin1Char('0'))
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'))
.arg(end, 1, 10, QLatin1Char('0'))
.arg(e_minutes, 2, 10, QLatin1Char('0'))
.arg(e_seconds, 2, 10, QLatin1Char('0'))
.arg(e_millis, 2, 10, QLatin1Char('0'));
else
return QString::fromLatin1("%1:%2.%3 - %4:%5.%6")
.arg(s_minutes, 2, 10, QLatin1Char('0'))
.arg(s_seconds, 2, 10, QLatin1Char('0'))
.arg(s_millis, 2, 10, QLatin1Char('0'))
.arg(e_minutes, 2, 10, QLatin1Char('0'))
.arg(e_seconds, 2, 10, QLatin1Char('0'))
.arg(e_millis, 2, 10, QLatin1Char('0'));
}
}
QDebug operator<<(QDebug dbg, const QVideoFrame& f)
{
return dbg << "QVideoFrame(" << f.size() << ","
<< f.pixelFormat() << ", "
<< f.handleType() << ", "
<< f.mapMode() << ", "
<< qFormatTimeStamps(f.startTime(), f.endTime()).toLatin1().constData()
<< ")";
}
#endif
QT_END_NAMESPACE

View File

@@ -164,11 +164,14 @@ private:
};
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::PixelFormat );
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QVideoFrame&);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::FieldType);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::PixelFormat);
#endif
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QVideoFrame)
Q_DECLARE_METATYPE(QVideoFrame::FieldType)
Q_DECLARE_METATYPE(QVideoFrame::PixelFormat)

View File

@@ -591,7 +591,6 @@ void QVideoSurfaceFormat::setProperty(const char *name, const QVariant &value)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::YCbCrColorSpace cs)
{
switch (cs) {
@@ -612,6 +611,16 @@ QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::YCbCrColorSpace cs)
}
}
QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::Direction dir)
{
switch (dir) {
case QVideoSurfaceFormat::BottomToTop:
return dbg.nospace() << "BottomToTop";
case QVideoSurfaceFormat::TopToBottom:
return dbg.nospace() << "TopToBottom";
}
}
QDebug operator<<(QDebug dbg, const QVideoSurfaceFormat &f)
{
dbg.nospace() << "QVideoSurfaceFormat(" << f.pixelFormat();

View File

@@ -135,11 +135,13 @@ private:
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QVideoSurfaceFormat &);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoSurfaceFormat::Direction);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoSurfaceFormat::YCbCrColorSpace);
#endif
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QVideoSurfaceFormat)
Q_DECLARE_METATYPE(QVideoSurfaceFormat::Direction)
Q_DECLARE_METATYPE(QVideoSurfaceFormat::YCbCrColorSpace)