From 28c091a886e6c98f41d3f5f8b153768b4a589fcd Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Fri, 1 Apr 2011 17:16:11 +0000 Subject: 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 --- FTNoIR_Protocol_Base/ftnoir_protocol_base.h | 65 ++++++++++++++++++++++ FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h | 12 ++++ 2 files changed, 77 insertions(+) create mode 100644 FTNoIR_Protocol_Base/ftnoir_protocol_base.h create mode 100644 FTNoIR_Protocol_Base/ftnoir_protocol_base_global.h (limited to 'FTNoIR_Protocol_Base') diff --git a/FTNoIR_Protocol_Base/ftnoir_protocol_base.h b/FTNoIR_Protocol_Base/ftnoir_protocol_base.h new file mode 100644 index 000000000..923727401 --- /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 +#include +#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 000000000..3527bad7b --- /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 + +#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 -- cgit v1.2.3