mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
Ref T376, integrated voice setup into server and adjusted FSD setup to support compare
This commit is contained in:
@@ -8,12 +8,13 @@
|
||||
*/
|
||||
|
||||
#include "blackmisc/network/fsdsetup.h"
|
||||
#include "blackmisc/logcategory.h"
|
||||
#include "blackmisc/logcategorylist.h"
|
||||
#include "blackmisc/propertyindex.h"
|
||||
#include "blackmisc/statusmessage.h"
|
||||
#include "blackmisc/stringutils.h"
|
||||
#include "blackmisc/variant.h"
|
||||
#include "blackmisc/verify.h"
|
||||
#include "blackmisc/comparefunctions.h"
|
||||
|
||||
#include <Qt>
|
||||
#include <QtGlobal>
|
||||
@@ -84,34 +85,41 @@ namespace BlackMisc
|
||||
CVariant CFsdSetup::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
|
||||
{
|
||||
if (index.isMyself()) { return CVariant::from(*this); }
|
||||
ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexTextCodec:
|
||||
return CVariant::fromValue(this->m_textCodec);
|
||||
case IndexSendReceiveDetails:
|
||||
return CVariant::fromValue(this->m_sendReceive);
|
||||
default:
|
||||
return CValueObject::propertyByIndex(index);
|
||||
case IndexTextCodec: return CVariant::fromValue(m_textCodec);
|
||||
case IndexSendReceiveDetails: return CVariant::fromValue(m_sendReceive);
|
||||
default: return CValueObject::propertyByIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
void CFsdSetup::setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant)
|
||||
{
|
||||
if (index.isMyself()) { (*this) = variant.to<CFsdSetup>(); return; }
|
||||
ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexTextCodec:
|
||||
this->setTextCodec(variant.value<QString>());
|
||||
break;
|
||||
case IndexSendReceiveDetails:
|
||||
this->setSendReceiveDetails(variant.value<SendReceiveDetails>());
|
||||
break;
|
||||
case IndexTextCodec: this->setTextCodec(variant.value<QString>()); break;
|
||||
case IndexSendReceiveDetails: this->setSendReceiveDetails(variant.value<SendReceiveDetails>()); break;
|
||||
default:
|
||||
CValueObject::setPropertyByIndex(index, variant);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int CFsdSetup::comparePropertyByIndex(const CPropertyIndex &index, const CFsdSetup &compareValue) const
|
||||
{
|
||||
if (index.isMyself()) { return this->convertToQString(true).compare(compareValue.convertToQString()); }
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexTextCodec: return this->getTextCodec().compare(compareValue.getTextCodec());
|
||||
case IndexSendReceiveDetails: return Compare::compare(m_sendReceive, compareValue.m_sendReceive);
|
||||
default: break;
|
||||
}
|
||||
BLACK_VERIFY_X(false, Q_FUNC_INFO, qUtf8Printable("No comparison for index " + index.toQString()));
|
||||
return 0;
|
||||
}
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
@@ -12,12 +12,11 @@
|
||||
#ifndef BLACKMISC_NETWORK_FSDSETUP_H
|
||||
#define BLACKMISC_NETWORK_FSDSETUP_H
|
||||
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
#include "blackmisc/metaclass.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
#include "blackmisc/propertyindex.h"
|
||||
#include "blackmisc/valueobject.h"
|
||||
#include "blackmisc/variant.h"
|
||||
#include "blackmisc/metaclass.h"
|
||||
#include "blackmisc/propertyindex.h"
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QString>
|
||||
@@ -106,6 +105,9 @@ namespace BlackMisc
|
||||
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
|
||||
void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant);
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
|
||||
int comparePropertyByIndex(const CPropertyIndex &index, const CFsdSetup &compareValue) const;
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::String::toQString()
|
||||
QString convertToQString(bool i18n = false) const;
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#include <Qt>
|
||||
#include <QtGlobal>
|
||||
|
||||
using namespace BlackMisc::Audio;
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
namespace Network
|
||||
@@ -30,12 +32,12 @@ namespace BlackMisc
|
||||
return all;
|
||||
}
|
||||
|
||||
CServer::CServer(
|
||||
const QString &name, const QString &description, const QString &address, int port, const CUser &user,
|
||||
const CFsdSetup &setup, const CEcosystem &ecosytem, ServerType serverType, bool isAcceptingConnections)
|
||||
CServer::CServer(const QString &name, const QString &description, const QString &address, int port, const CUser &user,
|
||||
const CFsdSetup &fsdSetup, const CVoiceSetup &voiceSetup, const CEcosystem &ecosytem, ServerType serverType, bool isAcceptingConnections)
|
||||
: m_name(decode(name)), m_description(decode(description)), m_address(decode(address)), m_port(port), m_user(user),
|
||||
m_fsdSetup(setup), m_ecosystem(ecosytem),
|
||||
m_serverType(serverType), m_isAcceptingConnections(isAcceptingConnections)
|
||||
m_ecosystem(ecosytem),
|
||||
m_serverType(serverType), m_isAcceptingConnections(isAcceptingConnections),
|
||||
m_fsdSetup(fsdSetup), m_voiceSetup(voiceSetup)
|
||||
{}
|
||||
|
||||
CServer::CServer(
|
||||
@@ -65,21 +67,21 @@ namespace BlackMisc
|
||||
const CServer &CServer::swiftFsdTestServer(bool withPw)
|
||||
{
|
||||
// CUser("guest", "Guest Client project", "", "guest")
|
||||
// use CObfuscation::endocde to get the strings
|
||||
// PW!!!!! => use CObfuscation::endocde to get the strings
|
||||
static const CServer dvp("Testserver", "Client project testserver", "fsd.swift-project.org", 6809,
|
||||
CUser("OBF:AwJ6BweZqpmtmORL", "OBF:AwI/594lQTJGZnmSwB0=", "", "OBF:AwKi3JkHNAczBno="),
|
||||
CFsdSetup(), CEcosystem(CEcosystem::swiftTest()), CServer::FSDServerVatsim);
|
||||
static const CServer dvnp("Testserver", "Client project testserver", "fsd.swift-project.org", 6809,
|
||||
CUser("OBF:AwJ6BweZqpmtmORL", "OBF:AwI/594lQTJGZnmSwB0=", "", ""),
|
||||
CFsdSetup(), CEcosystem(CEcosystem::swiftTest()), CServer::FSDServerVatsim);
|
||||
return withPw ? dvp : dvnp;
|
||||
CFsdSetup(), CVoiceSetup(), CEcosystem(CEcosystem::swiftTest()), CServer::FSDServerVatsim);
|
||||
static const CServer dvnWithPw("Testserver", "Client project testserver", "fsd.swift-project.org", 6809,
|
||||
CUser("OBF:AwJ6BweZqpmtmORL", "OBF:AwI/594lQTJGZnmSwB0=", "", ""),
|
||||
CFsdSetup(), CVoiceSetup(), CEcosystem(CEcosystem::swiftTest()), CServer::FSDServerVatsim);
|
||||
return withPw ? dvp : dvnWithPw;
|
||||
}
|
||||
|
||||
const CServer &CServer::fscServer()
|
||||
{
|
||||
static const CServer fsc("FSC", "FSC e.V.", "OBF:AwJIKfgkQDJEIRnno29DJlB+UK0=", 6809,
|
||||
CUser(),
|
||||
CFsdSetup(), CEcosystem(CEcosystem::privateFsd()), CServer::FSDServer);
|
||||
CFsdSetup(), CVoiceSetup(), CEcosystem(CEcosystem::privateFsd()), CServer::FSDServer);
|
||||
return fsc;
|
||||
}
|
||||
|
||||
@@ -166,6 +168,7 @@ namespace BlackMisc
|
||||
if (this->getPort() < 1 || this->getPort() > 65535) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, "Wrong port")); }
|
||||
msgs.push_back(this->getUser().validate());
|
||||
msgs.push_back(this->getFsdSetup().validate());
|
||||
msgs.push_back(this->getVoiceSetup().validate());
|
||||
msgs.addCategories(cats);
|
||||
msgs.sortBySeverity();
|
||||
return msgs;
|
||||
@@ -192,6 +195,7 @@ namespace BlackMisc
|
||||
case IndexPort: return CVariant::fromValue(m_port);
|
||||
case IndexUser: return m_user.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexFsdSetup: return m_fsdSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexVoiceSetup: return m_voiceSetup.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexEcosystem: return m_ecosystem.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexIsAcceptingConnections: return CVariant::fromValue(m_isAcceptingConnections);
|
||||
case IndexServerType: return CVariant::fromValue(m_serverType);
|
||||
@@ -214,6 +218,7 @@ namespace BlackMisc
|
||||
case IndexName: this->setName(variant.value<QString>()); break;
|
||||
case IndexUser: m_user.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexFsdSetup: m_fsdSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexVoiceSetup: m_voiceSetup.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexEcosystem: m_ecosystem.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
|
||||
case IndexIsAcceptingConnections: this->setIsAcceptingConnections(variant.value<bool>()); break;
|
||||
case IndexServerType: this->setServerType(static_cast<ServerType>(variant.toInt())); break;
|
||||
@@ -230,7 +235,8 @@ namespace BlackMisc
|
||||
{
|
||||
case IndexAddress: return this->getAddress().compare(compareValue.getAddress(), Qt::CaseInsensitive);
|
||||
case IndexDescription: return this->getDescription().compare(compareValue.getDescription(), Qt::CaseInsensitive);
|
||||
case IndexFsdSetup: return this->getFsdSetup().toQString().compare(compareValue.getFsdSetup().toQString());
|
||||
case IndexFsdSetup: return m_fsdSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getFsdSetup());
|
||||
case IndexVoiceSetup: return m_voiceSetup.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getVoiceSetup());
|
||||
case IndexName: return this->getName().compare(compareValue.getName(), Qt::CaseInsensitive);
|
||||
case IndexIsAcceptingConnections: return Compare::compare(this->isAcceptingConnections(), compareValue.isAcceptingConnections());
|
||||
case IndexPort: return Compare::compare(this->getPort(), compareValue.getPort());
|
||||
|
||||
@@ -12,9 +12,10 @@
|
||||
#ifndef BLACKMISC_NETWORK_SERVER_H
|
||||
#define BLACKMISC_NETWORK_SERVER_H
|
||||
|
||||
#include "blackmisc/network/user.h"
|
||||
#include "blackmisc/network/fsdsetup.h"
|
||||
#include "blackmisc/network/ecosystem.h"
|
||||
#include "user.h"
|
||||
#include "fsdsetup.h"
|
||||
#include "ecosystem.h"
|
||||
#include "blackmisc/audio/voicesetup.h"
|
||||
#include "blackmisc/obfuscation.h"
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
#include "blackmisc/metaclass.h"
|
||||
@@ -47,6 +48,7 @@ namespace BlackMisc
|
||||
IndexPort,
|
||||
IndexUser,
|
||||
IndexFsdSetup,
|
||||
IndexVoiceSetup,
|
||||
IndexEcosystem,
|
||||
IndexIsAcceptingConnections,
|
||||
IndexServerType,
|
||||
@@ -76,7 +78,8 @@ namespace BlackMisc
|
||||
//! Constructor.
|
||||
CServer(const QString &name, const QString &description, const QString &address, int port,
|
||||
const CUser &user,
|
||||
const CFsdSetup &setup, const CEcosystem &ecosytem, ServerType serverType,
|
||||
const CFsdSetup &fsdSetup, const Audio::CVoiceSetup &voiceSetup,
|
||||
const CEcosystem &ecosytem, ServerType serverType,
|
||||
bool isAcceptingConnections = true);
|
||||
|
||||
//! Constructor (minimal for testing)
|
||||
@@ -148,21 +151,27 @@ namespace BlackMisc
|
||||
//! Address and port?
|
||||
bool hasAddressAndPort() const;
|
||||
|
||||
//! Get setup
|
||||
//! Get FSD setup
|
||||
const CFsdSetup &getFsdSetup() const { return m_fsdSetup; }
|
||||
|
||||
//! Set FSD setup
|
||||
void setFsdSetup(const CFsdSetup &setup) { m_fsdSetup = setup; }
|
||||
|
||||
//! A FSD server?
|
||||
bool isFsdServer() const;
|
||||
|
||||
//! Set setup
|
||||
void setFsdSetup(const CFsdSetup &setup) { m_fsdSetup = setup; }
|
||||
|
||||
//! Set server type
|
||||
bool setServerType(ServerType serverType);
|
||||
|
||||
//! Get server type
|
||||
ServerType getServerType() const { return static_cast<ServerType>(m_serverType); }
|
||||
|
||||
//! Get voice setup
|
||||
const Audio::CVoiceSetup &getVoiceSetup() const { return m_voiceSetup; }
|
||||
|
||||
//! Set voice setup
|
||||
void setVoiceSetup(const Audio::CVoiceSetup &setup) { m_voiceSetup = setup; }
|
||||
|
||||
//! Unspecified?
|
||||
bool hasUnspecifiedServerType() const;
|
||||
|
||||
@@ -209,15 +218,16 @@ namespace BlackMisc
|
||||
static const CServer &fscServer();
|
||||
|
||||
private:
|
||||
QString m_name;
|
||||
QString m_description;
|
||||
QString m_address;
|
||||
int m_port = -1;
|
||||
CUser m_user;
|
||||
CFsdSetup m_fsdSetup;
|
||||
CEcosystem m_ecosystem;
|
||||
int m_serverType = static_cast<int>(Unspecified);
|
||||
bool m_isAcceptingConnections = true; //!< disable server for connections
|
||||
QString m_name;
|
||||
QString m_description;
|
||||
QString m_address;
|
||||
int m_port = -1;
|
||||
CUser m_user;
|
||||
CEcosystem m_ecosystem;
|
||||
int m_serverType = static_cast<int>(Unspecified);
|
||||
bool m_isAcceptingConnections = true; //!< disable server for connections
|
||||
CFsdSetup m_fsdSetup;
|
||||
Audio::CVoiceSetup m_voiceSetup;
|
||||
|
||||
BLACK_METACLASS(
|
||||
CServer,
|
||||
@@ -227,6 +237,7 @@ namespace BlackMisc
|
||||
BLACK_METAMEMBER(port),
|
||||
BLACK_METAMEMBER(user),
|
||||
BLACK_METAMEMBER(fsdSetup),
|
||||
BLACK_METAMEMBER(voiceSetup),
|
||||
BLACK_METAMEMBER(ecosystem),
|
||||
BLACK_METAMEMBER(serverType),
|
||||
BLACK_METAMEMBER(isAcceptingConnections),
|
||||
|
||||
Reference in New Issue
Block a user