diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2013-04-02 18:41:01 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2013-04-02 18:41:01 +0200 |
commit | 8303597a865400a363ae574ccde819302495f498 (patch) | |
tree | c83b383b3ec818f610cc6137f2b72ee7b4173b09 /ftnoir_filter_ewma2 | |
parent | 8adf6b1650af6027f28db12ca2b4de92a3fac11d (diff) |
Just put everything new in. Conflict resolution will be later
Diffstat (limited to 'ftnoir_filter_ewma2')
-rw-r--r-- | ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui | 587 | ||||
-rw-r--r-- | ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp | 19 | ||||
-rw-r--r-- | ftnoir_filter_ewma2/ftnoir_filter_ewma2.h | 18 | ||||
-rw-r--r-- | ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp | 12 | ||||
-rw-r--r-- | ftnoir_filter_ewma2/ftnoir_filter_ewma_dll.cpp | 5 |
5 files changed, 614 insertions, 27 deletions
diff --git a/ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui b/ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui new file mode 100644 index 00000000..0f31bcd3 --- /dev/null +++ b/ftnoir_filter_ewma2/ftnoir_ewma_filtercontrols.ui @@ -0,0 +1,587 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>UICFilterControls</class> + <widget class="QWidget" name="UICFilterControls"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>371</width> + <height>380</height> + </rect> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>380</height> + </size> + </property> + <property name="windowTitle"> + <string>EWMA2 Filter settings FaceTrackNoIR</string> + </property> + <property name="windowIcon"> + <iconset> + images/facetracknoir.png + </iconset> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <layout class="QVBoxLayout" name="_vertical_layout"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> + </property> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="4" column="3"> + <widget class="QLabel" name="lblInvert1_5"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>pow</string> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QSpinBox" name="spinPowCurve"> + <property name="minimumSize"> + <size> + <width>40</width> + <height>22</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background:none;</string> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="singleStep"> + <number>5</number> + </property> + <property name="value"> + <number>10</number> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QSlider" name="powCurve"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>15</height> + </size> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="pageStep"> + <number>10</number> + </property> + <property name="value"> + <number>10</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + <item row="3" column="3"> + <widget class="QLabel" name="lblInvert1_4"> + <property name="minimumSize"> + <size> + <width>35</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>frames</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="lblInvert1_7"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Max.</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="lblInvert1_8"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Curve</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QSpinBox" name="spinMinSmooth"> + <property name="minimumSize"> + <size> + <width>40</width> + <height>22</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background:none;</string> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="singleStep"> + <number>5</number> + </property> + <property name="value"> + <number>2</number> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="QLabel" name="lblInvert1"> + <property name="minimumSize"> + <size> + <width>35</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>frames</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QSlider" name="maxSmooth"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>15</height> + </size> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="pageStep"> + <number>10</number> + </property> + <property name="value"> + <number>10</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QSpinBox" name="spinMaxSmooth"> + <property name="minimumSize"> + <size> + <width>40</width> + <height>22</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background:none;</string> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="singleStep"> + <number>5</number> + </property> + <property name="value"> + <number>10</number> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="lblInvert1_6"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>30</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Min.</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QSlider" name="minSmooth"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>15</height> + </size> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + <property name="pageStep"> + <number>10</number> + </property> + <property name="value"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label_4"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>204</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: rgb(214, 214, 214); +border-color: rgb(0, 0, 0);</string> + </property> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <property name="text"> + <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Min. frames:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Defines the way the filter responds to fast movements;</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Higher value: slower response;</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Max. frames:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Defines the way the filter responds to slow movements;</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Higher value: slower response;</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Pow:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Defines the filters 'readiness' to respond to speed changes;</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Higher value = </span><span style=" font-size:10pt; font-weight:600;">higher</span><span style=" font-size:10pt;"> response;</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p></body></html></string> + </property> + <property name="margin"> + <number>5</number> + </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"> + <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>52</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>52</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> + <tabstops> + <tabstop>btnOK</tabstop> + <tabstop>btnCancel</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>minSmooth</sender> + <signal>valueChanged(int)</signal> + <receiver>spinMinSmooth</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>199</x> + <y>22</y> + </hint> + <hint type="destinationlabel"> + <x>337</x> + <y>23</y> + </hint> + </hints> + </connection> + <connection> + <sender>spinMinSmooth</sender> + <signal>valueChanged(int)</signal> + <receiver>minSmooth</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>330</x> + <y>12</y> + </hint> + <hint type="destinationlabel"> + <x>185</x> + <y>17</y> + </hint> + </hints> + </connection> + <connection> + <sender>maxSmooth</sender> + <signal>valueChanged(int)</signal> + <receiver>spinMaxSmooth</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>181</x> + <y>48</y> + </hint> + <hint type="destinationlabel"> + <x>335</x> + <y>54</y> + </hint> + </hints> + </connection> + <connection> + <sender>spinMaxSmooth</sender> + <signal>valueChanged(int)</signal> + <receiver>maxSmooth</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>324</x> + <y>42</y> + </hint> + <hint type="destinationlabel"> + <x>259</x> + <y>43</y> + </hint> + </hints> + </connection> + <connection> + <sender>powCurve</sender> + <signal>valueChanged(int)</signal> + <receiver>spinPowCurve</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>145</x> + <y>74</y> + </hint> + <hint type="destinationlabel"> + <x>339</x> + <y>78</y> + </hint> + </hints> + </connection> + <connection> + <sender>spinPowCurve</sender> + <signal>valueChanged(int)</signal> + <receiver>powCurve</receiver> + <slot>setValue(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>330</x> + <y>69</y> + </hint> + <hint type="destinationlabel"> + <x>176</x> + <y>76</y> + </hint> + </hints> + </connection> + </connections> + <slots> + <slot>startEngineClicked()</slot> + <slot>stopEngineClicked()</slot> + <slot>cameraSettingsClicked()</slot> + </slots> +</ui> diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp b/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp index fac0e13c..5f196533 100644 --- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp +++ b/ftnoir_filter_ewma2/ftnoir_filter_ewma2.cpp @@ -25,7 +25,9 @@ #include "ftnoir_filter_ewma2.h"
#include "math.h"
#include <QDebug>
-
+#include <QWidget>
+#include "facetracknoir/global-settings.h"
+#include <algorithm>
//#define LOG_OUTPUT
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -47,11 +49,6 @@ FTNoIR_Filter::~FTNoIR_Filter() }
-void FTNoIR_Filter::Release()
-{
- delete this;
-}
-
void FTNoIR_Filter::Initialize()
{
qDebug() << "FTNoIR_Filter::Initialize says: Starting ";
@@ -82,7 +79,7 @@ void FTNoIR_Filter::loadSettings() { }
-void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, bool newTarget)
+void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, THeadPoseData *last_post_filter, bool newTarget)
{
//non-optimised version for clarity
float prev_output[6];
@@ -149,7 +146,7 @@ void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, T //normalise the deltas
for (i=0;i<6;i++)
{
- norm_output_delta[i]=std::min(std::max(fabs(output_delta[i])/scale[i],0.0f),1.0f);
+ norm_output_delta[i]=std::min<double>(std::max<double>(fabs(output_delta[i])/scale[i],0.0),1.0);
}
//calculate the alphas
@@ -228,9 +225,9 @@ void FTNoIR_Filter::FilterHeadPoseData(THeadPoseData *current_camera_position, T // GetFilter - Undecorated name, which can be easily used with GetProcAddress
// Win32 API function.
// _GetFilter@0 - Common name decoration for __stdcall functions in C language.
-#pragma comment(linker, "/export:GetFilter=_GetFilter@0")
+//#pragma comment(linker, "/export:GetFilter=_GetFilter@0")
-FTNOIR_FILTER_BASE_EXPORT IFilterPtr __stdcall GetFilter()
+extern "C" FTNOIR_FILTER_BASE_EXPORT void* CALLING_CONVENTION GetConstructor()
{
- return new FTNoIR_Filter;
+ return (IFilter*) new FTNoIR_Filter;
}
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h b/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h index 18afe3bd..cade740f 100644 --- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h +++ b/ftnoir_filter_ewma2/ftnoir_filter_ewma2.h @@ -26,8 +26,10 @@ #ifndef INCLUDED_FTN_FILTER_H
#define INCLUDED_FTN_FILTER_H
-#include "..\ftnoir_filter_base\ftnoir_filter_base.h"
-#include "ui_FTNoIR_FilterControls.h"
+#include "ftnoir_filter_base/ftnoir_filter_base.h"
+#include "facetracknoir/global-settings.h"
+#include "ui_ftnoir_ewma_filtercontrols.h"
+#include <QWidget>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
@@ -38,12 +40,10 @@ class FTNoIR_Filter : public IFilter {
public:
FTNoIR_Filter();
- ~FTNoIR_Filter();
+ ~FTNoIR_Filter();
- void Release();
void Initialize();
- void StartFilter();
- void FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, bool newTarget);
+ void FilterHeadPoseData(THeadPoseData *current_camera_position, THeadPoseData *target_camera_position, THeadPoseData *new_camera_position, THeadPoseData *last_post_filter, bool newTarget);
private:
void loadSettings(); // Load the settings from the INI-file
@@ -76,7 +76,7 @@ public: void showEvent ( QShowEvent * event );
void Release(); // Member functions which are accessible from outside the DLL
- void Initialize(QWidget *parent, IFilterPtr ptr);
+ void Initialize(QWidget *parent, IFilter* ptr);
private:
Ui::UICFilterControls ui;
@@ -86,7 +86,7 @@ private: /** helper **/
bool settingsDirty;
- IFilterPtr pFilter; // If the filter was active when the dialog was opened, this will hold a pointer to the Filter instance
+ IFilter* pFilter; // If the filter was active when the dialog was opened, this will hold a pointer to the Filter instance
private slots:
void doOK();
@@ -98,7 +98,7 @@ private slots: //*******************************************************************************************************
// FaceTrackNoIR Filter DLL. Functions used to get general info on the Filter
//*******************************************************************************************************
-class FTNoIR_FilterDll : public IFilterDll
+class FTNoIR_FilterDll : public Metadata
{
public:
FTNoIR_FilterDll();
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp b/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp index c7798ac0..3e0fdb25 100644 --- a/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp +++ b/ftnoir_filter_ewma2/ftnoir_filter_ewma2_dialog.cpp @@ -22,9 +22,11 @@ * with this program; if not, see <http://www.gnu.org/licenses/>. *
* *
********************************************************************************/
-#include "ftnoir_filter_EWMA2.h"
+#include "ftnoir_filter_ewma2.h"
#include "math.h"
#include <QDebug>
+#include "facetracknoir/global-settings.h"
+#include "ui_ftnoir_ewma_filtercontrols.h"
//*******************************************************************************************************
// FaceTrackNoIR Filter Settings-dialog.
@@ -72,7 +74,7 @@ void FilterControls::Release() //
// Initialize tracker-client-dialog
//
-void FilterControls::Initialize(QWidget *parent, IFilterPtr ptr) {
+void FilterControls::Initialize(QWidget *parent, IFilter* ptr) {
//
// The dialog can be opened, while the Tracker is running.
@@ -189,9 +191,9 @@ void FilterControls::save() { // GetFilterDialog - Undecorated name, which can be easily used with GetProcAddress
// Win32 API function.
// _GetFilterDialog@0 - Common name decoration for __stdcall functions in C language.
-#pragma comment(linker, "/export:GetFilterDialog=_GetFilterDialog@0")
+//#pragma comment(linker, "/export:GetFilterDialog=_GetFilterDialog@0")
-FTNOIR_FILTER_BASE_EXPORT IFilterDialogPtr __stdcall GetFilterDialog( )
+extern "C" FTNOIR_FILTER_BASE_EXPORT void* CALLING_CONVENTION GetDialog( )
{
- return new FilterControls;
+ return (IFilterDialog*) new FilterControls;
}
diff --git a/ftnoir_filter_ewma2/ftnoir_filter_ewma_dll.cpp b/ftnoir_filter_ewma2/ftnoir_filter_ewma_dll.cpp index 4e644446..a01b0661 100644 --- a/ftnoir_filter_ewma2/ftnoir_filter_ewma_dll.cpp +++ b/ftnoir_filter_ewma2/ftnoir_filter_ewma_dll.cpp @@ -32,6 +32,7 @@ */
#include "ftnoir_filter_ewma2.h"
#include <QDebug>
+#include "facetracknoir/global-settings.h"
FTNoIR_FilterDll::FTNoIR_FilterDll() {
}
@@ -48,9 +49,9 @@ FTNoIR_FilterDll::~FTNoIR_FilterDll() // GetFilterDll - Undecorated name, which can be easily used with GetProcAddress
// Win32 API function.
// _GetFilterDll@0 - Common name decoration for __stdcall functions in C language.
-#pragma comment(linker, "/export:GetFilterDll=_GetFilterDll@0")
+//#pragma comment(linker, "/export:GetFilterDll=_GetFilterDll@0")
-FTNOIR_FILTER_BASE_EXPORT IFilterDllPtr __stdcall GetFilterDll()
+extern "C" FTNOIR_FILTER_BASE_EXPORT Metadata* CALLING_CONVENTION GetMetadata()
{
return new FTNoIR_FilterDll;
}
|