View Single Post
  #215  
Old 02-23-2011, 05:15 AM
albx albx is offline
Approved Member
 
Join Date: Jun 2010
Location: Italy
Posts: 716
Default

Quote:
Originally Posted by Wolf_Rider View Post
FMD....

that is the problem

the alternatives developers have every opportunity to present a clean alternative to developers in seeking inclusion. A consensus was reached very early in the thread on games should be available to alternative headtracking

even when FT uses a an non-TIR interfacing, most users pass that over for the TIR interfacing for its quality.

there is no monopoly (proven) and no proof of anti-competitive behaviour (that cry has been going on for 2 -3 years now)
elaborate that please... what means? now you are climbing on the glass.. what quality have TIR interface that don't have FT?? THEY JUST SEND FUC*ING DATA THROUGH A .DLL

and, for your information, this is the C++ source code to use Freetrack DLL

Code:
/************************************************************************
 *	freetrack_c_interface.c
 *	
 *  A simple command line application which reads the data from FreeTrack
 *	using the FreeTrackClient.dll interface.
 *
 *	Assumes that a copy of the FreeTrackClient.dll is in the same folder,
 *	thought this does not necessarily have to be the same folder as the 
 *	FreeTrack application itself.
 *
 *	Based on code from http://en.wikipedia.org/wiki/Dynamic-link_library
 *
 *	Alastair Moore, December 2007
 *
 ************************************************************************/

//#include <iostream>
//#include <tchar.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>

typedef struct
{
	float yaw;
	float pitch;
	float roll;
	float x;
	float y;
	float z;
	int dataID;
}FreeTrackData;

// DLL function signatures
// These match those given in FTTypes.pas
// WINAPI is macro for __stdcall defined somewhere in the depths of windows.h
typedef bool (WINAPI *importGetData)(FreeTrackData * data);
typedef char *(WINAPI *importGetDllVersion)(void);
typedef void (WINAPI *importReportID)(int name);
typedef char *(WINAPI *importProvider)(void);


int main(int argc, char **argv)
{
		//declare imported function pointers
        importGetData getData;
		importGetDllVersion getDllVersion;
		importReportID	reportID;
		importProvider provider;

		// create variables for exchanging data with the dll
        FreeTrackData data;
		FreeTrackData *pData;
		pData = &data;
		char *pDllVersion;
		int name = 453;
		char *pProvider;


        // Load DLL file
        HINSTANCE hinstLib = LoadLibrary("FreeTrackClient.dll");
        if (hinstLib == NULL) {
                printf("ERROR: unable to load DLL\n");
                return 1;
        }
		else
		{
			printf("dll loaded\n");
		}

        // Get function pointers
        getData = (importGetData)GetProcAddress(hinstLib, "FTGetData");
		getDllVersion = (importGetDllVersion)GetProcAddress(hinstLib, "FTGetDllVersion");
		reportID = (importReportID)GetProcAddress(hinstLib, "FTReportID");
		provider = (importProvider)GetProcAddress(hinstLib, "FTProvider");

		// Check they are valid
        if (getData == NULL) {
                printf("ERROR: unable to find 'FTGetData' function\n");
               FreeLibrary(hinstLib);
                return 1;
        }
		if (getDllVersion == NULL){
				printf("ERROR: unable to find 'FTGetDllVersion' function\n");
               FreeLibrary(hinstLib);
                return 1;
		}
		if (reportID == NULL){
				printf("ERROR: unable to find 'FTReportID' function\n");
               FreeLibrary(hinstLib);
                return 1;
		}
		if (reportID == NULL){
				printf("ERROR: unable to find 'FTProvider' function\n");
               FreeLibrary(hinstLib);
                return 1;
		}

		//	Print the address of each function
		printf("FTGetData is at address: 0x%x\n",getData);
		printf("FTGetDllVersion is at address: 0x%x\n",getDllVersion);
		printf("FTReportID is at address: 0x%x\n",reportID);
		printf("FTProvider is at address: 0x%x\n",provider);

		//	Call each function and display result
		pDllVersion = getDllVersion();
		printf("Dll Version: %s\n", pDllVersion);

		pProvider = provider();
		printf("Provider: %s\n", pProvider);
		
		reportID(name);	//not sure what this does - I guess it tells the dll that I am using it.
		
		system("pause"); //wait till keyboard is pressed before entering main loop
		while( kbhit() != 1)
		{
			system("cls"); //clear screen
			if (getData(pData))
			{
				printf("Record ID: %d\n" , data.dataID);
				printf("Yaw: %5.2f\n" , data.yaw );
				printf("Pitch: %5.2f\n" , data.pitch );
				printf("Roll: %5.2f\n" , data.roll );
				printf("X: %5.2f\n" , data.x );
				printf("Y: %5.2f\n" , data.y );
				printf("Z: %5.2f\n" , data.z );
			}
			else
			{
				printf("Nothing returned from getData\n");
				break;
			}
		}

        // Unload DLL file
        FreeLibrary(hinstLib);

		return 0;
}
the red/bolded text are the coords... that is very easy to include in a game... OK?

dmn... i promised not reply to W_R posts but i had to do

Alberto

Last edited by albx; 02-23-2011 at 05:49 AM.
Reply With Quote