Move Math constants into class (to be consistent with other constants), tested against minGW / gcc 4.7.2 and fixed various issues (mainly initializer lists, unused variables). BlackMisc compiles now in MinGW, but still issues (especially with qDebug() friend methods)

This commit is contained in:
Klaus Basan
2013-04-29 16:00:41 +02:00
parent 7c7ca2dfae
commit c6426a0759
48 changed files with 1034 additions and 920 deletions

View File

@@ -18,139 +18,131 @@ typedef QVector<QString> QStringVector;
namespace FSD
{
class FSD_MSG : public BlackMisc::IMessage
class FSD_MSG : public BlackMisc::IMessage
{
public:
FSD_MSG(QString id) : IMessage(id)
{
public:
FSD_MSG(QString id) : IMessage(id)
{
}
}
void setSource(const QString &source) {m_source = source; }
void setDest(const QString &destination) {m_destination = destination; }
void setSource(const QString &source) {m_source = source; }
void setDest(const QString &destination) {m_destination = destination; }
protected:
qint32 unpack(const QString &line, QStringVector &tokens);
QString pack(const QStringVector &tokens) const;
protected:
qint32 unpack(const QString &line, QStringVector &tokens);
QString pack(const QStringVector &tokens) const;
QString m_destination;
QString m_source;
};
QString m_destination;
QString m_source;
};
class FSD_MSG_AddPilot : public FSD_MSG
class FSD_MSG_AddPilot : public FSD_MSG
{
public:
FSD_MSG_AddPilot() : FSD_MSG("#AP"), m_rating(1), m_revision(VATSIM_PROTOCOL_REV) {}
void setUserID(const QString &userID) { m_userID = userID; }
void setPassword(const QString &password) { m_password = password; }
void setSimulator(const quint16 &simulator) { m_simulator = simulator; }
void setRealName(const QString &name) { m_realName = name; }
virtual QDataStream &operator<< (QDataStream &in) { return in; }
virtual QDataStream &operator>> (QDataStream &out) const { return out; }
virtual QTextStream &operator<< (QTextStream &in)
{ return in; }
virtual QTextStream &operator>> (QTextStream &out) const
{
public:
FSD_MSG_AddPilot() : FSD_MSG("#AP"), m_revision(VATSIM_PROTOCOL_REV),
m_rating(1)
{
}
QStringVector tokens;
tokens << m_source << m_destination << m_userID << m_password;
tokens << QString("%1").arg(m_rating) << QString("%1").arg(m_revision);
tokens << QString("%1").arg(m_simulator) << m_realName;
out << pack(tokens);
return out;
}
void setUserID(const QString &userID) { m_userID = userID; }
void setPassword(const QString &password) { m_password = password; }
void setSimulator(const quint16 &simulator) { m_simulator = simulator; }
void setRealName(const QString &name) { m_realName = name; }
private:
virtual QDataStream& operator<< (QDataStream& in) { return in; }
virtual QDataStream& operator>> (QDataStream& out) const { return out; }
QString m_userID;
QString m_password;
quint16 m_rating;
quint16 m_revision;
quint16 m_simulator;
QString m_realName;
};
virtual QTextStream& operator<< ( QTextStream& in)
{ return in; }
virtual QTextStream& operator>> (QTextStream& out) const
{
QStringVector tokens;
tokens << m_source << m_destination << m_userID << m_password;
tokens << QString("%1").arg(m_rating) << QString("%1").arg(m_revision);
tokens << QString("%1").arg(m_simulator) << m_realName;
out << pack(tokens);
return out;
}
private:
QString m_userID;
QString m_password;
quint16 m_rating;
quint16 m_revision;
quint16 m_simulator;
QString m_realName;
};
class FSD_MSG_TextMessage : public FSD_MSG
class FSD_MSG_TextMessage : public FSD_MSG
{
public:
FSD_MSG_TextMessage() : FSD_MSG(QString("#TM")) {}
virtual QDataStream &operator<< (QDataStream &in) { return in; }
virtual QDataStream &operator>> (QDataStream &out) const { return out;}
virtual QTextStream &operator<< (QTextStream &in)
{
public:
FSD_MSG_TextMessage() : FSD_MSG(QString("#TM"))
{
}
QString message = in.readAll();
QStringVector tokens;
virtual QDataStream& operator<< (QDataStream& in) { return in; }
virtual QDataStream& operator>> (QDataStream& out) const { return out;}
//tokens.resize(3);
unpack(message, tokens);
m_source = tokens.at(0);
m_destination = tokens.at(1);
int size = tokens.size();
QString m_textmessage;
for (int ii = 2; ii < size; ++ii)
m_textmessage += tokens.at(ii);
bAppInfo << m_textmessage;
return in;
}
virtual QTextStream& operator<< ( QTextStream& in)
{
QString message = in.readAll();
QStringVector tokens;
//tokens.resize(3);
unpack(message, tokens);
m_source = tokens.at(0);
m_destination = tokens.at(1);
int size = tokens.size();
QString m_textmessage;
for ( int ii = 2; ii < tokens.size(); ++ii)
m_textmessage += tokens.at(ii);
bAppInfo << m_textmessage;
return in;
}
virtual QTextStream& operator>> (QTextStream& out) const
{
QStringVector tokens;
tokens << m_source << m_destination;
out << pack(tokens);
return out;
}
};
class FSD_MSG_Plane_Position : public FSD_MSG
virtual QTextStream &operator>> (QTextStream &out) const
{
public:
QStringVector tokens;
tokens << m_source << m_destination;
out << pack(tokens);
return out;
}
};
FSD_MSG_Plane_Position() : FSD_MSG(QString("@"))
{
m_message_tokens.resize(10);
}
class FSD_MSG_Plane_Position : public FSD_MSG
{
public:
inline QString SquawkMode() const { return m_message_tokens.at(0); }
inline QString Callsign() const { return m_message_tokens.at(1); }
inline QString Squawk() const { return m_message_tokens.at(2); }
inline quint16 Rating() const { return m_message_tokens.at(3).toUInt(); }
inline double Latitude() const { return m_message_tokens.at(4).toDouble(); }
inline double Longitude() const { return m_message_tokens.at(5).toDouble(); }
inline double Altitude() const { return m_message_tokens.at(6).toDouble(); }
inline qint32 Speed() const { return m_message_tokens.at(7).toInt(); }
inline quint32 PBH() const { return m_message_tokens.at(8).toUInt(); }
inline qint32 AltDiff() const { return m_message_tokens.at(9).toInt(); }
FSD_MSG_Plane_Position() : FSD_MSG(QString("@"))
{
m_message_tokens.resize(10);
}
inline void setSquawkMode( const QString &squawk_mode) { m_message_tokens.replace(0, squawk_mode); }
inline void setCallsign ( const QString &callsign) { m_message_tokens.replace(1, callsign); }
inline void setSquawk ( const QString &squawk) { m_message_tokens.replace(2, squawk); }
inline void setRating ( const quint16 rating) { m_message_tokens.replace(3, QString("%1").arg(rating)); }
inline void setLatitude ( const double latitude) { m_message_tokens.replace(4, QString("%1").arg(latitude)); }
inline void setLongitude ( const double longitude) { m_message_tokens.replace(5, QString("%1").arg(longitude)); }
inline void setAltitude ( const double altitude) { m_message_tokens.replace(6, QString("%1").arg(altitude)); }
inline void setSpeed ( const qint32 speed) { m_message_tokens.replace(7, QString("%1").arg(speed)); }
inline void setPBH ( const quint32 pbh) { m_message_tokens.replace(8, QString("%1").arg(pbh)); }
inline void setAltDiff ( const qint32 altdiff) { m_message_tokens.replace(9, QString("%1").arg(altdiff)); }
inline QString SquawkMode() const { return m_message_tokens.at(0); }
inline QString Callsign() const { return m_message_tokens.at(1); }
inline QString Squawk() const { return m_message_tokens.at(2); }
inline quint16 Rating() const { return m_message_tokens.at(3).toUInt(); }
inline double Latitude() const { return m_message_tokens.at(4).toDouble(); }
inline double Longitude() const { return m_message_tokens.at(5).toDouble(); }
inline double Altitude() const { return m_message_tokens.at(6).toDouble(); }
inline qint32 Speed() const { return m_message_tokens.at(7).toInt(); }
inline quint32 PBH() const { return m_message_tokens.at(8).toUInt(); }
inline qint32 AltDiff() const { return m_message_tokens.at(9).toInt(); }
virtual QTextStream& operator<< ( QTextStream& in);
virtual QTextStream& operator>> (QTextStream& out) const;
inline void setSquawkMode(const QString &squawk_mode) { m_message_tokens.replace(0, squawk_mode); }
inline void setCallsign(const QString &callsign) { m_message_tokens.replace(1, callsign); }
inline void setSquawk(const QString &squawk) { m_message_tokens.replace(2, squawk); }
inline void setRating(const quint16 rating) { m_message_tokens.replace(3, QString("%1").arg(rating)); }
inline void setLatitude(const double latitude) { m_message_tokens.replace(4, QString("%1").arg(latitude)); }
inline void setLongitude(const double longitude) { m_message_tokens.replace(5, QString("%1").arg(longitude)); }
inline void setAltitude(const double altitude) { m_message_tokens.replace(6, QString("%1").arg(altitude)); }
inline void setSpeed(const qint32 speed) { m_message_tokens.replace(7, QString("%1").arg(speed)); }
inline void setPBH(const quint32 pbh) { m_message_tokens.replace(8, QString("%1").arg(pbh)); }
inline void setAltDiff(const qint32 altdiff) { m_message_tokens.replace(9, QString("%1").arg(altdiff)); }
virtual QDataStream& operator<< (QDataStream& in) { return in; }
virtual QDataStream& operator>> (QDataStream& out) const { return out;}
virtual QTextStream &operator<< (QTextStream &in);
virtual QTextStream &operator>> (QTextStream &out) const;
private:
QStringVector m_message_tokens;
};
virtual QDataStream &operator<< (QDataStream &in) { return in; }
virtual QDataStream &operator>> (QDataStream &out) const { return out;}
private:
QStringVector m_message_tokens;
};
} // namespace FSD

View File

@@ -142,7 +142,7 @@ bool CInterpolator::stateNow(TPlaneState *state)
CAngle CInterpolator::normalizeRadians(const CAngle &angle) const
{
double radian = angle.value(CAngleUnit::rad());
radian = radian - BlackMisc::Math::TwoPI * floor(0.5 + radian / BlackMisc::Math::TwoPI);
radian = radian - BlackMisc::Math::CMath::PI2() * floor(0.5 + radian / BlackMisc::Math::CMath::PI2());
return CAngle(radian, CAngleUnit::rad());
}

View File

@@ -14,7 +14,7 @@ namespace BlackCore
/*
* Default constructor
*/
CPlane::CPlane() : m_interpolator(nullptr), m_driver(nullptr) { }
CPlane::CPlane() : m_interpolator(0), m_driver(0) { }
/*
* Constructor

View File

@@ -10,7 +10,16 @@
#include "blackmisc/coordinategeodetic.h"
#include "blackmisc/mathvector3d.h"
#include <QString>
#include <functional>
#if defined(_MSC_VER) && _MSC_VER >= 1600
# include <unordered_map>
# include <functional>
#else
# include <tr1/unordered_map>
# include <tr1/functional>
#endif
#define SHARED_LIBRARY_NAME_FS9 "bb_driver_fs9"
#define SHARED_LIBRARY_NAME_FSX "bb_driver_fsx"