diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 20:48:17 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 20:48:17 +0100 |
commit | 3089c4bbc10e98d18f43e8a70e7a3d0c0eaf0900 (patch) | |
tree | c6f985472c05372417ecd4a861f6c2f346b63fd3 /FTNoIR_Tracker_HT | |
parent | 3e1515e88c6f750c193ed9b9908d8a9c09e5b025 (diff) |
Downcase. PLEASE TURN OFF IGNORING CASE IN GIT CONFIG!!!
.git/config:
[core]
ignorecase = false
Diffstat (limited to 'FTNoIR_Tracker_HT')
-rw-r--r-- | FTNoIR_Tracker_HT/FTNoIR_Tracker_HT_vc8.vcproj | 398 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/Tracker.qrc | 5 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/TrackerControls.ui | 295 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/ftnoir_tracker_ht.cpp | 422 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/ftnoir_tracker_ht.h | 80 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/ftnoir_tracker_ht_dll.h | 20 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/headtracker-ftnoir.h | 24 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/ht-api.h | 85 | ||||
-rw-r--r-- | FTNoIR_Tracker_HT/images/HT.ico | bin | 15086 -> 0 bytes | |||
-rw-r--r-- | FTNoIR_Tracker_HT/stdafx.h | 14 |
10 files changed, 0 insertions, 1343 deletions
diff --git a/FTNoIR_Tracker_HT/FTNoIR_Tracker_HT_vc8.vcproj b/FTNoIR_Tracker_HT/FTNoIR_Tracker_HT_vc8.vcproj deleted file mode 100644 index bf9b23c2..00000000 --- a/FTNoIR_Tracker_HT/FTNoIR_Tracker_HT_vc8.vcproj +++ /dev/null @@ -1,398 +0,0 @@ -<?xml version="1.0" encoding="windows-1250"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8,00" - Name="FTNoIR_Tracker_HT" - ProjectGUID="{61F2B142-F7DD-4070-8A68-53AD63A5D528}" - RootNamespace="FTNoIR_Tracker_HT" - Keyword="Qt4VSv1.0" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories=""$(QTDIR)include";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";".\.GeneratedFiles"" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FTNOIR_TRACKER_HT_EXPORTS;QT_CORE_LIB;QT_GUI_LIB" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="2" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="QtCored4.lib QtGuid4.lib" - LinkIncremental="2" - AdditionalLibraryDirectories="$(QTDIR)lib" - GenerateDebugInformation="true" - SubSystem="2" - TargetMachine="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="Release|Win32" - OutputDirectory="$(SolutionDir)\bin" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - InlineFunctionExpansion="2" - EnableIntrinsicFunctions="true" - FavorSizeOrSpeed="1" - AdditionalIncludeDirectories=""$(QTDIR)\include";"$(QTDIR)\include\QtCore";"$(QTDIR)\include\QtGui";.\.GeneratedFiles;"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include"" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FTNOIR_TRACKER_HT_EXPORTS;QT_CORE_LIB;QT_GUI_LIB;FTNOIR_TRACKER_BASE_LIB" - RuntimeLibrary="2" - EnableEnhancedInstructionSet="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="QtCore4.lib QtGui4.lib Strmiids.lib" - LinkIncremental="1" - AdditionalLibraryDirectories=""$(SolutionDir)\dinput";"$(QTDIR)\lib"" - GenerateDebugInformation="true" - SubSystem="2" - OptimizeReferences="1" - EnableCOMDATFolding="2" - TargetMachine="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> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath=".\ftnoir_tracker_ht.cpp" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - <File - RelativePath=".\ftnoir_tracker_ht.h" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCustomBuildTool" - Description="Moc'ing ftnoir_tracker_ht.h..." - CommandLine=""$(QTDIR)\bin\moc.exe" "$(InputPath)" -o ".\.GeneratedFiles$(ConfigurationName)\moc_$(InputName).cpp" -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DFTNOIR_TRACKER_HT_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -D_WINDLL -D_UNICODE -DUNICODE "-I$(QTDIR)include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I.\.GeneratedFiles" "-fStdAfx.h" "-f../ftnoir_tracker_ht.h"
" - AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)" - Outputs="".\.GeneratedFiles$(ConfigurationName)\moc_$(InputName).cpp"" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCustomBuildTool" - Description="Moc'ing ftnoir_tracker_ht.h..." - CommandLine=""$(QTDIR)\bin\moc.exe" "$(InputPath)" -o ".\.GeneratedFiles$(ConfigurationName)\moc_$(InputName).cpp" -DWIN32 -DNDEBUG -D_WINDOWS -D_USRDLL -DFTNOIR_TRACKER_HT_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DFTNOIR_TRACKER_BASE_LIB -D_WINDLL -D_UNICODE -DUNICODE "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I.\.GeneratedFiles" "-IC:\Program Files\Microsoft SDKs\Windows\v6.0A\Include"
" - AdditionalDependencies=""$(QTDIR)\bin\moc.exe";$(InputPath)" - Outputs="".\.GeneratedFiles$(ConfigurationName)\moc_$(InputName).cpp"" - /> - </FileConfiguration> - </File> - <File - RelativePath=".\ftnoir_tracker_ht_dll.h" - > - </File> - <File - RelativePath=".\headtracker-ftnoir.h" - > - </File> - <File - RelativePath=".\ht-api.h" - > - </File> - <File - RelativePath=".\stdafx.h" - > - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="qrc;*" - UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}" - ParseFiles="false" - > - <File - RelativePath=".\Tracker.qrc" - > - <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\SeeingMachines.ico" - Outputs=".\.GeneratedFiles\qrc_$(InputName).cpp" - /> - </FileConfiguration> - <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\SeeingMachines.ico" - Outputs=".\.GeneratedFiles\qrc_$(InputName).cpp" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Generated Files" - Filter="moc;h;cpp" - UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}" - > - <File - RelativePath=".\.generatedfiles\qrc_Tracker.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="0" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="0" - /> - </FileConfiguration> - </File> - <File - RelativePath=".\.generatedfiles\ui_TrackerControls.h" - > - </File> - <Filter - Name="Debug" - Filter="cpp;moc" - SourceControlFiles="false" - > - <File - RelativePath=".\.GeneratedFilesDebug\moc_ftnoir_tracker_ht.cpp" - > - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Release" - Filter="cpp;moc" - SourceControlFiles="false" - > - <File - RelativePath=".\.GeneratedFilesRelease\moc_ftnoir_tracker_ht.cpp" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - </Filter> - </Filter> - <Filter - Name="Form Files" - Filter="ui" - UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}" - > - <File - RelativePath=".\TrackerControls.ui" - > - <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> - <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> - </File> - </Filter> - </Files> - <Globals> - <Global - Name="lupdateOnBuild" - Value="1" - /> - <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_Tracker_HT/Tracker.qrc b/FTNoIR_Tracker_HT/Tracker.qrc deleted file mode 100644 index 9627f700..00000000 --- a/FTNoIR_Tracker_HT/Tracker.qrc +++ /dev/null @@ -1,5 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>images/HT.ico</file> - </qresource> -</RCC> diff --git a/FTNoIR_Tracker_HT/TrackerControls.ui b/FTNoIR_Tracker_HT/TrackerControls.ui deleted file mode 100644 index 0a1bc3ae..00000000 --- a/FTNoIR_Tracker_HT/TrackerControls.ui +++ /dev/null @@ -1,295 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>Form</class> - <widget class="QWidget" name="Form"> - <property name="windowModality"> - <enum>Qt::NonModal</enum> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>500</width> - <height>160</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>500</width> - <height>160</height> - </size> - </property> - <property name="windowTitle"> - <string>HT tracker settings</string> - </property> - <widget class="QLabel" name="label"> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>141</width> - <height>16</height> - </rect> - </property> - <property name="text"> - <string>Horizontal field of view</string> - </property> - </widget> - <widget class="QDoubleSpinBox" name="cameraFOV"> - <property name="geometry"> - <rect> - <x>130</x> - <y>10</y> - <width>251</width> - <height>22</height> - </rect> - </property> - <property name="locale"> - <locale language="English" country="UnitedStates"/> - </property> - <property name="minimum"> - <double>35.000000000000000</double> - </property> - <property name="maximum"> - <double>180.000000000000000</double> - </property> - <property name="value"> - <double>69.000000000000000</double> - </property> - </widget> - <widget class="QLabel" name="label_2"> - <property name="geometry"> - <rect> - <x>10</x> - <y>40</y> - <width>101</width> - <height>16</height> - </rect> - </property> - <property name="text"> - <string>Frames per second</string> - </property> - </widget> - <widget class="QComboBox" name="cameraFPS"> - <property name="geometry"> - <rect> - <x>130</x> - <y>40</y> - <width>251</width> - <height>22</height> - </rect> - </property> - <item> - <property name="text"> - <string notr="true">Default</string> - </property> - </item> - <item> - <property name="text"> - <string>30</string> - </property> - </item> - <item> - <property name="text"> - <string>60</string> - </property> - </item> - <item> - <property name="text"> - <string>120</string> - </property> - </item> - </widget> - <widget class="QLabel" name="label_3"> - <property name="geometry"> - <rect> - <x>10</x> - <y>70</y> - <width>71</width> - <height>16</height> - </rect> - </property> - <property name="text"> - <string>Camera name</string> - </property> - </widget> - <widget class="QPushButton" name="buttonOK"> - <property name="geometry"> - <rect> - <x>340</x> - <y>130</y> - <width>75</width> - <height>23</height> - </rect> - </property> - <property name="text"> - <string>OK</string> - </property> - </widget> - <widget class="QPushButton" name="buttonCancel"> - <property name="geometry"> - <rect> - <x>420</x> - <y>130</y> - <width>75</width> - <height>23</height> - </rect> - </property> - <property name="text"> - <string>Cancel</string> - </property> - </widget> - <widget class="QGroupBox" name="groupBox"> - <property name="geometry"> - <rect> - <x>390</x> - <y>10</y> - <width>101</width> - <height>81</height> - </rect> - </property> - <property name="title"> - <string>Enable axes</string> - </property> - <widget class="QCheckBox" name="rx"> - <property name="geometry"> - <rect> - <x>10</x> - <y>20</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>RX</string> - </property> - </widget> - <widget class="QCheckBox" name="ry"> - <property name="geometry"> - <rect> - <x>10</x> - <y>40</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>RY</string> - </property> - </widget> - <widget class="QCheckBox" name="rz"> - <property name="geometry"> - <rect> - <x>10</x> - <y>60</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>RZ</string> - </property> - </widget> - <widget class="QCheckBox" name="tx"> - <property name="geometry"> - <rect> - <x>60</x> - <y>20</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>TX</string> - </property> - </widget> - <widget class="QCheckBox" name="ty"> - <property name="geometry"> - <rect> - <x>60</x> - <y>40</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>TY</string> - </property> - </widget> - <widget class="QCheckBox" name="tz"> - <property name="geometry"> - <rect> - <x>60</x> - <y>60</y> - <width>70</width> - <height>17</height> - </rect> - </property> - <property name="text"> - <string>TZ</string> - </property> - </widget> - </widget> - <widget class="QComboBox" name="cameraName"> - <property name="geometry"> - <rect> - <x>130</x> - <y>70</y> - <width>251</width> - <height>22</height> - </rect> - </property> - </widget> - <widget class="QLabel" name="label_4"> - <property name="geometry"> - <rect> - <x>10</x> - <y>100</y> - <width>61</width> - <height>16</height> - </rect> - </property> - <property name="text"> - <string>Resolution</string> - </property> - </widget> - <widget class="QComboBox" name="resolution"> - <property name="geometry"> - <rect> - <x>130</x> - <y>100</y> - <width>251</width> - <height>22</height> - </rect> - </property> - <item> - <property name="text"> - <string>640x480</string> - </property> - </item> - <item> - <property name="text"> - <string>320x240</string> - </property> - </item> - <item> - <property name="text"> - <string>320x200</string> - </property> - </item> - <item> - <property name="text"> - <string>Default (not recommended!)</string> - </property> - </item> - </widget> - </widget> - <resources/> - <connections/> -</ui> diff --git a/FTNoIR_Tracker_HT/ftnoir_tracker_ht.cpp b/FTNoIR_Tracker_HT/ftnoir_tracker_ht.cpp deleted file mode 100644 index 336ede2d..00000000 --- a/FTNoIR_Tracker_HT/ftnoir_tracker_ht.cpp +++ /dev/null @@ -1,422 +0,0 @@ -#include "stdafx.h" -#include "../ftnoir_tracker_base/ftnoir_tracker_base.h" -#include "headtracker-ftnoir.h" -#include "ftnoir_tracker_ht.h" -#include "ftnoir_tracker_ht_dll.h" -#include "ui_trackercontrols.h" -#include "../facetracknoir/global-settings.h" - -#define WIDGET_WIDTH 250 -#define WIDGET_HEIGHT 188 - -#if defined(_WIN32) || defined(__WIN32) -#include <dshow.h> -#else -#include <unistd.h> -#endif - -// delicious copypasta -static QList<QString> get_camera_names(void) { - QList<QString> ret; -#if defined(_WIN32) || defined(__WIN32) - // Create the System Device Enumerator. - HRESULT hr; - ICreateDevEnum *pSysDevEnum = NULL; - hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, (void **)&pSysDevEnum); - if (FAILED(hr)) - { - return ret; - } - // Obtain a class enumerator for the video compressor category. - IEnumMoniker *pEnumCat = NULL; - hr = pSysDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pEnumCat, 0); - - if (hr == S_OK) { - // Enumerate the monikers. - IMoniker *pMoniker = NULL; - ULONG cFetched; - while (pEnumCat->Next(1, &pMoniker, &cFetched) == S_OK) { - IPropertyBag *pPropBag; - hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pPropBag); - if (SUCCEEDED(hr)) { - // To retrieve the filter's friendly name, do the following: - VARIANT varName; - VariantInit(&varName); - hr = pPropBag->Read(L"FriendlyName", &varName, 0); - if (SUCCEEDED(hr)) - { - // Display the name in your UI somehow. - QString str((QChar*)varName.bstrVal, wcslen(varName.bstrVal)); - ret.append(str); - } - VariantClear(&varName); - - ////// To create an instance of the filter, do the following: - ////IBaseFilter *pFilter; - ////hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter, - //// (void**)&pFilter); - // Now add the filter to the graph. - //Remember to release pFilter later. - pPropBag->Release(); - } - pMoniker->Release(); - } - pEnumCat->Release(); - } - pSysDevEnum->Release(); -#else - for (int i = 0; i < 16; i++) { - char buf[128]; - sprintf(buf, "/dev/video%d", i); - if (access(buf, R_OK | W_OK) == 0) { - ret.append(buf); - } else { - break; - } - } -#endif - return ret; -} - -typedef struct { - int width; - int height; -} resolution_tuple; - -static resolution_tuple resolution_choices[] = { - { 0, 0 }, - { 640, 480 }, - { 320, 240 }, - { 320, 200 }, - { 0, 0 } -}; - -static void load_settings(ht_config_t* config, Tracker* tracker) -{ - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); - QString currentFile = settings.value( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); - - iniFile.beginGroup( "HT-Tracker" ); - config->classification_delay = 4000; - config->field_of_view = iniFile.value("fov", 69).toFloat(); - config->pyrlk_pyramids = 3; - config->pyrlk_win_size_w = config->pyrlk_win_size_h = 21; - config->max_keypoints = 250; - config->keypoint_quality = 12; - config->keypoint_distance = 2.3f; - config->keypoint_3distance = 6; - //config->force_width = 640; - //config->force_height = 480; - config->force_fps = iniFile.value("fps", 0).toInt(); - config->camera_index = iniFile.value("camera-index", -1).toInt(); - config->ransac_num_iters = 100; - config->ransac_max_reprojection_error = 6.5f; - config->ransac_max_inlier_error = 6.5f; - config->ransac_max_mean_error = 4.0f; - config->ransac_abs_max_mean_error = 7.0f; - config->debug = 0; - config->ransac_min_features = 0.75f; - int res = iniFile.value("resolution", 0).toInt(); - if (res < 0 || res >= (int)(sizeof(*resolution_choices) / sizeof(resolution_tuple))) - res = 0; - resolution_tuple r = resolution_choices[res]; - config->force_width = r.width; - config->force_height = r.height; - if (tracker) - { - tracker->enableRX = iniFile.value("enable-rx", true).toBool(); - tracker->enableRY = iniFile.value("enable-ry", true).toBool(); - tracker->enableRZ = iniFile.value("enable-rz", true).toBool(); - tracker->enableTX = iniFile.value("enable-tx", true).toBool(); - tracker->enableTY = iniFile.value("enable-ty", true).toBool(); - tracker->enableTZ = iniFile.value("enable-tz", true).toBool(); - } - iniFile.endGroup(); -} - -Tracker::Tracker() : lck_shm(HT_SHM_NAME, HT_MUTEX_NAME, sizeof(ht_shm_t)), fresh(false) -{ - videoWidget = NULL; - layout = NULL; - enableRX = enableRY = enableRZ = enableTX = enableTY = enableTZ = true; - shm = (ht_shm_t*) lck_shm.mem; - shm->terminate = 0; - load_settings(&shm->config, this); - shm->result.filled = false; -} - -Tracker::~Tracker() -{ - subprocess.kill(); - if (shm) - shm->terminate = true; - if (layout) - delete layout; - if (videoWidget) - delete videoWidget; -} - -void Tracker::StartTracker(QFrame* videoframe) -{ - videoframe->setAttribute(Qt::WA_NativeWindow); - videoframe->show(); - videoWidget = new VideoWidget(videoframe); - QHBoxLayout* layout = new QHBoxLayout(); - layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(videoWidget); - if (videoframe->layout()) - delete videoframe->layout(); - videoframe->setLayout(layout); - videoWidget->resize(WIDGET_WIDTH, WIDGET_HEIGHT); - videoWidget->show(); - this->layout = layout; - load_settings(&shm->config, this); - shm->frame.channels = shm->frame.width = shm->frame.height = 0; - shm->pause = shm->terminate = shm->running = false; - shm->timer = 0; - subprocess.setWorkingDirectory(QCoreApplication::applicationDirPath() + "/tracker-ht"); -#if defined(_WIN32) || defined(__WIN32) - subprocess.start("\"" + QCoreApplication::applicationDirPath() + "/tracker-ht/headtracker-ftnoir" + "\""); -#else - subprocess.start(QCoreApplication::applicationDirPath() + "/tracker-ht/headtracker-ftnoir"); -#endif - connect(&timer, SIGNAL(timeout()), this, SLOT(paint_widget())); - timer.start(15); -} - -void Tracker::paint_widget() { - if (fresh) { - fresh = false; - videoWidget->update(); - } -} - -bool Tracker::GiveHeadPoseData(THeadPoseData* data) -{ - bool ret = false; - - lck_shm.lock(); - shm->timer = 0; - if (shm->frame.width > 0) - { - videoWidget->updateImage(shm->frame.frame, shm->frame.width, shm->frame.height); - //memcpy(foo, shm->frame.frame, shm->frame.width * shm->frame.height * 3); - fresh = true; - } - if (shm->result.filled) { - if (enableRX) - data->yaw = shm->result.rotx; - if (enableRY) - data->pitch = shm->result.roty; - if (enableRZ) - data->roll = shm->result.rotz; - if (enableTX) - data->x = shm->result.tx; - if (enableTY) - data->y = shm->result.ty; - if (enableTZ) - data->z = shm->result.tz; - ret = true; - } - lck_shm.unlock(); - - return ret; -} - -//----------------------------------------------------------------------------- -void TrackerDll::getFullName(QString *strToBeFilled) -{ - *strToBeFilled = "HT 0.7"; -} - -void TrackerDll::getShortName(QString *strToBeFilled) -{ - *strToBeFilled = "HT"; -} - -void TrackerDll::getDescription(QString *strToBeFilled) -{ - *strToBeFilled = ""; -} - -void TrackerDll::getIcon(QIcon *icon) -{ - *icon = QIcon(":/images/ht.png"); -} - - -//----------------------------------------------------------------------------- -//#pragma comment(linker, "/export:GetTrackerDll=_GetTrackerDll@0") - -extern "C" FTNOIR_TRACKER_BASE_EXPORT Metadata* CALLING_CONVENTION GetMetadata() -{ - return new TrackerDll; -} - -//#pragma comment(linker, "/export:GetTracker=_GetTracker@0") - -extern "C" FTNOIR_TRACKER_BASE_EXPORT void* CALLING_CONVENTION GetConstructor() -{ - return (ITracker*) new Tracker; -} - -//////////////////////////////////////////////////////////////////////////////// -// Factory function that creates instances if the Tracker-settings dialog object. - -// Export both decorated and undecorated names. -// GetTrackerDialog - Undecorated name, which can be easily used with GetProcAddress -// Win32 API function. -// _GetTrackerDialog@0 - Common name decoration for __stdcall functions in C language. -//#pragma comment(linker, "/export:GetTrackerDialog=_GetTrackerDialog@0") - -extern "C" FTNOIR_TRACKER_BASE_EXPORT void* CALLING_CONVENTION GetDialog( ) -{ - return (ITrackerDialog*) new TrackerControls; -} - -TrackerControls::TrackerControls() -{ - ui.setupUi(this); - loadSettings(); - connect(ui.cameraName, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.cameraFPS, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.cameraFOV, SIGNAL(valueChanged(double)), this, SLOT(settingChanged(double))); - connect(ui.rx, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.ry, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.rz, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.tx, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.ty, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.tz, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); - connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(doCancel())); - connect(ui.buttonOK, SIGNAL(clicked()), this, SLOT(doOK())); - settingsDirty = false; -} - -TrackerControls::~TrackerControls() -{ -} - -void TrackerControls::showEvent(QShowEvent *event) -{ -} - -void TrackerControls::Initialize(QWidget* parent) -{ - show(); -} - -void TrackerControls::loadSettings() -{ - ui.cameraName->clear(); - QList<QString> names = get_camera_names(); - names.prepend("Any available"); - ui.cameraName->addItems(names); - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); - QString currentFile = settings.value( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); - iniFile.beginGroup( "HT-Tracker" ); - ui.cameraName->setCurrentIndex(iniFile.value("camera-index", -1).toInt() + 1); - ui.cameraFOV->setValue(iniFile.value("fov", 69).toFloat()); - int fps; - switch (iniFile.value("fps", 0).toInt()) - { - default: - case 0: - fps = 0; - break; - case 30: - fps = 1; - break; - case 60: - fps = 2; - break; - case 120: - fps = 3; - break; - } - ui.cameraFPS->setCurrentIndex(fps); - ui.rx->setCheckState(iniFile.value("enable-rx", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.ry->setCheckState(iniFile.value("enable-ry", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.rz->setCheckState(iniFile.value("enable-rz", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.tx->setCheckState(iniFile.value("enable-tx", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.ty->setCheckState(iniFile.value("enable-ty", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.tz->setCheckState(iniFile.value("enable-tz", true).toBool() ? Qt::Checked : Qt::Unchecked); - ui.resolution->setCurrentIndex(iniFile.value("resolution", 0).toInt()); - iniFile.endGroup(); - settingsDirty = false; -} - -void TrackerControls::save() -{ - QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); - QString currentFile = settings.value( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); - QSettings iniFile( currentFile, QSettings::IniFormat ); - - iniFile.beginGroup( "HT-Tracker" ); - iniFile.setValue("fov", ui.cameraFOV->value()); - int fps; - switch (ui.cameraFPS->currentIndex()) - { - case 0: - default: - fps = 0; - break; - case 1: - fps = 30; - break; - case 2: - fps = 60; - break; - case 3: - fps = 120; - break; - } - iniFile.setValue("fps", fps); - iniFile.setValue("camera-index", ui.cameraName->currentIndex() - 1); - iniFile.setValue("enable-rx", ui.rx->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("enable-ry", ui.ry->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("enable-rz", ui.rz->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("enable-tx", ui.tx->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("enable-ty", ui.ty->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("enable-tz", ui.tz->checkState() != Qt::Unchecked ? true : false); - iniFile.setValue("resolution", ui.resolution->currentIndex()); - iniFile.endGroup(); - settingsDirty = false; -} - -void TrackerControls::doOK() -{ - save(); - this->close(); -} - -void TrackerControls::doCancel() -{ - 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 ); - - 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(); - } -} diff --git a/FTNoIR_Tracker_HT/ftnoir_tracker_ht.h b/FTNoIR_Tracker_HT/ftnoir_tracker_ht.h deleted file mode 100644 index 1a449dca..00000000 --- a/FTNoIR_Tracker_HT/ftnoir_tracker_ht.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (c) 2013 Stanislaw Halik <sthalik@misaki.pl> - * - * 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. - */ - -#ifndef FTNOIR_TRACKER_HT_H -#define FTNOIR_TRACKER_HT_H - -#include "stdafx.h" -#include "../ftnoir_tracker_base/ftnoir_tracker_base.h" -#include "headtracker-ftnoir.h" -#include "ui_trackercontrols.h" -#include "video_widget.h" -#include "../compat/compat.h" -#include <QObject> -#include <QTimer> - -class Tracker : public QObject, public ITracker -{ - Q_OBJECT -public: - Tracker(); - ~Tracker(); - void StartTracker(QFrame* frame); - bool GiveHeadPoseData(THeadPoseData *data); - bool enableTX, enableTY, enableTZ, enableRX, enableRY, enableRZ; - ht_shm_t* shm; - bool NeedsTimeToFinish() { - return true; - } - void WaitForExit() { - if (shm) { - shm->terminate = true; - subprocess.waitForFinished(5000); - } - subprocess.kill(); - } -private: - QTimer timer; - PortableLockedShm lck_shm; - QProcess subprocess; - VideoWidget* videoWidget; - QHBoxLayout* layout; - volatile bool fresh; -private slots: - void paint_widget(); -}; - -// Widget that has controls for FTNoIR protocol client-settings. -class TrackerControls : public QWidget, public ITrackerDialog -{ - Q_OBJECT -public: - - explicit TrackerControls(); - virtual ~TrackerControls(); - void showEvent ( QShowEvent * event ); - - void Initialize(QWidget *parent); - void registerTracker(ITracker *tracker) {}; - void unRegisterTracker() {}; - -private: - Ui::Form ui; - void loadSettings(); - void save(); - bool settingsDirty; - -private slots: - void doOK(); - void doCancel(); - void settingChanged() { settingsDirty = true; }; - void settingChanged(int) { settingsDirty = true; }; - void settingChanged(double) { settingsDirty = true; }; -}; - -#endif - diff --git a/FTNoIR_Tracker_HT/ftnoir_tracker_ht_dll.h b/FTNoIR_Tracker_HT/ftnoir_tracker_ht_dll.h deleted file mode 100644 index f3bfd381..00000000 --- a/FTNoIR_Tracker_HT/ftnoir_tracker_ht_dll.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (c) 2013 Stanisław Halik <sthalik@misaki.pl> - * - * 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_tracker_base/ftnoir_tracker_base.h" -#include "../facetracknoir/global-settings.h" - -//----------------------------------------------------------------------------- -class TrackerDll : public Metadata -{ - // ITrackerDll interface - void Initialize() {} - void getFullName(QString *strToBeFilled); - void getShortName(QString *strToBeFilled); - void getDescription(QString *strToBeFilled); - void getIcon(QIcon *icon); -}; diff --git a/FTNoIR_Tracker_HT/headtracker-ftnoir.h b/FTNoIR_Tracker_HT/headtracker-ftnoir.h deleted file mode 100644 index 48510997..00000000 --- a/FTNoIR_Tracker_HT/headtracker-ftnoir.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once -#include <stdlib.h> -#include <stdio.h> -#include "ht-api.h" - -#define HT_SHM_NAME "ftnoir-tracker-ht-shm" -#define HT_MUTEX_NAME "ftnoir-tracker-ht-mutex" - -#define HT_MAX_VIDEO_WIDTH 2048 -#define HT_MAX_VIDEO_HEIGHT 1536 -#define HT_MAX_VIDEO_CHANNELS 3 - -typedef struct { - int width, height, channels; - unsigned char frame[HT_MAX_VIDEO_WIDTH * HT_MAX_VIDEO_HEIGHT * HT_MAX_VIDEO_CHANNELS]; -} ht_video_t; - -typedef struct { - ht_video_t frame; - ht_config_t config; - ht_result_t result; - volatile int timer; - volatile bool pause, terminate, running; -} ht_shm_t; diff --git a/FTNoIR_Tracker_HT/ht-api.h b/FTNoIR_Tracker_HT/ht-api.h deleted file mode 100644 index ac8d45cf..00000000 --- a/FTNoIR_Tracker_HT/ht-api.h +++ /dev/null @@ -1,85 +0,0 @@ -#pragma once -#ifndef HT_API -#ifndef __cplusplus -# define HT_EXTERN -#else -# define HT_EXTERN extern "C" -#endif -# if defined(_WIN32) && !defined(MINGW) -# define HT_API(t) HT_EXTERN __declspec(dllexport) t __stdcall -# else -# define HT_API(t) HT_EXTERN t -# endif -#endif -#if !defined(_WIN32) && !defined(_isnan) -# define _isnan isnan -#endif -#include <stdio.h> -struct ht_context; -typedef struct ht_context headtracker_t; - -typedef struct ht_config { - float field_of_view; - float classification_delay; - int pyrlk_pyramids; - int pyrlk_win_size_w; - int pyrlk_win_size_h; - float ransac_max_inlier_error; - float ransac_max_reprojection_error; - int max_keypoints; - int keypoint_quality; - float keypoint_distance; - float keypoint_3distance; - int force_width; - int force_height; - int force_fps; - int camera_index; - bool debug; - int ransac_num_iters; - float ransac_min_features; - float ransac_max_mean_error; - float ransac_abs_max_mean_error; -} ht_config_t; - -typedef struct { - double rotx, roty, rotz; - double tx, ty, tz; - bool filled; -} ht_result_t; - -typedef enum { - cfg_type_float = 0, - cfg_type_int = 1, - cfg_type_bool = 2, - cfg_type_double = 3 -} ht_cfg_type_t; - -typedef union -{ - double d; - float f; - int i; -} ht_cfg_value_t; - -typedef struct { - const char* name; - int offset; - ht_cfg_type_t type; - ht_cfg_value_t default_value; - ht_cfg_value_t min; - ht_cfg_value_t max; - const char* docstring; -} ht_reflection_t; - -typedef struct { - int rows, cols, channels; - unsigned char* data; -} ht_frame_t; - -HT_API(headtracker_t*) ht_make_context(const ht_config_t* config, const char* filename); -HT_API(void) ht_load_config(FILE* stream, ht_config_t* cfg); -HT_API(void) ht_free_context(headtracker_t* ctx); -HT_API(void) ht_get_bgr_frame(headtracker_t* ctx, ht_frame_t* ret); -HT_API(void) ht_make_config(ht_config_t* cfg); -HT_API(bool) ht_cycle(headtracker_t* ctx, ht_result_t* euler); -HT_API(void) ht_reset(headtracker_t* ctx); diff --git a/FTNoIR_Tracker_HT/images/HT.ico b/FTNoIR_Tracker_HT/images/HT.ico Binary files differdeleted file mode 100644 index 7555ce25..00000000 --- a/FTNoIR_Tracker_HT/images/HT.ico +++ /dev/null diff --git a/FTNoIR_Tracker_HT/stdafx.h b/FTNoIR_Tracker_HT/stdafx.h deleted file mode 100644 index 0e532c9f..00000000 --- a/FTNoIR_Tracker_HT/stdafx.h +++ /dev/null @@ -1,14 +0,0 @@ -#include <QWidget> -#include <QMessageBox> -#include <QProcess> -#include <QImage> -#include <QLabel> -#include <QCoreApplication> -#include <QSettings> -#include <QIcon> -#include <QHBoxLayout> -#include <QTimer> -#include <QPainter> -#include <QPaintEvent> -#include <QList> -#include <QString> |