summaryrefslogtreecommitdiffhomepage
path: root/FTNoIR_Protocol_Base
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2011-04-01 17:16:11 +0000
committerWim Vriend <facetracknoir@gmail.com>2011-04-01 17:16:11 +0000
commit28c091a886e6c98f41d3f5f8b153768b4a589fcd (patch)
treee9744191a2926366b194c47230a91439fe4f3e07 /FTNoIR_Protocol_Base
parent43734bf0f9fa8531b817943756157a2c459886a8 (diff)
Started with placing the protocol's in DLL's. First one: FlightGear.
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@60 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FTNoIR_Protocol_Base')
-rw-r--r--FTNoIR_Protocol_Base/ftnoir_protocol_base.h65
-rw-r--r--FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h12
2 files changed, 77 insertions, 0 deletions
diff --git a/FTNoIR_Protocol_Base/ftnoir_protocol_base.h b/FTNoIR_Protocol_Base/ftnoir_protocol_base.h
new file mode 100644
index 00000000..92372740
--- /dev/null
+++ b/FTNoIR_Protocol_Base/ftnoir_protocol_base.h
@@ -0,0 +1,65 @@
+#ifndef FTNOIR_PROTOCOL_BASE_H
+#define FTNOIR_PROTOCOL_BASE_H
+
+#include "ftnoir_protocol_base_global.h"
+#include "..\ftnoir_tracker_base\ftnoir_tracker_base.h"
+#include <QtGui/QWidget>
+#include <QtGui/QFrame>
+#include "windows.h"
+
+// 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 IProtocol
+{
+ virtual void Release() = 0; // Member required to enable Auto-remove
+ virtual void Initialize() = 0;
+ virtual bool checkServerInstallationOK ( HANDLE handle ) = 0;
+ virtual void sendHeadposeToGame( T6DOF *headpose ) = 0;
+};
+
+// Handle type. In C++ language the iterface type is used.
+typedef IProtocol* PROTOCOLHANDLE;
+
+////////////////////////////////////////////////////////////////////////////////
+//
+#ifdef __cplusplus
+# define EXTERN_C extern "C"
+#else
+# define EXTERN_C
+#endif // __cplusplus
+
+// Factory function that creates instances of the Protocol object.
+EXTERN_C
+FTNOIR_PROTOCOL_BASE_EXPORT
+PROTOCOLHANDLE
+__stdcall
+GetProtocol(
+ 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 IProtocolDialog
+{
+ virtual void Release() = 0; // Member required to enable Auto-remove
+ virtual void Initialize(QWidget *parent) = 0;
+};
+
+// Handle type. In C++ language the iterface type is used.
+typedef IProtocolDialog* PROTOCOLDIALOGHANDLE;
+
+// Factory function that creates instances of the Protocol object.
+EXTERN_C
+FTNOIR_PROTOCOL_BASE_EXPORT
+PROTOCOLDIALOGHANDLE
+__stdcall
+GetProtocolDialog(void);
+
+
+#endif // FTNOIR_PROTOCOL_BASE_H
diff --git a/FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h b/FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h
new file mode 100644
index 00000000..3527bad7
--- /dev/null
+++ b/FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h
@@ -0,0 +1,12 @@
+#ifndef FTNOIR_PROTOCOL_BASE_GLOBAL_H
+#define FTNOIR_PROTOCOL_BASE_GLOBAL_H
+
+#include <Qt/qglobal.h>
+
+#ifdef FTNOIR_PROTOCOL_BASE_LIB
+# define FTNOIR_PROTOCOL_BASE_EXPORT Q_DECL_EXPORT
+#else
+# define FTNOIR_PROTOCOL_BASE_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // FTNOIR_PROTOCOL_BASE_GLOBAL_H