diff options
author | Wim Vriend <facetracknoir@gmail.com> | 2012-09-05 17:29:23 +0000 |
---|---|---|
committer | Wim Vriend <facetracknoir@gmail.com> | 2012-09-05 17:29:23 +0000 |
commit | 3f082dbee43e6dbdb5d88fceec49298d0d2bce18 (patch) | |
tree | 2e8efa00c55edb42d637e3e55542b0df58baa79d | |
parent | 30a7bbb84e563d07e1b4ef598f5b57041d5e4a8b (diff) |
Put extra class in the DLL, which only return the name, description(s) and Icon. Loading the Settings dialog for these resulted in loading the entire Settings-window (without showing it). Unwanted behavior...
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@125 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
-rw-r--r-- | FTNoIR_Filter_Accela/FTNoIR_FilterControls.ui | 27 | ||||
-rw-r--r-- | FTNoIR_Filter_Accela/FTNoIR_Filter_accela.h | 43 | ||||
-rw-r--r-- | FTNoIR_Filter_Accela/FTNoIR_Filter_accela.vcproj | 4 | ||||
-rw-r--r-- | FTNoIR_Filter_Accela/ftnoir_filter_accela.cpp | 22 | ||||
-rw-r--r-- | FTNoIR_Filter_Accela/ftnoir_filter_accela_dialog.cpp | 32 | ||||
-rw-r--r-- | FTNoIR_Filter_Base/ftnoir_filter_base.h | 31 | ||||
-rw-r--r-- | FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.h | 39 | ||||
-rw-r--r-- | FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.vcproj | 4 | ||||
-rw-r--r-- | FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2.cpp | 22 | ||||
-rw-r--r-- | FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2_dialog.cpp | 27 |
10 files changed, 102 insertions, 149 deletions
diff --git a/FTNoIR_Filter_Accela/FTNoIR_FilterControls.ui b/FTNoIR_Filter_Accela/FTNoIR_FilterControls.ui index 50599e4d..6171defe 100644 --- a/FTNoIR_Filter_Accela/FTNoIR_FilterControls.ui +++ b/FTNoIR_Filter_Accela/FTNoIR_FilterControls.ui @@ -9,7 +9,7 @@ <rect>
<x>0</x>
<y>0</y>
- <width>518</width>
+ <width>321</width>
<height>349</height>
</rect>
</property>
@@ -43,13 +43,13 @@ </property>
<property name="minimumSize">
<size>
- <width>500</width>
+ <width>300</width>
<height>300</height>
</size>
</property>
<property name="maximumSize">
<size>
- <width>500</width>
+ <width>300</width>
<height>300</height>
</size>
</property>
@@ -63,8 +63,8 @@ <widget class="QFunctionConfigurator" name="scalingConfig">
<property name="geometry">
<rect>
- <x>80</x>
- <y>30</y>
+ <x>20</x>
+ <y>20</y>
<width>215</width>
<height>220</height>
</rect>
@@ -102,10 +102,13 @@ </color>
</property>
<property name="stringInputEGU" stdset="0">
- <string>Input Yaw (degr.)</string>
+ <string>Input</string>
</property>
<property name="stringOutputEGU" stdset="0">
- <string>Output Yaw (degr.)</string>
+ <string>Output</string>
+ </property>
+ <property name="stringCaption" stdset="0">
+ <string>Translation</string>
</property>
</widget>
</widget>
@@ -116,7 +119,7 @@ <widget class="QFunctionConfigurator" name="translationScalingConfig">
<property name="geometry">
<rect>
- <x>30</x>
+ <x>20</x>
<y>20</y>
<width>215</width>
<height>220</height>
@@ -142,8 +145,8 @@ </property>
<property name="colorBezier">
<color>
- <red>255</red>
- <green>170</green>
+ <red>85</red>
+ <green>255</green>
<blue>0</blue>
</color>
</property>
@@ -155,10 +158,10 @@ </color>
</property>
<property name="stringInputEGU" stdset="0">
- <string>Input Yaw (degr.)</string>
+ <string>Input</string>
</property>
<property name="stringOutputEGU" stdset="0">
- <string>Output Yaw (degr.)</string>
+ <string>Output</string>
</property>
</widget>
</widget>
diff --git a/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.h b/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.h index 4b918f5a..fbc3804d 100644 --- a/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.h +++ b/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.h @@ -29,8 +29,10 @@ #include "..\ftnoir_filter_base\ftnoir_filter_base.h"
#include "ui_FTNoIR_FilterControls.h"
#include <FunctionConfig.h>
-//#include <FunctionEditorFrame.h>
+//*******************************************************************************************************
+// FaceTrackNoIR Filter class.
+//*******************************************************************************************************
class FTNoIR_Filter : public IFilter
{
public:
@@ -42,10 +44,6 @@ public: void StartFilter();
void FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, bool newTarget);
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
-
private:
void loadSettings(); // Load the settings from the INI-file
THeadPoseData newHeadPose; // Structure with new headpose
@@ -54,9 +52,6 @@ private: double kFactor, kFactorTranslation;
double kSensitivity, kSensitivityTranslation;
- QString filterFullName; // Filters' name and description
- QString filterShortName;
- QString filterDescription;
FunctionConfig functionConfig;
FunctionConfig translationFunctionConfig;
};
@@ -77,10 +72,7 @@ public: void Release(); // Member functions which are accessible from outside the DLL
void Initialize(QWidget *parent, IFilterPtr ptr);
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
- void getIcon(QIcon *icon);
+
private:
Ui::UICFilterControls ui;
void loadSettings();
@@ -89,9 +81,6 @@ private: /** helper **/
bool settingsDirty;
- QString filterFullName; // Filters' name and description
- QString filterShortName;
- QString filterDescription;
IFilterPtr pFilter; // If the filter was active when the dialog was opened, this will hold a pointer to the Filter instance
FunctionConfig functionConfig;
FunctionConfig translationFunctionConfig;
@@ -102,6 +91,30 @@ private slots: void settingChanged(bool) { settingsDirty = true; };
};
+//*******************************************************************************************************
+// FaceTrackNoIR Filter DLL. Functions used to get general info on the Filter
+//*******************************************************************************************************
+class FTNoIR_FilterDll : public IFilterDll
+{
+public:
+ FTNoIR_FilterDll();
+ ~FTNoIR_FilterDll();
+
+ void Release();
+ void Initialize();
+
+ void getFullName(QString *strToBeFilled);
+ void getShortName(QString *strToBeFilled);
+ void getDescription(QString *strToBeFilled);
+ void getIcon(QIcon *icon);
+
+private:
+ QString filterFullName; // Filters' name and description
+ QString filterShortName;
+ QString filterDescription;
+};
+
+
#endif //INCLUDED_FTN_FILTER_H
//END
diff --git a/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.vcproj b/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.vcproj index 74d39021..b715adba 100644 --- a/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.vcproj +++ b/FTNoIR_Filter_Accela/FTNoIR_Filter_accela.vcproj @@ -175,6 +175,10 @@ RelativePath=".\ftnoir_filter_accela_dialog.cpp"
>
</File>
+ <File
+ RelativePath=".\ftnoir_filter_accela_dll.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
diff --git a/FTNoIR_Filter_Accela/ftnoir_filter_accela.cpp b/FTNoIR_Filter_Accela/ftnoir_filter_accela.cpp index fce05f33..7b1b7008 100644 --- a/FTNoIR_Filter_Accela/ftnoir_filter_accela.cpp +++ b/FTNoIR_Filter_Accela/ftnoir_filter_accela.cpp @@ -19,11 +19,6 @@ FTNoIR_Filter::FTNoIR_Filter() : functionConfig("Accela-Scaling-Rotation", 4, 8),
translationFunctionConfig("Accela-Scaling-Translation", 4, 8)
{
- //populate the description strings
- filterFullName = "Accela Filter mkII";
- filterShortName = "Accela mkII";
- filterDescription = "Accela filter mkII";
-
first_run = true;
loadSettings(); // Load the Settings
}
@@ -155,23 +150,6 @@ void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, T current_camera_position->roll=output[5];
}
-void FTNoIR_Filter::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = filterFullName;
-};
-
-
-void FTNoIR_Filter::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = filterShortName;
-};
-
-
-void FTNoIR_Filter::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = filterDescription;
-};
-
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Filter object.
diff --git a/FTNoIR_Filter_Accela/ftnoir_filter_accela_dialog.cpp b/FTNoIR_Filter_Accela/ftnoir_filter_accela_dialog.cpp index 44d0292e..4f7a478b 100644 --- a/FTNoIR_Filter_Accela/ftnoir_filter_accela_dialog.cpp +++ b/FTNoIR_Filter_Accela/ftnoir_filter_accela_dialog.cpp @@ -39,10 +39,6 @@ FilterControls::FilterControls() : {
ui.setupUi( this );
- //populate the description strings
- filterFullName = "Accela Filter";
- filterShortName = "Accela";
- filterDescription = "Accela Filter";
// Load the settings from the current .INI-file
loadSettings();
connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK()));
@@ -153,8 +149,8 @@ void FilterControls::loadSettings() { functionConfig.loadSettings(iniFile);
translationFunctionConfig.loadSettings(iniFile);
- ui.translationScalingConfig->setConfig(&translationFunctionConfig);
- ui.scalingConfig->setConfig(&functionConfig);
+ ui.translationScalingConfig->setConfig(&translationFunctionConfig, currentFile);
+ ui.scalingConfig->setConfig(&functionConfig, currentFile);
settingsDirty = false;
}
@@ -168,34 +164,14 @@ void FilterControls::save() { QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+ qDebug() << "FTNoIR_Filter::save() says: iniFile = " << currentFile;
+
functionConfig.saveSettings(iniFile);
translationFunctionConfig.saveSettings(iniFile);
settingsDirty = false;
}
-void FilterControls::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = filterFullName;
-};
-
-
-void FilterControls::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = filterShortName;
-};
-
-
-void FilterControls::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = filterDescription;
-};
-
-void FilterControls::getIcon(QIcon *icon)
-{
- *icon = QIcon(":/images/filter-16.png");
-};
-
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Filter-settings dialog object.
diff --git a/FTNoIR_Filter_Base/ftnoir_filter_base.h b/FTNoIR_Filter_Base/ftnoir_filter_base.h index 3d617abc..600243fc 100644 --- a/FTNoIR_Filter_Base/ftnoir_filter_base.h +++ b/FTNoIR_Filter_Base/ftnoir_filter_base.h @@ -22,10 +22,6 @@ struct IFilter virtual void Release() = 0;
virtual void Initialize() = 0;
virtual void FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, bool newTarget) = 0;
-
- virtual void getFullName(QString *strToBeFilled) = 0;
- virtual void getShortName(QString *strToBeFilled) = 0;
- virtual void getDescription(QString *strToBeFilled) = 0;
};
// Handle type. In C++ language the interface type is used.
@@ -58,6 +54,27 @@ struct IFilterDialog {
virtual void Release() = 0; // Member required to enable Auto-remove
virtual void Initialize(QWidget *parent, IFilterPtr ptr) = 0;
+};
+
+// Handle type. In C++ language the interface type is used.
+typedef IFilterDialog* FILTERDIALOGHANDLE;
+
+// Factory function that creates instances of the Filter object.
+EXTERN_C
+FTNOIR_FILTER_BASE_EXPORT
+FILTERDIALOGHANDLE
+__stdcall
+GetFilterDialog(void);
+
+// COM-Like abstract interface.
+// This interface doesn't require __declspec(dllexport/dllimport) specifier.
+// Method calls are dispatched via virtual table.
+// Any C++ compiler can use it.
+// Instances are obtained via factory function.
+struct IFilterDll
+{
+ virtual void Release() = 0; // Member required to enable Auto-remove
+ virtual void Initialize() = 0;
virtual void getFullName(QString *strToBeFilled) = 0;
virtual void getShortName(QString *strToBeFilled) = 0;
@@ -66,14 +83,14 @@ struct IFilterDialog };
// Handle type. In C++ language the interface type is used.
-typedef IFilterDialog* FILTERDIALOGHANDLE;
+typedef IFilterDll* FILTERDLLHANDLE;
// Factory function that creates instances of the Filter object.
EXTERN_C
FTNOIR_FILTER_BASE_EXPORT
-FILTERDIALOGHANDLE
+FILTERDLLHANDLE
__stdcall
-GetFilterDialog(void);
+GetFilterDll(void);
#endif // FTNOIR_FILTER_BASE_H
diff --git a/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.h b/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.h index bd90c1f8..f313d154 100644 --- a/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.h +++ b/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.h @@ -45,10 +45,6 @@ public: void StartFilter();
void FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, bool newTarget);
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
-
private:
void loadSettings(); // Load the settings from the INI-file
THeadPoseData newHeadPose; // Structure with new headpose
@@ -63,11 +59,6 @@ private: float kMinSmoothing;
float kMaxSmoothing;
float kSmoothingScaleCurve;
-
- QString filterFullName; // Filters' name and description
- QString filterShortName;
- QString filterDescription;
-
};
//*******************************************************************************************************
@@ -86,10 +77,6 @@ public: void Release(); // Member functions which are accessible from outside the DLL
void Initialize(QWidget *parent, IFilterPtr ptr);
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
- void getIcon(QIcon *icon);
private:
Ui::UICFilterControls ui;
@@ -99,9 +86,6 @@ private: /** helper **/
bool settingsDirty;
- QString filterFullName; // Filters' name and description
- QString filterShortName;
- QString filterDescription;
IFilterPtr pFilter; // If the filter was active when the dialog was opened, this will hold a pointer to the Filter instance
private slots:
@@ -111,6 +95,29 @@ private slots: void settingChanged( int ) { settingsDirty = true; };
};
+//*******************************************************************************************************
+// FaceTrackNoIR Filter DLL. Functions used to get general info on the Filter
+//*******************************************************************************************************
+class FTNoIR_FilterDll : public IFilterDll
+{
+public:
+ FTNoIR_FilterDll();
+ ~FTNoIR_FilterDll();
+
+ void Release();
+ void Initialize();
+
+ void getFullName(QString *strToBeFilled);
+ void getShortName(QString *strToBeFilled);
+ void getDescription(QString *strToBeFilled);
+ void getIcon(QIcon *icon);
+
+private:
+ QString filterFullName; // Filters' name and description
+ QString filterShortName;
+ QString filterDescription;
+};
+
#endif //INCLUDED_FTN_FILTER_H
//END
diff --git a/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.vcproj b/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.vcproj index 918f8b28..28cf8a82 100644 --- a/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.vcproj +++ b/FTNoIR_Filter_EWMA2/FTNoIR_Filter_EWMA2.vcproj @@ -174,6 +174,10 @@ RelativePath=".\ftnoir_filter_ewma2_dialog.cpp"
>
</File>
+ <File
+ RelativePath=".\ftnoir_filter_ewma_dll.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
diff --git a/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2.cpp b/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2.cpp index 99a4bd98..965cfd73 100644 --- a/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2.cpp +++ b/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2.cpp @@ -36,11 +36,6 @@ FTNoIR_Filter::FTNoIR_Filter()
{
- //populate the description strings
- filterFullName = "EWMA Filter Mk2";
- filterShortName = "EWMA";
- filterDescription = "Exponentially Weighted Moving Average filter with dynamic smoothing parameter";
-
first_run = true;
alpha_smoothing = 0.02f; // this is a constant for now, might be a parameter later
loadSettings(); // Load the Settings
@@ -226,23 +221,6 @@ void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, T return;
}
-void FTNoIR_Filter::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = filterFullName;
-};
-
-
-void FTNoIR_Filter::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = filterShortName;
-};
-
-
-void FTNoIR_Filter::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = filterDescription;
-};
-
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Filter object.
diff --git a/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2_dialog.cpp b/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2_dialog.cpp index 7ffe8bb9..9653d4bc 100644 --- a/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2_dialog.cpp +++ b/FTNoIR_Filter_EWMA2/ftnoir_filter_ewma2_dialog.cpp @@ -37,11 +37,6 @@ QWidget() {
ui.setupUi( this );
- //populate the description strings
- filterFullName = "EWMA Filter Mk2";
- filterShortName = "EWMA";
- filterDescription = "Exponentially Weighted Moving Average filter with dynamic smoothing parameter";
-
QPoint offsetpos(100, 100);
//if (parent) {
// this->move(parent->pos() + offsetpos);
@@ -187,28 +182,6 @@ void FilterControls::save() { settingsDirty = false;
}
-void FilterControls::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = filterFullName;
-};
-
-
-void FilterControls::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = filterShortName;
-};
-
-
-void FilterControls::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = filterDescription;
-};
-
-void FilterControls::getIcon(QIcon *icon)
-{
- *icon = QIcon(":/images/filter-16.png");
-};
-
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Filter-settings dialog object.
|