blob: 4c2156ac68f8499f45b2f48219b783f9317a4c71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/* Homepage http://facetracknoir.sourceforge.net/home/default.htm *
* *
* ISC License (ISC) *
* *
* Copyright (c) 2015, Wim Vriend *
* *
* Permission to use, copy, modify, and/or distribute this software for any *
* purpose with or without fee is hereby granted, provided that the above *
* copyright notice and this permission notice appear in all copies. *
*/
#include "ftnoir_protocol_fg.h"
#include "api/plugin-api.hpp"
// For Todd and Arda Kutlu
void flightgear::pose(const double* headpose) {
FlightData.x = -headpose[TX] * 1e-2;
FlightData.y = headpose[TY] * 1e-2;
FlightData.z = headpose[TZ] * 1e-2;
FlightData.p = headpose[Pitch];
FlightData.h = -headpose[Yaw];
FlightData.r = -headpose[Roll];
FlightData.status = 1;
QHostAddress destIP(quint32(s.ip1 << 24 | s.ip2 << 16 | s.ip3 << 8 | s.ip4));
(void) outSocket.writeDatagram(reinterpret_cast<const char*>(&FlightData), sizeof(FlightData), destIP, quint16(s.port));
}
module_status flightgear::initialize()
{
if (outSocket.bind(QHostAddress::Any, 0, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint))
return status_ok();
else
return error(tr("Can't bind to [%1.%2.%3.%4]:%5")
.arg(s.ip1).arg(s.ip2).arg(s.ip3).arg(s.ip4)
.arg(s.port));
}
OPENTRACK_DECLARE_PROTOCOL(flightgear, FGControls, flightgearDll)
|