diff options
Diffstat (limited to 'ftnoir_protocol_mouse')
| -rw-r--r-- | ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.cpp | 294 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.h | 151 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc8.vcproj | 381 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc9.vcproj | 381 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/FTNoIR_mousecontrols.ui | 512 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/Protocol.qrc | 5 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dialog.cpp | 235 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dll.cpp | 56 | ||||
| -rw-r--r-- | ftnoir_protocol_mouse/images/Mouse.ico | bin | 0 -> 17542 bytes | 
9 files changed, 2015 insertions, 0 deletions
| diff --git a/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.cpp b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.cpp new file mode 100644 index 00000000..f81a38f7 --- /dev/null +++ b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.cpp @@ -0,0 +1,294 @@ +/********************************************************************************
 +* FaceTrackNoIR		This program is a private project of the some enthusiastic	*
 +*					gamers from Holland, who don't like to pay much for			*
 +*					head-tracking.												*
 +*																				*
 +* Copyright (C) 2010-2011	Wim Vriend (Developing)								*
 +*							Ron Hendriks (Researching and Testing)				*
 +*																				*
 +* Homepage																		*
 +*																				*
 +* 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 <http://www.gnu.org/licenses/>.				*
 +*																				*
 +* FTNoIR_Protocol_Mouse	The Class, that communicates headpose-data by			*
 +*						generating Mouse commands.								*
 +*						Many games (like FPS's) support Mouse-look features,	*
 +*						but no face-tracking.									*
 +********************************************************************************/
 +/*
 +	Modifications (last one on top):
 +	20110401 - WVR: Moved protocol to a DLL, convenient for installation etc.
 +	20101224 - WVR: Base class is no longer inheriting QThread. sendHeadposeToGame
 +					is called from run() of Tracker.cpp
 +*/
 +#include "ftnoir_protocol_mouse.h"
 +
 +/** constructor **/
 +FTNoIR_Protocol::FTNoIR_Protocol()
 +{
 +	prev_fMouse_X = 0.0f;
 +	prev_fMouse_Y = 0.0f;
 +	prev_fMouse_Wheel = 0.0f;
 +	frame_delay = 0;
 +
 +	loadSettings();
 +}
 +
 +/** destructor **/
 +FTNoIR_Protocol::~FTNoIR_Protocol()
 +{
 +}
 +
 +/** helper to Auto-destruct **/
 +void FTNoIR_Protocol::Release()
 +{
 +    delete this;
 +}
 +
 +void FTNoIR_Protocol::Initialize()
 +{
 +int ScreenX, ScreenY;
 +
 +	ScreenX = GetSystemMetrics(SM_CXSCREEN);
 +	ScreenY = GetSystemMetrics(SM_CYSCREEN);
 +
 +	qDebug() << "Initialize(): Screen width (x) = " << ScreenX << ", height (y) = " << ScreenY;
 +
 +	return;
 +}
 +
 +//
 +// Scale the measured value to the Joystick values
 +//
 +long FTNoIR_Protocol::scale2AnalogLimits( float x, float min_x, float max_x ) {
 +double y;
 +
 +	y = ((MOUSE_AXIS_MAX - MOUSE_AXIS_MIN)/(max_x - min_x)) * x + ((MOUSE_AXIS_MAX - MOUSE_AXIS_MIN)/2) + MOUSE_AXIS_MIN;
 +	return (long) y;
 +}
 +
 +//
 +// Load the current Settings from the currently 'active' INI-file.
 +//
 +void FTNoIR_Protocol::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 ( "Mouse" );
 +	Mouse_Style = (FTN_MouseStyle) (iniFile.value ( "Style", 1 ).toInt() - 1);
 +	Mouse_X = (FTN_AngleName) (iniFile.value ( "Mouse_X", 1 ).toInt() - 1);
 +	Mouse_Y = (FTN_AngleName) (iniFile.value ( "Mouse_Y", 1 ).toInt() - 1);
 +	Mouse_Wheel = (FTN_AngleName) (iniFile.value ( "Mouse_Wheel", 1 ).toInt() - 1);
 +
 +	mouse_X_factor = iniFile.value("SensX", 10).toFloat() / 10.0f;
 +	mouse_Y_factor = iniFile.value("SensY", 10).toFloat() / 10.0f;
 +	mouse_Wheel_factor = iniFile.value("SensWheel", 10).toFloat() / 10.0f;
 +
 +	useVirtualDesk = iniFile.value ( "useVirtualDesk", 0 ).toBool();
 +
 +	iniFile.endGroup ();
 +}
 +
 +//
 +// Update Headpose in Game.
 +//
 +void FTNoIR_Protocol::sendHeadposeToGame( THeadPoseData *headpose, THeadPoseData *rawheadpose ) {
 +float fMouse_X;							// The actual value
 +float fMouse_Y;
 +float fMouse_Wheel;
 +
 +
 +	//
 +	// Determine which of the 6DOF's is used.
 +	// The rotations are from -180 to +180 and the translations from -50cm to +50cm.
 +	// Let's scale the translations to the degrees for simplicity sake...
 +	//
 +	switch (Mouse_X) {
 +		case FTN_PITCH:
 +			fMouse_X = headpose->pitch;
 +			break;
 +
 +		case FTN_YAW:
 +			fMouse_X = headpose->yaw;
 +			break;
 +
 +		case FTN_ROLL:
 +			fMouse_X = headpose->roll;
 +			break;
 +
 +		case FTN_X:
 +			fMouse_X = headpose->x * 3.0f;
 +			break;
 +
 +		case FTN_Y:
 +			fMouse_X = headpose->y * 3.0f;
 +			break;
 +
 +		case FTN_Z:
 +			fMouse_X = headpose->z * 3.0f;
 +			break;
 +
 +		default:
 +			break;
 +	}
 +
 +	//
 +	// Determine which of the 6DOF's is used.
 +	// The rotations are from -180 to +180 and the translations from -50cm to +50cm.
 +	// Let's scale the translations to the degrees for simplicity sake...
 +	//
 +	switch (Mouse_Y) {
 +		case FTN_PITCH:
 +			fMouse_Y = headpose->pitch;
 +			break;
 +
 +		case FTN_YAW:
 +			fMouse_Y = headpose->yaw;
 +			break;
 +
 +		case FTN_ROLL:
 +			fMouse_Y = headpose->roll;
 +			break;
 +
 +		case FTN_X:
 +			fMouse_Y = headpose->x * 3.0f;
 +			break;
 +
 +		case FTN_Y:
 +			fMouse_Y = headpose->y * 3.0f;
 +			break;
 +
 +		case FTN_Z:
 +			fMouse_Y = headpose->z * 3.0f;
 +			break;
 +
 +		default:
 +			break;
 +	}
 +
 +	//
 +	// Determine which of the 6DOF's is used.
 +	// The rotations are from -180 to +180 and the translations from -50cm to +50cm.
 +	// Let's scale the translations to the degrees for simplicity sake...
 +	//
 +	switch (Mouse_Wheel) {
 +		case FTN_PITCH:
 +			fMouse_Wheel = headpose->pitch;
 +			break;
 +
 +		case FTN_YAW:
 +			fMouse_Wheel = headpose->yaw;
 +			break;
 +
 +		case FTN_ROLL:
 +			fMouse_Wheel = headpose->roll;
 +			break;
 +
 +		case FTN_X:
 +			fMouse_Wheel = headpose->x * 3.0f;
 +			break;
 +
 +		case FTN_Y:
 +			fMouse_Wheel = headpose->y * 3.0f;
 +			break;
 +
 +		case FTN_Z:
 +			fMouse_Wheel = headpose->z * 3.0f;
 +			break;
 +
 +		default:
 +			break;
 +	}
 +
 +	//
 +	// Determine which style is used.
 +	//
 +	SecureZeroMemory(&MouseStruct, sizeof(MouseStruct));
 +	MouseStruct.type = INPUT_MOUSE;
 +	switch (Mouse_Style) {
 +		case FTN_ABSOLUTE:
 +			MouseStruct.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_WHEEL | MOUSEEVENTF_ABSOLUTE;
 +			if (useVirtualDesk) {
 +				MouseStruct.mi.dwFlags |= MOUSEEVENTF_VIRTUALDESK;
 +			}
 +			MouseStruct.mi.dx = scale2AnalogLimits(-1.0f * fMouse_X * mouse_X_factor, -150, 150);
 +			MouseStruct.mi.dy = scale2AnalogLimits(fMouse_Y * mouse_Y_factor, -150, 150);
 +			MouseStruct.mi.mouseData = mouse_Wheel_factor * (fMouse_Wheel - prev_fMouse_Wheel);
 +
 +			frame_delay = 9999;					// Seems no problem with Absolute positioning
 +			break;
 +
 +		case FTN_RELATIVE:
 +			MouseStruct.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_WHEEL;
 +			MouseStruct.mi.dx = -1.0f * mouse_X_factor * (fMouse_X - prev_fMouse_X);
 +			MouseStruct.mi.dy = mouse_Y_factor * (fMouse_Y - prev_fMouse_Y);
 +			MouseStruct.mi.mouseData = - 1.0f * mouse_Wheel_factor * (fMouse_Wheel - prev_fMouse_Wheel);
 +
 +			frame_delay += 1;					// Add 1 to the counter
 +			qDebug() << "sendHeadposeToGame(): FTN_RELATIVE x = " << MouseStruct.mi.dx << ", y = " << MouseStruct.mi.dy;
 +			break;
 +
 +		default:
 +			Mouse_Style = FTN_ABSOLUTE;			// Force to a valid value...
 +			break;
 +	}
 +
 +	//
 +	// Only send Input, when it has changed.
 +	// This releases the Mouse, when tracking is stopped (for a while).
 +	//
 +	if (frame_delay > 10) {
 +		if ((prev_fMouse_X != fMouse_X) || (prev_fMouse_Y != fMouse_Y) || (prev_fMouse_Wheel != fMouse_Wheel)) {
 +			SendInput(1, &MouseStruct, sizeof(MouseStruct));
 +		}
 +
 +		prev_fMouse_X = fMouse_X;
 +		prev_fMouse_Y = fMouse_Y;
 +		prev_fMouse_Wheel = fMouse_Wheel;
 +	}
 +}
 +
 +//
 +// Returns 'true' if all seems OK.
 +//
 +bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
 +{   
 +
 +	return true;
 +}
 +
 +//
 +// Return a name, if present the name from the Game, that is connected...
 +//
 +void FTNoIR_Protocol::getNameFromGame( char *dest )
 +{   
 +	sprintf_s(dest, 99, "Mouse");
 +	return;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +// Factory function that creates instances if the Protocol object.
 +
 +// Export both decorated and undecorated names.
 +//   GetProtocol     - Undecorated name, which can be easily used with GetProcAddress
 +//                Win32 API function.
 +//   _GetProtocol@0  - Common name decoration for __stdcall functions in C language.
 +#pragma comment(linker, "/export:GetProtocol=_GetProtocol@0")
 +
 +FTNOIR_PROTOCOL_BASE_EXPORT IProtocolPtr __stdcall GetProtocol()
 +{
 +	return new FTNoIR_Protocol;
 +}
 diff --git a/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.h b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.h new file mode 100644 index 00000000..b7765b96 --- /dev/null +++ b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE.h @@ -0,0 +1,151 @@ +/********************************************************************************
 +* FaceTrackNoIR		This program is a private project of some enthusiastic		*
 +*					gamers from Holland, who don't like to pay much for			*
 +*					head-tracking.												*
 +*																				*
 +* Copyright (C) 2010-2011	Wim Vriend (Developing)								*
 +*							Ron Hendriks (Researching and Testing)				*
 +*																				*
 +* http://facetracknoir.sourceforge.net/home/default.htm							*
 +*																				*
 +* 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 <http://www.gnu.org/licenses/>.				*
 +*																				*
 +* FTNoIR_Protocol_Mouse	The Class, that communicates headpose-data by			*
 +*						generating Mouse commands.								*
 +*						Many games (like FPS's) support Mouse-look features,	*
 +*						but no face-tracking.									*
 +********************************************************************************/
 +#pragma once
 +#ifndef INCLUDED_MOUSESERVER_H
 +#define INCLUDED_MOUSESERVER_H
 +
 +//#include <Windows.h>
 +#include "..\ftnoir_protocol_base\ftnoir_protocol_base.h"
 +#include "ui_FTNoIR_MOUSEcontrols.h"
 +#include <QMessageBox>
 +#include <QSettings>
 +#include <QLibrary>
 +#include <QProcess>
 +#include <QDebug>
 +#include <QFile>
 +
 +#include "winable.h"
 +
 +#define MOUSE_AXIS_MIN 0
 +#define MOUSE_AXIS_MAX 65535
 +
 +enum FTN_AngleName {
 +	FTN_PITCH = 1,
 +	FTN_YAW = 2,
 +	FTN_ROLL = 3,
 +	FTN_X = 4,
 +	FTN_Y = 5,
 +	FTN_Z = 6
 +};
 +
 +enum FTN_MouseStyle {
 +	FTN_ABSOLUTE = 0,
 +	FTN_RELATIVE = 1	
 +};
 +
 +
 +class FTNoIR_Protocol : public IProtocol
 +{
 +public:
 +	FTNoIR_Protocol();
 +	~FTNoIR_Protocol();
 +
 +	void Release();
 +    void Initialize();
 +
 +	bool checkServerInstallationOK( HANDLE handle );
 +	void sendHeadposeToGame( THeadPoseData *headpose, THeadPoseData *rawheadpose );
 +	void getNameFromGame( char *dest );					// Take care dest can handle up to 100 chars...
 +
 +private:
 +	HANDLE h;
 +	INPUT MouseStruct;
 +
 +	FTN_AngleName Mouse_X;			// Map one of the 6DOF's to this Mouse direction
 +	FTN_AngleName Mouse_Y;
 +	FTN_AngleName Mouse_Wheel;
 +	FTN_MouseStyle Mouse_Style;		// AutoPan, Absolute or Relative?
 +	bool useVirtualDesk;			// Extend the mouse-range beyond the standard
 +	float prev_fMouse_X;			// The previous value(s)
 +	float mouse_X_factor;			// Sensitivity factor
 +	float prev_fMouse_Y;
 +	float mouse_Y_factor;			// Sensitivity factor
 +	float prev_fMouse_Wheel;
 +	float mouse_Wheel_factor;		// Sensitivity factor
 +
 +	int frame_delay;				// Number of frames to delay SendInput (too fast, too furious?)
 +
 +	long scale2AnalogLimits( float x, float min_x, float max_x );
 +	void loadSettings();
 +
 +};
 +
 +// Widget that has controls for FTNoIR protocol client-settings.
 +class MOUSEControls: public QWidget, Ui::UICMOUSEControls, public IProtocolDialog
 +{
 +    Q_OBJECT
 +public:
 +
 +	explicit MOUSEControls();
 +    virtual ~MOUSEControls();
 +	void showEvent ( QShowEvent * event );
 +
 +	void Release();											// Member functions which are accessible from outside the DLL
 +    void Initialize(QWidget *parent);
 +	void registerProtocol(IProtocol *protocol) {
 +		theProtocol = (FTNoIR_Protocol *) protocol;			// Accept the pointer to the Protocol
 +	};
 +	void unRegisterProtocol() {
 +		theProtocol = NULL;									// Reset the pointer
 +	};
 +
 +private:
 +	Ui::UICMOUSEControls ui;
 +	void loadSettings();
 +	void save();
 +
 +	/** helper **/
 +	bool settingsDirty;
 +	FTNoIR_Protocol *theProtocol;
 +
 +private slots:
 +	void doOK();
 +	void doCancel();
 +	void settingChanged( int setting ) { settingsDirty = true; };
 +};
 +
 +//*******************************************************************************************************
 +// FaceTrackNoIR Protocol DLL. Functions used to get general info on the Protocol
 +//*******************************************************************************************************
 +class FTNoIR_ProtocolDll : public IProtocolDll
 +{
 +public:
 +	FTNoIR_ProtocolDll();
 +	~FTNoIR_ProtocolDll();
 +
 +	void getFullName(QString *strToBeFilled) { *strToBeFilled = QString("Mouse Look"); };
 +	void getShortName(QString *strToBeFilled) { *strToBeFilled = QString("Mouse Look"); };
 +	void getDescription(QString *strToBeFilled) { *strToBeFilled = QString("Mouse Look protocol"); };
 +
 +	void getIcon(QIcon *icon) { *icon = QIcon(":/images/Mouse.ico"); };
 +};
 +
 +
 +#endif//INCLUDED_MOUSESERVER_H
 +//END
 diff --git a/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc8.vcproj b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc8.vcproj new file mode 100644 index 00000000..82e93d35 --- /dev/null +++ b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc8.vcproj @@ -0,0 +1,381 @@ +<?xml version="1.0" encoding="Windows-1252"?>
 +<VisualStudioProject
 +	ProjectType="Visual C++"
 +	Version="8,00"
 +	Name="FTNoIR_Protocol_MOUSE"
 +	ProjectGUID="{BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}"
 +	RootNamespace="FTNoIR_Protocol_MOUSE"
 +	Keyword="Qt4VSv1.0"
 +	>
 +	<Platforms>
 +		<Platform
 +			Name="Win32"
 +		/>
 +	</Platforms>
 +	<ToolFiles>
 +	</ToolFiles>
 +	<Configurations>
 +		<Configuration
 +			Name="Release|Win32"
 +			OutputDirectory="$(SolutionDir)/bin"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="2"
 +				InlineFunctionExpansion="0"
 +				EnableIntrinsicFunctions="true"
 +				FavorSizeOrSpeed="1"
 +				AdditionalIncludeDirectories=".\GeneratedFiles;"$(QTDIR)\include";".\GeneratedFiles\$(ConfigurationName)";"$(QTDIR)\include\qtmain";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtGui";.\"
 +				PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
 +				RuntimeLibrary="2"
 +				FloatingPointModel="0"
 +				TreatWChar_tAsBuiltInType="false"
 +				DebugInformationFormat="3"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalDependencies="qtmain.lib QtCore4.lib QtGui4.lib"
 +				OutputFile="$(OutDir)\$(ProjectName).dll"
 +				AdditionalLibraryDirectories="$(QTDIR)\lib"
 +				GenerateDebugInformation="true"
 +				SubSystem="2"
 +				OptimizeReferences="1"
 +				EnableCOMDATFolding="1"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCWebDeploymentTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +		<Configuration
 +			Name="Debug|Win32"
 +			OutputDirectory="$(SolutionDir)/bin_dbg"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="0"
 +				AdditionalIncludeDirectories=".\GeneratedFiles;"$(QTDIR)\include";".\GeneratedFiles\$(ConfigurationName)";"$(QTDIR)\include\qtmain";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtGui";.\"
 +				PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
 +				RuntimeLibrary="3"
 +				TreatWChar_tAsBuiltInType="false"
 +				DebugInformationFormat="3"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalDependencies="qtmaind.lib QtCored4.lib QtGuid4.lib"
 +				OutputFile="$(OutDir)\$(ProjectName).dll"
 +				AdditionalLibraryDirectories="$(QTDIR)\lib"
 +				GenerateDebugInformation="true"
 +				SubSystem="2"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCWebDeploymentTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +	</Configurations>
 +	<References>
 +	</References>
 +	<Files>
 +		<Filter
 +			Name="Source Files"
 +			Filter="cpp;cxx;c;def"
 +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
 +			>
 +			<File
 +				RelativePath=".\ftnoir_Protocol_MOUSE.cpp"
 +				>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Header Files"
 +			Filter="h"
 +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 +			>
 +			<File
 +				RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base_global.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\FTNoIR_Protocol_MOUSE.h"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Moc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\moc.exe"   -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL  -I".\GeneratedFiles\." -I"$(QTDIR)\include\." -I".\GeneratedFiles\$(ConfigurationName)\." -I"$(QTDIR)\include\qtmain\." -I"$(QTDIR)\include\QtCore\." -I"$(QTDIR)\include\QtNetwork\." -I"$(QTDIR)\include\QtGui\." -I".\." ".\FTNoIR_Protocol_MOUSE.h" -o ".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp"
"
 +						AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)"
 +						Outputs="".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp""
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Moc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\moc.exe"  "$(InputPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL  "-I.\GeneratedFiles" "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\qtmain" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtGui" "-I."
"
 +						AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)"
 +						Outputs="".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp""
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Form Files"
 +			Filter="ui"
 +			UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
 +			>
 +			<File
 +				RelativePath=".\FTNoIR_MOUSEcontrols.ui"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Uic'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_$(InputName).h" "$(InputPath)"
"
 +						AdditionalDependencies="$(QTDIR)\bin\uic.exe"
 +						Outputs="".\GeneratedFiles\ui_$(InputName).h""
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Uic'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_$(InputName).h" "$(InputPath)"
"
 +						AdditionalDependencies="$(QTDIR)\bin\uic.exe"
 +						Outputs="".\GeneratedFiles\ui_$(InputName).h""
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Resource Files"
 +			Filter="qrc;*"
 +			UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
 +			ParseFiles="false"
 +			>
 +			<File
 +				RelativePath=".\Protocol.qrc"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Rcc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\rcc.exe" -name "$(InputName)" -no-compress "$(InputPath)" -o .\GeneratedFiles\qrc_$(InputName).cpp
"
 +						AdditionalDependencies="$(InputPath);.\images\FaceTrackNoIR.ico"
 +						Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Rcc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\rcc.exe" -name "$(InputName)" -no-compress "$(InputPath)" -o .\GeneratedFiles\qrc_$(InputName).cpp
"
 +						AdditionalDependencies="$(InputPath);.\images\FaceTrackNoIR.ico"
 +						Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Generated Files"
 +			Filter="moc;h;cpp"
 +			UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
 +			SourceControlFiles="false"
 +			>
 +			<File
 +				RelativePath=".\generatedfiles\qrc_Protocol.cpp"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						UsePrecompiledHeader="0"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						UsePrecompiledHeader="0"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +			<File
 +				RelativePath=".\GeneratedFiles\ui_FTNoIR_MOUSEcontrols.h"
 +				>
 +			</File>
 +			<Filter
 +				Name="Release"
 +				Filter="cpp;moc"
 +				SourceControlFiles="false"
 +				>
 +				<File
 +					RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_MOUSE.cpp"
 +					>
 +					<FileConfiguration
 +						Name="Debug|Win32"
 +						ExcludedFromBuild="true"
 +						>
 +						<Tool
 +							Name="VCCLCompilerTool"
 +						/>
 +					</FileConfiguration>
 +				</File>
 +			</Filter>
 +			<Filter
 +				Name="Debug"
 +				Filter="cpp;moc"
 +				SourceControlFiles="false"
 +				>
 +				<File
 +					RelativePath=".\GeneratedFiles\Debug\moc_FTNoIR_Protocol_MOUSE.cpp"
 +					>
 +					<FileConfiguration
 +						Name="Release|Win32"
 +						ExcludedFromBuild="true"
 +						>
 +						<Tool
 +							Name="VCCLCompilerTool"
 +						/>
 +					</FileConfiguration>
 +				</File>
 +			</Filter>
 +		</Filter>
 +	</Files>
 +	<Globals>
 +		<Global
 +			Name="lupdateOnBuild"
 +			Value="0"
 +		/>
 +		<Global
 +			Name="MocDir"
 +			Value=".\GeneratedFiles\$(ConfigurationName)"
 +		/>
 +		<Global
 +			Name="MocOptions"
 +			Value=""
 +		/>
 +		<Global
 +			Name="QtVersion Win32"
 +			Value="4.6.2"
 +		/>
 +		<Global
 +			Name="RccDir"
 +			Value=".\GeneratedFiles"
 +		/>
 +		<Global
 +			Name="UicDir"
 +			Value=".\GeneratedFiles"
 +		/>
 +	</Globals>
 +</VisualStudioProject>
 diff --git a/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc9.vcproj b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc9.vcproj new file mode 100644 index 00000000..625e88de --- /dev/null +++ b/ftnoir_protocol_mouse/FTNoIR_Protocol_MOUSE_vc9.vcproj @@ -0,0 +1,381 @@ +<?xml version="1.0" encoding="Windows-1252"?>
 +<VisualStudioProject
 +	ProjectType="Visual C++"
 +	Version="9,00"
 +	Name="FTNoIR_Protocol_MOUSE"
 +	ProjectGUID="{BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}"
 +	RootNamespace="FTNoIR_Protocol_MOUSE"
 +	Keyword="Qt4VSv1.0"
 +	TargetFrameworkVersion="131072"
 +	>
 +	<Platforms>
 +		<Platform
 +			Name="Win32"
 +		/>
 +	</Platforms>
 +	<ToolFiles>
 +	</ToolFiles>
 +	<Configurations>
 +		<Configuration
 +			Name="Release|Win32"
 +			OutputDirectory="$(SolutionDir)/bin"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				AdditionalIncludeDirectories=".\GeneratedFiles;"$(QTDIR)\include";".\GeneratedFiles\$(ConfigurationName)";"$(QTDIR)\include\qtmain";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtGui";.\"
 +				PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
 +				RuntimeLibrary="2"
 +				TreatWChar_tAsBuiltInType="false"
 +				DebugInformationFormat="0"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalDependencies="qtmain.lib QtCore4.lib QtGui4.lib"
 +				OutputFile="$(OutDir)\$(ProjectName).dll"
 +				AdditionalLibraryDirectories="$(QTDIR)\lib"
 +				GenerateDebugInformation="false"
 +				SubSystem="2"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +		<Configuration
 +			Name="Debug|Win32"
 +			OutputDirectory="$(SolutionDir)/bin_dbg"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="0"
 +				AdditionalIncludeDirectories=".\GeneratedFiles;"$(QTDIR)\include";".\GeneratedFiles\$(ConfigurationName)";"$(QTDIR)\include\qtmain";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtGui";.\"
 +				PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
 +				RuntimeLibrary="3"
 +				TreatWChar_tAsBuiltInType="false"
 +				DebugInformationFormat="3"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalDependencies="qtmaind.lib QtCored4.lib QtGuid4.lib"
 +				OutputFile="$(OutDir)\$(ProjectName).dll"
 +				AdditionalLibraryDirectories="$(QTDIR)\lib"
 +				GenerateDebugInformation="true"
 +				SubSystem="2"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +	</Configurations>
 +	<References>
 +	</References>
 +	<Files>
 +		<Filter
 +			Name="Source Files"
 +			Filter="cpp;cxx;c;def"
 +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
 +			>
 +			<File
 +				RelativePath=".\ftnoir_Protocol_MOUSE.cpp"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\ftnoir_protocol_MOUSE_dialog.cpp"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\ftnoir_protocol_MOUSE_dll.cpp"
 +				>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Header Files"
 +			Filter="h"
 +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 +			>
 +			<File
 +				RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base_global.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\FTNoIR_Protocol_MOUSE.h"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Moc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\moc.exe"   -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL  -I".\GeneratedFiles\." -I"$(QTDIR)\include\." -I".\GeneratedFiles\$(ConfigurationName)\." -I"$(QTDIR)\include\qtmain\." -I"$(QTDIR)\include\QtCore\." -I"$(QTDIR)\include\QtNetwork\." -I"$(QTDIR)\include\QtGui\." -I".\." ".\FTNoIR_Protocol_MOUSE.h" -o ".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp"
"
 +						AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)"
 +						Outputs="".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp""
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Moc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\moc.exe"  "$(InputPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL  "-I.\GeneratedFiles" "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\qtmain" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtNetwork" "-I$(QTDIR)\include\QtGui" "-I."
"
 +						AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)"
 +						Outputs="".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp""
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Form Files"
 +			Filter="ui"
 +			UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
 +			>
 +			<File
 +				RelativePath=".\FTNoIR_MOUSEcontrols.ui"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Uic'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_$(InputName).h" "$(InputPath)"
"
 +						AdditionalDependencies="$(QTDIR)\bin\uic.exe"
 +						Outputs="".\GeneratedFiles\ui_$(InputName).h""
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Uic'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_$(InputName).h" "$(InputPath)"
"
 +						AdditionalDependencies="$(QTDIR)\bin\uic.exe"
 +						Outputs="".\GeneratedFiles\ui_$(InputName).h""
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Resource Files"
 +			Filter="qrc;*"
 +			UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
 +			ParseFiles="false"
 +			>
 +			<File
 +				RelativePath=".\Protocol.qrc"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Rcc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\rcc.exe" -name "$(InputName)" -no-compress "$(InputPath)" -o .\GeneratedFiles\qrc_$(InputName).cpp
"
 +						AdditionalDependencies="$(InputPath);.\images\FaceTrackNoIR.ico"
 +						Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCustomBuildTool"
 +						Description="Rcc'ing $(InputFileName)..."
 +						CommandLine=""$(QTDIR)\bin\rcc.exe" -name "$(InputName)" -no-compress "$(InputPath)" -o .\GeneratedFiles\qrc_$(InputName).cpp
"
 +						AdditionalDependencies="$(InputPath);.\images\FaceTrackNoIR.ico"
 +						Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Generated Files"
 +			Filter="moc;h;cpp"
 +			UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
 +			SourceControlFiles="false"
 +			>
 +			<File
 +				RelativePath=".\generatedfiles\qrc_Protocol.cpp"
 +				>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						UsePrecompiledHeader="0"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						UsePrecompiledHeader="0"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +			<File
 +				RelativePath=".\GeneratedFiles\ui_FTNoIR_MOUSEcontrols.h"
 +				>
 +			</File>
 +			<Filter
 +				Name="Release"
 +				Filter="cpp;moc"
 +				SourceControlFiles="false"
 +				>
 +				<File
 +					RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_MOUSE.cpp"
 +					>
 +					<FileConfiguration
 +						Name="Debug|Win32"
 +						ExcludedFromBuild="true"
 +						>
 +						<Tool
 +							Name="VCCLCompilerTool"
 +						/>
 +					</FileConfiguration>
 +				</File>
 +			</Filter>
 +			<Filter
 +				Name="Debug"
 +				Filter="cpp;moc"
 +				SourceControlFiles="false"
 +				>
 +				<File
 +					RelativePath=".\GeneratedFiles\Debug\moc_FTNoIR_Protocol_MOUSE.cpp"
 +					>
 +					<FileConfiguration
 +						Name="Release|Win32"
 +						ExcludedFromBuild="true"
 +						>
 +						<Tool
 +							Name="VCCLCompilerTool"
 +						/>
 +					</FileConfiguration>
 +				</File>
 +			</Filter>
 +		</Filter>
 +	</Files>
 +	<Globals>
 +		<Global
 +			Name="lupdateOnBuild"
 +			Value="0"
 +		/>
 +		<Global
 +			Name="MocDir"
 +			Value=".\GeneratedFiles\$(ConfigurationName)"
 +		/>
 +		<Global
 +			Name="MocOptions"
 +			Value=""
 +		/>
 +		<Global
 +			Name="QtVersion Win32"
 +			Value="$(DefaultQtVersion)"
 +		/>
 +		<Global
 +			Name="RccDir"
 +			Value=".\GeneratedFiles"
 +		/>
 +		<Global
 +			Name="UicDir"
 +			Value=".\GeneratedFiles"
 +		/>
 +	</Globals>
 +</VisualStudioProject>
 diff --git a/ftnoir_protocol_mouse/FTNoIR_mousecontrols.ui b/ftnoir_protocol_mouse/FTNoIR_mousecontrols.ui new file mode 100644 index 00000000..4a6cc3b9 --- /dev/null +++ b/ftnoir_protocol_mouse/FTNoIR_mousecontrols.ui @@ -0,0 +1,512 @@ +<?xml version="1.0" encoding="UTF-8"?>
 +<ui version="4.0">
 + <class>UICMOUSEControls</class>
 + <widget class="QWidget" name="UICMOUSEControls">
 +  <property name="geometry">
 +   <rect>
 +    <x>0</x>
 +    <y>0</y>
 +    <width>462</width>
 +    <height>299</height>
 +   </rect>
 +  </property>
 +  <property name="windowTitle">
 +   <string>MouseLook settings FaceTrackNoIR</string>
 +  </property>
 +  <property name="windowIcon">
 +   <iconset resource="Protocol.qrc">
 +    <normaloff>:/images/Mouse.ico</normaloff>:/images/Mouse.ico</iconset>
 +  </property>
 +  <property name="layoutDirection">
 +   <enum>Qt::LeftToRight</enum>
 +  </property>
 +  <property name="autoFillBackground">
 +   <bool>false</bool>
 +  </property>
 +  <layout class="QVBoxLayout" name="_vertical_layout">
 +   <item>
 +    <layout class="QGridLayout" name="gridLayout">
 +     <item row="0" column="0">
 +      <widget class="QLabel" name="textLabel2">
 +       <property name="sizePolicy">
 +        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 +         <horstretch>0</horstretch>
 +         <verstretch>0</verstretch>
 +        </sizepolicy>
 +       </property>
 +       <property name="text">
 +        <string>Mouse style:</string>
 +       </property>
 +       <property name="alignment">
 +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 +       </property>
 +       <property name="wordWrap">
 +        <bool>false</bool>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="0" column="1">
 +      <widget class="QComboBox" name="cbxSelectMouseStyle">
 +       <property name="maximumSize">
 +        <size>
 +         <width>80</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="toolTip">
 +        <string>Select Number</string>
 +       </property>
 +       <property name="insertPolicy">
 +        <enum>QComboBox::InsertAlphabetically</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="1" column="0">
 +      <widget class="QLabel" name="textLabel2_2">
 +       <property name="sizePolicy">
 +        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 +         <horstretch>0</horstretch>
 +         <verstretch>0</verstretch>
 +        </sizepolicy>
 +       </property>
 +       <property name="text">
 +        <string>Map mouse X to:</string>
 +       </property>
 +       <property name="alignment">
 +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 +       </property>
 +       <property name="wordWrap">
 +        <bool>false</bool>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="1" column="1">
 +      <widget class="QComboBox" name="cbxSelectMouse_X">
 +       <property name="maximumSize">
 +        <size>
 +         <width>80</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="toolTip">
 +        <string>Select Number</string>
 +       </property>
 +       <property name="insertPolicy">
 +        <enum>QComboBox::InsertAlphabetically</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="2" column="0">
 +      <widget class="QLabel" name="textLabel2_3">
 +       <property name="sizePolicy">
 +        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 +         <horstretch>0</horstretch>
 +         <verstretch>0</verstretch>
 +        </sizepolicy>
 +       </property>
 +       <property name="text">
 +        <string>Map mouse Y to:</string>
 +       </property>
 +       <property name="alignment">
 +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 +       </property>
 +       <property name="wordWrap">
 +        <bool>false</bool>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="3" column="0">
 +      <widget class="QLabel" name="textLabel2_4">
 +       <property name="sizePolicy">
 +        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 +         <horstretch>0</horstretch>
 +         <verstretch>0</verstretch>
 +        </sizepolicy>
 +       </property>
 +       <property name="text">
 +        <string>Map mouse Wheel to:</string>
 +       </property>
 +       <property name="alignment">
 +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 +       </property>
 +       <property name="wordWrap">
 +        <bool>false</bool>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="2" column="1">
 +      <widget class="QComboBox" name="cbxSelectMouse_Y">
 +       <property name="maximumSize">
 +        <size>
 +         <width>80</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="toolTip">
 +        <string>Select Number</string>
 +       </property>
 +       <property name="insertPolicy">
 +        <enum>QComboBox::InsertAlphabetically</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="3" column="1">
 +      <widget class="QComboBox" name="cbxSelectMouse_Wheel">
 +       <property name="maximumSize">
 +        <size>
 +         <width>80</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="toolTip">
 +        <string>Select Number</string>
 +       </property>
 +       <property name="insertPolicy">
 +        <enum>QComboBox::InsertAlphabetically</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="1" column="2">
 +      <widget class="QSlider" name="slideSensX">
 +       <property name="maximumSize">
 +        <size>
 +         <width>150</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +       <property name="orientation">
 +        <enum>Qt::Horizontal</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="2" column="2">
 +      <widget class="QSlider" name="slideSensY">
 +       <property name="maximumSize">
 +        <size>
 +         <width>150</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +       <property name="orientation">
 +        <enum>Qt::Horizontal</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="3" column="2">
 +      <widget class="QSlider" name="slideSensWheel">
 +       <property name="maximumSize">
 +        <size>
 +         <width>150</width>
 +         <height>16777215</height>
 +        </size>
 +       </property>
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +       <property name="orientation">
 +        <enum>Qt::Horizontal</enum>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="0" column="2">
 +      <widget class="QLabel" name="label">
 +       <property name="text">
 +        <string>Sensitivity (10=1x):</string>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="1" column="3">
 +      <widget class="QSpinBox" name="spinSensX">
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="2" column="3">
 +      <widget class="QSpinBox" name="spinSensY">
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="3" column="3">
 +      <widget class="QSpinBox" name="spinSensWheel">
 +       <property name="maximum">
 +        <number>50</number>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="4" column="0">
 +      <widget class="QLabel" name="textLabel2_5">
 +       <property name="sizePolicy">
 +        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 +         <horstretch>0</horstretch>
 +         <verstretch>0</verstretch>
 +        </sizepolicy>
 +       </property>
 +       <property name="text">
 +        <string>Use Virtual Desk:</string>
 +       </property>
 +       <property name="alignment">
 +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 +       </property>
 +       <property name="wordWrap">
 +        <bool>false</bool>
 +       </property>
 +      </widget>
 +     </item>
 +     <item row="4" column="1">
 +      <widget class="QCheckBox" name="chkUseVirtualDesk">
 +       <property name="minimumSize">
 +        <size>
 +         <width>0</width>
 +         <height>20</height>
 +        </size>
 +       </property>
 +       <property name="text">
 +        <string/>
 +       </property>
 +      </widget>
 +     </item>
 +    </layout>
 +   </item>
 +   <item>
 +    <spacer name="verticalSpacer">
 +     <property name="orientation">
 +      <enum>Qt::Vertical</enum>
 +     </property>
 +     <property name="sizeHint" stdset="0">
 +      <size>
 +       <width>20</width>
 +       <height>40</height>
 +      </size>
 +     </property>
 +    </spacer>
 +   </item>
 +   <item>
 +    <layout class="QHBoxLayout" name="horizontalLayout_3">
 +     <item>
 +      <widget class="QLabel" name="label_2">
 +       <property name="text">
 +        <string>Most games (like First Person Shooters) support 'relative' mouse look.</string>
 +       </property>
 +      </widget>
 +     </item>
 +    </layout>
 +   </item>
 +   <item>
 +    <layout class="QHBoxLayout" name="horizontalLayout_4">
 +     <item>
 +      <widget class="QLabel" name="label_3">
 +       <property name="text">
 +        <string>Mouse sensitivity can also be influenced via the Windows Mouse settings.</string>
 +       </property>
 +      </widget>
 +     </item>
 +    </layout>
 +   </item>
 +   <item>
 +    <layout class="QHBoxLayout" name="horizontalLayout">
 +     <item>
 +      <spacer name="horizontalSpacer_2">
 +       <property name="orientation">
 +        <enum>Qt::Horizontal</enum>
 +       </property>
 +       <property name="sizeHint" stdset="0">
 +        <size>
 +         <width>40</width>
 +         <height>20</height>
 +        </size>
 +       </property>
 +      </spacer>
 +     </item>
 +     <item>
 +      <layout class="QHBoxLayout" name="horizontalLayout_2">
 +       <property name="sizeConstraint">
 +        <enum>QLayout::SetDefaultConstraint</enum>
 +       </property>
 +       <item>
 +        <widget class="QPushButton" name="btnOK">
 +         <property name="sizePolicy">
 +          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 +           <horstretch>0</horstretch>
 +           <verstretch>0</verstretch>
 +          </sizepolicy>
 +         </property>
 +         <property name="minimumSize">
 +          <size>
 +           <width>100</width>
 +           <height>0</height>
 +          </size>
 +         </property>
 +         <property name="maximumSize">
 +          <size>
 +           <width>100</width>
 +           <height>16777215</height>
 +          </size>
 +         </property>
 +         <property name="text">
 +          <string>OK</string>
 +         </property>
 +        </widget>
 +       </item>
 +       <item>
 +        <widget class="QPushButton" name="btnCancel">
 +         <property name="sizePolicy">
 +          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 +           <horstretch>0</horstretch>
 +           <verstretch>0</verstretch>
 +          </sizepolicy>
 +         </property>
 +         <property name="minimumSize">
 +          <size>
 +           <width>100</width>
 +           <height>0</height>
 +          </size>
 +         </property>
 +         <property name="maximumSize">
 +          <size>
 +           <width>100</width>
 +           <height>16777215</height>
 +          </size>
 +         </property>
 +         <property name="text">
 +          <string>Cancel</string>
 +         </property>
 +        </widget>
 +       </item>
 +      </layout>
 +     </item>
 +     <item>
 +      <spacer name="horizontalSpacer">
 +       <property name="orientation">
 +        <enum>Qt::Horizontal</enum>
 +       </property>
 +       <property name="sizeType">
 +        <enum>QSizePolicy::Fixed</enum>
 +       </property>
 +       <property name="sizeHint" stdset="0">
 +        <size>
 +         <width>10</width>
 +         <height>20</height>
 +        </size>
 +       </property>
 +      </spacer>
 +     </item>
 +    </layout>
 +   </item>
 +  </layout>
 + </widget>
 + <resources>
 +  <include location="Protocol.qrc"/>
 + </resources>
 + <connections>
 +  <connection>
 +   <sender>slideSensX</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>spinSensX</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>334</x>
 +     <y>44</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>445</x>
 +     <y>46</y>
 +    </hint>
 +   </hints>
 +  </connection>
 +  <connection>
 +   <sender>slideSensY</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>spinSensY</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>338</x>
 +     <y>73</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>450</x>
 +     <y>70</y>
 +    </hint>
 +   </hints>
 +  </connection>
 +  <connection>
 +   <sender>slideSensWheel</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>spinSensWheel</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>334</x>
 +     <y>98</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>445</x>
 +     <y>96</y>
 +    </hint>
 +   </hints>
 +  </connection>
 +  <connection>
 +   <sender>spinSensX</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>slideSensX</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>440</x>
 +     <y>37</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>364</x>
 +     <y>41</y>
 +    </hint>
 +   </hints>
 +  </connection>
 +  <connection>
 +   <sender>spinSensY</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>slideSensY</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>441</x>
 +     <y>69</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>347</x>
 +     <y>73</y>
 +    </hint>
 +   </hints>
 +  </connection>
 +  <connection>
 +   <sender>spinSensWheel</sender>
 +   <signal>valueChanged(int)</signal>
 +   <receiver>slideSensWheel</receiver>
 +   <slot>setValue(int)</slot>
 +   <hints>
 +    <hint type="sourcelabel">
 +     <x>459</x>
 +     <y>99</y>
 +    </hint>
 +    <hint type="destinationlabel">
 +     <x>350</x>
 +     <y>99</y>
 +    </hint>
 +   </hints>
 +  </connection>
 + </connections>
 + <slots>
 +  <slot>startEngineClicked()</slot>
 +  <slot>stopEngineClicked()</slot>
 +  <slot>cameraSettingsClicked()</slot>
 + </slots>
 +</ui>
 diff --git a/ftnoir_protocol_mouse/Protocol.qrc b/ftnoir_protocol_mouse/Protocol.qrc new file mode 100644 index 00000000..0e5e11d9 --- /dev/null +++ b/ftnoir_protocol_mouse/Protocol.qrc @@ -0,0 +1,5 @@ +<RCC> +    <qresource prefix="/"> +        <file>images/Mouse.ico</file> +    </qresource> +</RCC> diff --git a/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dialog.cpp b/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dialog.cpp new file mode 100644 index 00000000..b8d7d7ee --- /dev/null +++ b/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dialog.cpp @@ -0,0 +1,235 @@ +/********************************************************************************
 +* FaceTrackNoIR		This program is a private project of some enthusiastic		*
 +*					gamers from Holland, who don't like to pay much for			*
 +*					head-tracking.												*
 +*																				*
 +* Copyright (C) 2012	Wim Vriend (Developing)									*
 +*						Ron Hendriks (Researching and Testing)					*
 +*																				*
 +* Homepage																		*
 +*																				*
 +* 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 <http://www.gnu.org/licenses/>.				*
 +*																				*
 +********************************************************************************/
 +/*
 +	Modifications (last one on top):
 +		20120830 - WVR: The Dialog class was used to get general info on the DLL. This
 +						had a big disadvantage: the complete dialog was loaded, just to get
 +						some data and then it was deleted again (without ever showing the dialog).
 +						The ProtocolDll class solves this.
 +						The functions to get the name(s) and icon were removed from the two other classes.
 +*/
 +#include "ftnoir_protocol_MOUSE.h"
 +#include <QDebug>
 +
 +//*******************************************************************************************************
 +// FaceTrackNoIR Client Settings-dialog.
 +//*******************************************************************************************************
 +
 +//
 +// Constructor for server-settings-dialog
 +//
 +MOUSEControls::MOUSEControls() :
 +QWidget()
 +{
 +	ui.setupUi( this );
 +
 +	//
 +	// Setup the choices
 +	//
 +	ui.cbxSelectMouseStyle->addItem("Absolute");
 +	ui.cbxSelectMouseStyle->addItem("Relative");
 +
 +	ui.cbxSelectMouse_X->addItem("None");
 +	ui.cbxSelectMouse_X->addItem("Pitch");
 +	ui.cbxSelectMouse_X->addItem("Yaw");
 +	ui.cbxSelectMouse_X->addItem("Roll");
 +	ui.cbxSelectMouse_X->addItem("X");
 +	ui.cbxSelectMouse_X->addItem("Y");
 +	ui.cbxSelectMouse_X->addItem("Z");
 +
 +	ui.cbxSelectMouse_Y->addItem("None");
 +	ui.cbxSelectMouse_Y->addItem("Pitch");
 +	ui.cbxSelectMouse_Y->addItem("Yaw");
 +	ui.cbxSelectMouse_Y->addItem("Roll");
 +	ui.cbxSelectMouse_Y->addItem("X");
 +	ui.cbxSelectMouse_Y->addItem("Y");
 +	ui.cbxSelectMouse_Y->addItem("Z");
 +
 +	ui.cbxSelectMouse_Wheel->addItem("None");
 +	ui.cbxSelectMouse_Wheel->addItem("Pitch");
 +	ui.cbxSelectMouse_Wheel->addItem("Yaw");
 +	ui.cbxSelectMouse_Wheel->addItem("Roll");
 +	ui.cbxSelectMouse_Wheel->addItem("X");
 +	ui.cbxSelectMouse_Wheel->addItem("Y");
 +	ui.cbxSelectMouse_Wheel->addItem("Z");
 +
 +	// Connect Qt signals to member-functions
 +	connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK()));
 +	connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel()));
 +	connect(ui.cbxSelectMouse_X, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged( int )));
 +	connect(ui.cbxSelectMouse_Y, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged( int )));
 +	connect(ui.cbxSelectMouse_Wheel, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged( int )));
 +
 +	connect(ui.spinSensX, SIGNAL(valueChanged(int)), this, SLOT(settingChanged(int)));
 +	connect(ui.spinSensY, SIGNAL(valueChanged(int)), this, SLOT(settingChanged(int)));
 +	connect(ui.spinSensWheel, SIGNAL(valueChanged(int)), this, SLOT(settingChanged(int)));
 +
 +	connect(ui.chkUseVirtualDesk, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int)));
 +
 +	theProtocol = NULL;
 +
 +	// Load the settings from the current .INI-file
 +	loadSettings();
 +}
 +
 +//
 +// Destructor for server-dialog
 +//
 +MOUSEControls::~MOUSEControls() {
 +	qDebug() << "~MOUSEControls() says: started";
 +}
 +
 +void MOUSEControls::Release()
 +{
 +    delete this;
 +}
 +
 +//
 +// Initialize tracker-client-dialog
 +//
 +void MOUSEControls::Initialize(QWidget *parent) {
 +
 +	QPoint offsetpos(100, 100);
 +	if (parent) {
 +		this->move(parent->pos() + offsetpos);
 +	}
 +	show();
 +}
 +
 +//
 +// OK clicked on server-dialog
 +//
 +void MOUSEControls::doOK() {
 +	save();
 +	this->close();
 +}
 +
 +// override show event
 +void MOUSEControls::showEvent ( QShowEvent * event ) {
 +	loadSettings();
 +}
 +
 +//
 +// Cancel clicked on server-dialog
 +//
 +void MOUSEControls::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 MOUSEControls::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 ( "Mouse" );
 +	ui.cbxSelectMouseStyle->setCurrentIndex(iniFile.value ( "Style", 1 ).toInt() - 1);
 +	ui.cbxSelectMouse_X->setCurrentIndex(iniFile.value ( "Mouse_X", 1 ).toInt() - 1);
 +	ui.cbxSelectMouse_Y->setCurrentIndex(iniFile.value ( "Mouse_Y", 1 ).toInt() - 1);
 +	ui.cbxSelectMouse_Wheel->setCurrentIndex(iniFile.value ( "Mouse_Wheel", 1 ).toInt() - 1);
 +
 +	ui.slideSensX->setValue(iniFile.value("SensX", 10).toInt());
 +	ui.slideSensY->setValue(iniFile.value("SensY", 10).toInt());
 +	ui.slideSensWheel->setValue(iniFile.value("SensWheel", 10).toInt());
 +
 +	ui.chkUseVirtualDesk->setChecked( iniFile.value ( "useVirtualDesk", 0 ).toBool() );
 +
 +	iniFile.endGroup ();
 +
 +	settingsDirty = false;
 +}
 +
 +//
 +// Save the current Settings to the currently 'active' INI-file.
 +//
 +void MOUSEControls::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 ( "Mouse" );
 +	iniFile.setValue ( "Style", ui.cbxSelectMouseStyle->currentIndex() + 1 );
 +	iniFile.setValue ( "Mouse_X", ui.cbxSelectMouse_X->currentIndex() + 1 );
 +	iniFile.setValue ( "Mouse_Y", ui.cbxSelectMouse_Y->currentIndex() + 1 );
 +	iniFile.setValue ( "Mouse_Wheel", ui.cbxSelectMouse_Wheel->currentIndex() + 1 );
 +
 +	iniFile.setValue ( "SensX", ui.slideSensX->value() );
 +	iniFile.setValue ( "SensY", ui.slideSensY->value() );
 +	iniFile.setValue ( "SensWheel", ui.slideSensWheel->value() );
 +
 +	iniFile.setValue( "useVirtualDesk", ui.chkUseVirtualDesk->isChecked() );
 +	iniFile.endGroup ();
 +
 +	settingsDirty = false;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +// Factory function that creates instances if the Protocol-settings dialog object.
 +
 +// Export both decorated and undecorated names.
 +//   GetProtocolDialog     - Undecorated name, which can be easily used with GetProcAddress
 +//                          Win32 API function.
 +//   _GetProtocolDialog@0  - Common name decoration for __stdcall functions in C language.
 +#pragma comment(linker, "/export:GetProtocolDialog=_GetProtocolDialog@0")
 +
 +FTNOIR_PROTOCOL_BASE_EXPORT IProtocolDialogPtr __stdcall GetProtocolDialog( )
 +{
 +	return new MOUSEControls;
 +}
 diff --git a/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dll.cpp b/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dll.cpp new file mode 100644 index 00000000..cc6ddc17 --- /dev/null +++ b/ftnoir_protocol_mouse/ftnoir_protocol_MOUSE_dll.cpp @@ -0,0 +1,56 @@ +/********************************************************************************
 +* FaceTrackNoIR		This program is a private project of some enthusiastic		*
 +*					gamers from Holland, who don't like to pay much for			*
 +*					head-tracking.												*
 +*																				*
 +* Copyright (C) 2012	Wim Vriend (Developing)									*
 +*						Ron Hendriks (Researching and Testing)					*
 +*																				*
 +* Homepage																		*
 +*																				*
 +* 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 <http://www.gnu.org/licenses/>.				*
 +*																				*
 +********************************************************************************/
 +/*
 +	Modifications (last one on top):
 +		20120830 - WVR: The Dialog class was used to get general info on the DLL. This
 +						had a big disadvantage: the complete dialog was loaded, just to get
 +						some data and then it was deleted again (without ever showing the dialog).
 +						The ProtocolDll class solves this.
 +						The functions to get the name(s) and icon were removed from the two other classes.
 +*/
 +#include "ftnoir_protocol_MOUSE.h"
 +#include <QDebug>
 +
 +FTNoIR_ProtocolDll::FTNoIR_ProtocolDll() {
 +}
 +
 +FTNoIR_ProtocolDll::~FTNoIR_ProtocolDll()
 +{
 +
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +// Factory function that creates instances if the Protocol object.
 +
 +// Export both decorated and undecorated names.
 +//   GetProtocolDll     - Undecorated name, which can be easily used with GetProcAddress
 +//						Win32 API function.
 +//   _GetProtocolDll@0  - Common name decoration for __stdcall functions in C language.
 +#pragma comment(linker, "/export:GetProtocolDll=_GetProtocolDll@0")
 +
 +FTNOIR_PROTOCOL_BASE_EXPORT IProtocolDllPtr __stdcall GetProtocolDll()
 +{
 +	return new FTNoIR_ProtocolDll;
 +}
 diff --git a/ftnoir_protocol_mouse/images/Mouse.ico b/ftnoir_protocol_mouse/images/Mouse.icoBinary files differ new file mode 100644 index 00000000..1151ab2b --- /dev/null +++ b/ftnoir_protocol_mouse/images/Mouse.ico | 
