From d674f5fe1e87596dcb8bae588ae798b4473ce269 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 2 Apr 2013 19:43:51 +0200 Subject: Build works now --- facetracknoir/faceapp.cpp | 60 ------ facetracknoir/faceapp.h | 27 --- facetracknoir/fsuipcserver.cpp | 308 ------------------------------ facetracknoir/fsuipcserver.h | 121 ------------ facetracknoir/ftnoir_fsuipccontrols.ui | 228 ---------------------- facetracknoir/ftnoir_ftnservercontrols.ui | 261 ------------------------- 6 files changed, 1005 deletions(-) delete mode 100644 facetracknoir/faceapp.cpp delete mode 100644 facetracknoir/faceapp.h delete mode 100644 facetracknoir/fsuipcserver.cpp delete mode 100644 facetracknoir/fsuipcserver.h delete mode 100644 facetracknoir/ftnoir_fsuipccontrols.ui delete mode 100644 facetracknoir/ftnoir_ftnservercontrols.ui (limited to 'facetracknoir') diff --git a/facetracknoir/faceapp.cpp b/facetracknoir/faceapp.cpp deleted file mode 100644 index 2811974c..00000000 --- a/facetracknoir/faceapp.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "FaceApp.h" -#include "windows.h" -#include "..\FTNoIR_Protocol_FT\FTTypes.h" -#include "..\FTNoIR_Protocol_FTIR\FTIRTypes.h" -#include - -// -// Override the Application MessageFilter, to receive messages from the game(s) -// -bool FaceApp::winEventFilter( MSG * msg, long * result ) -{ - int msgType = msg->message; // test line - - if (msgType == msgID_FTClient) { - qDebug() << "FaceApp::winEventFilter says: game tickles me =" << msgType << "hwnd =" << msg->hwnd; - if (mainWindow != NULL) { - mainWindow->getGameProgramName(); - } - } - - ////if (msgType == WM_HOTKEY) { - //// switch ( msg->wParam ) { - //// case 777: - //// qDebug() << "FaceApp::winEventFilter says: HOME pressed"; - //// break; - //// case 778: - //// qDebug() << "FaceApp::winEventFilter says: END pressed"; - //// break; - //// default: - //// qDebug() << "FaceApp::winEventFilter says: unknown HotKey pressed"; - //// break; - //// } - ////} - return( false ); -} - -// -// Setup the EventFilter -// -void FaceApp::SetupEventFilter( FaceTrackNoIR *window ) { - - mainWindow = window; - msgID_FTClient = RegisterWindowMessageA ( FT_PROGRAMID ); - qDebug() << "FaceApp::SetupEventFilter says: Message ID =" << msgID_FTClient; - msgID_FTIR_Register = RegisterWindowMessageA ( FTIR_REGISTER_PROGRAMHANDLE ); - msgID_FTIR_UnRegister = RegisterWindowMessageA ( FTIR_UNREGISTER_PROGRAMHANDLE ); - - ////if ( RegisterHotKey( window->winId(), 777, MOD_WIN, VK_HOME ) ) { - //// qDebug() << "FaceApp::SetupEventFilter says: RegisterHotKey HOME =" << VK_HOME; - ////} - ////if ( RegisterHotKey( window->winId(), 778, MOD_WIN, VK_END ) ) { - //// qDebug() << "FaceApp::SetupEventFilter says: RegisterHotKey END =" << VK_END; - ////} - //// - ////QAbstractEventDispatcher *evtdis = QAbstractEventDispatcher::instance(); - ////if (evtdis != NULL) { - //// qDebug() << "FaceApp::SetupEventFilter says: EventDispatcher found!"; - ////} - -} \ No newline at end of file diff --git a/facetracknoir/faceapp.h b/facetracknoir/faceapp.h deleted file mode 100644 index 39fd4b2f..00000000 --- a/facetracknoir/faceapp.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef FACEAPP_H -#define FACEAPP_H - -#include -#include "FaceTrackNoIR.h" - -class FaceApp : public QApplication -{ - Q_OBJECT -public: - FaceApp( int &argc, char **argv ) : QApplication( argc, argv ) {} - ~FaceApp() {} - - void SetupEventFilter( FaceTrackNoIR *window ); - -protected: - bool winEventFilter( MSG * msg, long * result ); - -private: - FaceTrackNoIR *mainWindow; - int msgID_FTClient; - int msgID_FTIR_Register; - int msgID_FTIR_UnRegister; - int msgID_FilterSettingChanged; -}; - -#endif // FACEAPP_H diff --git a/facetracknoir/fsuipcserver.cpp b/facetracknoir/fsuipcserver.cpp deleted file mode 100644 index 3006b430..00000000 --- a/facetracknoir/fsuipcserver.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/******************************************************************************** -* FSUIPCServer FSUIPCServer is the Class, that communicates headpose-data * -* to games, using the FSUIPC.dll. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Testing and Research) * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -* * -********************************************************************************/ -/* - Modifications (last one on top): - 20101224 - WVR: Base class is no longer inheriting QThread. sendHeadposeToGame - is called from run() of Tracker.cpp -*/ -#include "FSUIPCServer.h" -#include - -/** constructor **/ -FSUIPCServer::FSUIPCServer() { - - loadSettings(); - ProgramName = "Microsoft FS2004"; - - prevPosX = 0.0f; - prevPosY = 0.0f; - prevPosZ = 0.0f; - prevRotX = 0.0f; - prevRotY = 0.0f; - prevRotZ = 0.0f; - -} - -/** destructor **/ -FSUIPCServer::~FSUIPCServer() { - - // - // Free the DLL - // - FSUIPCLib.unload(); -} - -// -// Update Headpose in Game. -// -void FSUIPCServer::sendHeadposeToGame() { -DWORD result; -TFSState pitch; -TFSState yaw; -TFSState roll; -WORD FSZoom; - - qDebug() << "FSUIPCServer::run() says: started!"; - - // - // Init. the FSUIPC offsets (derived from Free-track...) - // - pitch.Control = 66503; - yaw.Control = 66504; - roll.Control = 66505; - - // - // Only do this when the data has changed. This way, the HAT-switch can be used when tracking is OFF. - // - if ((prevPosX != virtPosX) || (prevPosY != virtPosY) || (prevPosZ != virtPosZ) || - (prevRotX != virtRotX) || (prevRotY != virtRotY) || (prevRotZ != virtRotZ)) { - // - // Open the connection - // - FSUIPC_Open(SIM_ANY, &result); - - // - // Check the FS-version - // - if (((result == FSUIPC_ERR_OK) || (result == FSUIPC_ERR_OPEN)) && - ((FSUIPC_FS_Version == SIM_FS2K2) || (FSUIPC_FS_Version == SIM_FS2K4))) { -// qDebug() << "FSUIPCServer::run() says: FSUIPC opened succesfully"; - // - // Write the 4! DOF-data to FS. Only rotations and zoom are possible. - // - pitch.Value = scale2AnalogLimits(virtRotX, -180, 180); - FSUIPC_Write(0x3110, 8, &pitch, &result); - - yaw.Value = scale2AnalogLimits(virtRotY, -180, 180); - FSUIPC_Write(0x3110, 8, &yaw, &result); - - roll.Value = scale2AnalogLimits(virtRotZ, -180, 180); - FSUIPC_Write(0x3110, 8, &roll, &result); - - FSZoom = (WORD) (64/50) * virtPosZ + 64; - FSUIPC_Write(0x832E, 2, &FSZoom, &result); - - // - // Write the data, in one go! - // - FSUIPC_Process(&result); - if (result == FSUIPC_ERR_SENDMSG) { - FSUIPC_Close(); //timeout (1 second) so assume FS closed - } - } - } - - prevPosX = virtPosX; - prevPosY = virtPosY; - prevPosZ = virtPosZ; - prevRotX = virtRotX; - prevRotY = virtRotY; - prevRotZ = virtRotZ; - -} - -// -// Check if the Client DLL exists and load it (to test it), if so. -// Returns 'true' if all seems OK. -// -bool FSUIPCServer::checkServerInstallationOK() -{ - qDebug() << "FSUIPCCheckClientDLL says: Starting Function"; - - // - // Load the DLL. - // - FSUIPCLib.setFileName( LocationOfDLL ); - if (FSUIPCLib.load() != true) { - qDebug() << "FSUIPCCheckClientDLL says: Error loading FSUIPC DLL"; - return false; - } - - return true; -} - -// -// Scale the measured value to the Joystick values -// -int FSUIPCServer::scale2AnalogLimits( float x, float min_x, float max_x ) { -double y; -double local_x; - - local_x = x; - if (local_x > max_x) { - local_x = max_x; - } - if (local_x < min_x) { - local_x = min_x; - } - y = ( 16383 * local_x ) / max_x; - - return (int) y; -} - -// -// Load the current Settings from the currently 'active' INI-file. -// -void FSUIPCServer::loadSettings() { - - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER) - - QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) - - iniFile.beginGroup ( "FSUIPC" ); - LocationOfDLL = iniFile.value ( "LocationOfDLL", FSUIPC_FILENAME ).toString(); - iniFile.endGroup (); -} - -// -// Constructor for server-settings-dialog -// -FSUIPCControls::FSUIPCControls( QWidget *parent, Qt::WindowFlags f ) : -QWidget( parent , f) -{ - ui.setupUi( this ); - - QPoint offsetpos(100, 100); - this->move(parent->pos() + offsetpos); - - // Connect Qt signals to member-functions - connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK())); - connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel())); - connect(ui.btnFindDLL, SIGNAL(clicked()), this, SLOT(getLocationOfDLL())); - - // Load the settings from the current .INI-file - loadSettings(); -} - -// -// Destructor for server-dialog -// -FSUIPCControls::~FSUIPCControls() { - qDebug() << "~FSUIPCControls() says: started"; -} - -// -// OK clicked on server-dialog -// -void FSUIPCControls::doOK() { - save(); - this->close(); -} - -// override show event -void FSUIPCControls::showEvent ( QShowEvent * event ) { - loadSettings(); -} - -// -// Cancel clicked on server-dialog -// -void FSUIPCControls::doCancel() { - // - // Ask if changed Settings should be saved - // - if (settingsDirty) { - int ret = QMessageBox::question ( this, "Settings have changed", "Do you want to save the settings?", QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Discard ); - - qDebug() << "doCancel says: answer =" << ret; - - switch (ret) { - case QMessageBox::Save: - save(); - this->close(); - break; - case QMessageBox::Discard: - this->close(); - break; - case QMessageBox::Cancel: - // Cancel was clicked - break; - default: - // should never be reached - break; - } - } - else { - this->close(); - } -} - -// -// Load the current Settings from the currently 'active' INI-file. -// -void FSUIPCControls::loadSettings() { - - qDebug() << "loadSettings says: Starting "; - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER) - - QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) - - qDebug() << "loadSettings says: iniFile = " << currentFile; - - iniFile.beginGroup ( "FSUIPC" ); - ui.txtLocationOfDLL->setText(iniFile.value ( "LocationOfDLL", FSUIPC_FILENAME ).toString() ); - iniFile.endGroup (); - - settingsDirty = false; - -} - -// -// Save the current Settings to the currently 'active' INI-file. -// -void FSUIPCControls::save() { - - qDebug() << "save() says: started"; - - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER) - - QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) - - iniFile.beginGroup ( "FSUIPC" ); - iniFile.setValue ( "LocationOfDLL", ui.txtLocationOfDLL->text() ); - iniFile.endGroup (); - - settingsDirty = false; -} - -// -// Show the Dialog to set the DLL's location -// -void FSUIPCControls::getLocationOfDLL() -{ - // - // Get the new filename of the INI-file. - // - QString fileName = QFileDialog::getOpenFileName(this, tr("Locate file"), - ui.txtLocationOfDLL->text(), - tr("FSUIPC DLL file (FSUIPC*.dll);;All Files (*)")); - if (!fileName.isEmpty()) { - ui.txtLocationOfDLL->setText( fileName ); - settingsDirty = true; - } -} - - -//END diff --git a/facetracknoir/fsuipcserver.h b/facetracknoir/fsuipcserver.h deleted file mode 100644 index caba2f33..00000000 --- a/facetracknoir/fsuipcserver.h +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************** -* FSUIPCServer FSUIPCServer is the Class, that communicates headpose-data * -* to games, using the FSUIPC.dll. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Testing and Research) * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -* * -********************************************************************************/ -#pragma once -#ifndef INCLUDED_FSUIPCSERVER_H -#define INCLUDED_FSUIPCSERVER_H - -#include "Windows.h" -#include -#include "FTNoIR_cxx_protocolserver.h" -#include "FSUIPC_User.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ui_FTNoIR_FSUIPCcontrols.h" - -using namespace std; -using namespace v4friend::ftnoir; - -static const char* FSUIPC_FILENAME = "C:\\Program Files\\Microsoft Games\\Flight Simulator 9\\Modules\\FSUIPC.dll"; - -// -// Define the structures necessary for the FSUIPC_Write calls -// -#pragma pack(push,1) // All fields in structure must be byte aligned. -typedef struct -{ - int Control; // Control identifier - int Value; // Value of DOF -} TFSState; -#pragma pack(pop) - -class FSUIPCServer : public ProtocolServerBase { - Q_OBJECT - -public: - - // public member methods - FSUIPCServer(); - ~FSUIPCServer(); - - // protected member methods -protected: - bool checkServerInstallationOK(); - void sendHeadposeToGame(); - -private: - // Private properties - QString ProgramName; - QLibrary FSUIPCLib; - QString LocationOfDLL; - void loadSettings(); - float prevPosX, prevPosY, prevPosZ, prevRotX, prevRotY, prevRotZ; - -public: - - // Settings for calculating the Virtual Pose - void setVirtRotX(float rot) { virtRotX = -1.0f * rot; } // degrees - void setVirtRotY(float rot) { virtRotY = rot; } - void setVirtRotZ(float rot) { virtRotZ = rot; } - - void setVirtPosX(float pos) { virtPosX = 0.0f; } // cm, X and Y are not working for FS2002/2004! - void setVirtPosY(float pos) { virtPosY = 0.0f; } - void setVirtPosZ(float pos) { virtPosZ = -1.0f * pos; } - - static int scale2AnalogLimits( float x, float min_x, float max_x ); -}; - -// Widget that has controls for FSUIPC server-settings. -class FSUIPCControls: public QWidget, public Ui::UICFSUIPCControls -{ - Q_OBJECT -public: - - explicit FSUIPCControls( QWidget *parent=0, Qt::WindowFlags f=0 ); - virtual ~FSUIPCControls(); - void showEvent ( QShowEvent * event ); - -private: - Ui::UICFSUIPCControls ui; - void loadSettings(); - void save(); - - /** helper **/ - bool settingsDirty; - -private slots: - void doOK(); - void doCancel(); - void getLocationOfDLL(); - -}; - - -#endif//INCLUDED_FSUIPCSERVER_H -//END diff --git a/facetracknoir/ftnoir_fsuipccontrols.ui b/facetracknoir/ftnoir_fsuipccontrols.ui deleted file mode 100644 index e4c4963d..00000000 --- a/facetracknoir/ftnoir_fsuipccontrols.ui +++ /dev/null @@ -1,228 +0,0 @@ - - - UICFSUIPCControls - - - - 0 - 0 - 541 - 131 - - - - FSUIPC settings FaceTrackNoIR - - - - images/facetracknoir.pngimages/facetracknoir.png - - - Qt::LeftToRight - - - false - - - - - - - - - 0 - 0 - - - - Location of FSUIPC.dll: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 230 - 0 - - - - Location of FSUIPC.dll - - - QFrame::Box - - - QFrame::Sunken - - - 1 - - - Location of FSUIPC.dll - - - - - - - - 35 - 16777215 - - - - ... - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - The DLL should be placed in the Modules folder of MS Flight Simulator - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - QLayout::SetDefaultConstraint - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - OK - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Cancel - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 10 - 20 - - - - - - - - - - - - startEngineClicked() - stopEngineClicked() - cameraSettingsClicked() - - diff --git a/facetracknoir/ftnoir_ftnservercontrols.ui b/facetracknoir/ftnoir_ftnservercontrols.ui deleted file mode 100644 index 3cb4bdeb..00000000 --- a/facetracknoir/ftnoir_ftnservercontrols.ui +++ /dev/null @@ -1,261 +0,0 @@ - - - UICFTNServerControls - - - - 0 - 0 - 411 - 156 - - - - FTNoIR protocol settings FaceTrackNoIR - - - - images/FaceTrackNoIR.pngimages/FaceTrackNoIR.png - - - Qt::LeftToRight - - - false - - - - - - - - - 60 - 16777215 - - - - 255 - - - 1 - - - - - - - - 60 - 16777215 - - - - 255 - - - 1 - - - - - - - - 60 - 16777215 - - - - 255 - - - 1 - - - - - - - - 60 - 16777215 - - - - 255 - - - 1 - - - - - - - IP-address remote PC - - - - - - - Port-number - - - - - - - 5550 - - - 10000 - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Enter IP-address and port-number for the remote PC. - - - true - - - - - - - Remember: you may have to change firewall-settings too! - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - QLayout::SetDefaultConstraint - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - OK - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Cancel - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 10 - 20 - - - - - - - - - - spinIPFirstNibble - spinIPSecondNibble - spinIPThirdNibble - spinIPFourthNibble - spinPortNumber - btnOK - btnCancel - - - - - startEngineClicked() - stopEngineClicked() - cameraSettingsClicked() - - -- cgit v1.2.3