Revision 70da4fe8

View differences:

tobiictl/App.cpp
1
#include "App.h"
2
#include "MainLoopRunner.h"
3
#include <iostream>
4
#include <iomanip>
5
#include <boost/program_options.hpp>
6
#include <boost/thread.hpp>
7
#include <tobii/sdk/cpp/EyeTrackerBrowser.hpp>
8
#include <tobii/sdk/cpp/EyeTrackerBrowserFactory.hpp>
9
#include <tobii/sdk/cpp/EyeTrackerInfo.hpp>
10
#include <tobii/sdk/cpp/EyeTracker.hpp>
11
#include <tobii/sdk/cpp/UpgradePackage.hpp>
12
#include <tobii/sdk/cpp/SyncManager.hpp>
13

  
14
using ::std::string;
15
using ::std::cout;
16
using ::std::cerr;
17
using ::std::endl;
18
using ::std::ostream;
19

  
20
namespace options = boost::program_options;
21

  
22
using namespace tetio;
23

  
24
static const char tab = '\t';
25

  
26
App::App() :
27
	trackerId_(""), 
28
	trackerFound_(false)
29
{
30
}
31

  
32
int App::run(int argc, char *argv[]) 
33
{
34
	string infoTrackerId;
35
	string trackTrackerId;
36
	options::options_description desc("Usage");
37
	desc.add_options()
38
		("help,h", "Produce help message.")
39
		("list,l", "List available eyetrackers.")
40
		("info,i", options::value<string>(&infoTrackerId), "Print information about the specified eyetracker.")
41
		("track,t", options::value<string>(&trackTrackerId), "Track gaze data using the specified eyetracker.")
42
	;
43

  
44
	options::variables_map vm;
45
	try {
46
		options::store(options::command_line_parser(argc, argv)
47
			.options(desc)
48
			.run(), vm);
49
		options::notify(vm);
50
	}
51
	catch (options::error) {
52
		cerr << "Invalid command-line options given." << endl;
53
	}
54

  
55
	try	{
56
		if (vm.empty() || vm.count("help")) {
57
			cout << desc;
58
		}
59
		else if (vm.count("list")) {
60
			listEyeTrackers();
61
		}
62
		else if (vm.count("info")){
63
			printEyeTrackerInfo(infoTrackerId);
64
		}
65
		else if (vm.count("track")) {
66
			trackGazeData(trackTrackerId);
67
		}
68
	}
69
	catch(tetio::EyeTrackerException &e) {
70
		cerr << "\n*** Error! Caught EyeTrackerException with error code " << e.getErrorCode() << " ***\n\n";
71
	}
72
	catch(std::exception &e) {
73
		cerr << "\n*** Error! Caught unknown exception: '" << e.what() << "'***\n\n";
74
	}
75

  
76
	return 0;
77
}
78

  
79
void App::onEyeTrackerBrowserEventList(EyeTrackerBrowser::event_type_t type, EyeTrackerInfo::pointer_t info)
80
{
81
	if (type == EyeTrackerBrowser::TRACKER_FOUND) {
82
		cout
83
			<< std::setw(18) << std::left << info->getProductId() << tab
84
			<< std::setw(5) << std::left << info->getStatus() << tab
85
			<< std::setw(5) << std::left << info->getGeneration() << tab
86
			<< std::setw(13) << std::left << info->getModel() << tab
87
			<< std::setw(15) << std::left << info->getGivenName() << tab
88
			<< info->getVersion()
89
			<< endl;
90
	}
91
}
92

  
93
void startEyeTrackerLookUp(EyeTrackerBrowser::pointer_t browser, std::string browsingMessage)
94
{
95
	browser->start();
96
	// wait for eye trackers to respond.
97
#ifdef __APPLE__
98
    // Slight different bonjuor behaviour on Mac vs Linux/Windows, ... On MAC this needs to be > 30 seconds
99
	cout << browsingMessage << endl;
100
	boost::this_thread::sleep(boost::posix_time::milliseconds(60000)); 
101
#else		
102
	boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
103
#endif
104
	browser->stop(); // NOTE this is a blocking operation.
105
}
106

  
107
void App::listEyeTrackers()
108
{
109
	cout << "Browsing for Eye Trackers..." << endl;
110

  
111
	MainLoopRunner runner;
112
	runner.start();
113
	EyeTrackerBrowser::pointer_t browser(EyeTrackerBrowserFactory::createBrowser(runner.getMainLoop()));
114
	browser->addEventListener(boost::bind(&App::onEyeTrackerBrowserEventList, this, _1, _2));
115
	startEyeTrackerLookUp(browser, "Browsing for eye trackers, please wait ...");
116
}
117

  
118
void App::onEyeTrackerBrowserEventPrintInfo(EyeTrackerBrowser::event_type_t type, EyeTrackerInfo::pointer_t info)
119
{
120
	if (type == EyeTrackerBrowser::TRACKER_FOUND && info->getProductId() == trackerId_) 
121
	{
122
		trackerFound_ = true;
123

  
124
		cout
125
			<< "Product ID: " << info->getProductId() << endl
126
			<< "Given name: " << info->getGivenName() << endl
127
			<< "Model:      " << info->getModel() << endl
128
			<< "Version:    " << info->getVersion() << endl
129
			<< "Status:     " << info->getStatus() << endl;
130
	}
131
}
132

  
133
void App::printEyeTrackerInfo(std::string& trackerId)
134
{
135
	cout << "Printing info about Eye Tracker: " << trackerId << endl;
136
	trackerId_ = trackerId;
137
	trackerFound_ = false;
138

  
139
	MainLoopRunner runner;
140
	runner.start();
141
	EyeTrackerBrowser::pointer_t browser(EyeTrackerBrowserFactory::createBrowser(runner.getMainLoop()));
142
	browser->addEventListener(boost::bind(&App::onEyeTrackerBrowserEventPrintInfo, this, _1, _2));
143
	startEyeTrackerLookUp(browser, "Browsing for " + trackerId + ", please wait ...");
144
	
145
	if(!trackerFound_)
146
	{
147
		cout << "Could not find any tracker with name: " << trackerId_ << endl;
148
	}
149
}
150

  
151
static std::string format_short(const tetio::Point2d& p) 
152
{
153
	std::ostringstream out;
154
	out << '(' << p.x << ',' << ' ' << p.y << ')';
155
	return out.str();
156
}
157

  
158
void App::onGazeDataReceived(tetio::GazeDataItem::pointer_t data)
159
{
160
	cout 
161
		<< data->timestamp << tab
162
		<< format_short(data->leftGazePoint2d) << tab
163
		<< format_short(data->rightGazePoint2d) << tab
164
		<< endl;
165
}
166

  
167
void App::trackGazeData(const std::string& trackerId)
168
{
169
	uint32_t tetserverPort = 0;
170
	uint32_t syncPort = 0;
171

  
172
	cout << "Tracking with Eye Tracker: " << trackerId << endl;
173

  
174
	try 
175
	{
176
		EyeTrackerFactory::pointer_t eyeTrackerFactory = EyeTrackerBrowserFactory::createEyeTrackerFactoryByIpAddressOrHostname(trackerId, tetserverPort, syncPort);
177

  
178
		if (eyeTrackerFactory) {
179
			cout << "Connecting ..." << endl;
180
			MainLoopRunner runner;
181
			runner.start();
182

  
183
			EyeTracker::pointer_t tracker(eyeTrackerFactory->createEyeTracker(runner.getMainLoop()));
184

  
185
			tracker->addGazeDataReceivedListener(boost::bind(&App::onGazeDataReceived, this, _1));
186
			tracker->startTracking();
187

  
188
			// sleep for a while. gaze data will be delivered on the MainloopRunner's thread.
189
			boost::this_thread::sleep(boost::posix_time::seconds(3));
190

  
191
			tracker->stopTracking();
192
			// stop the mainloop before the EyeTracker object is destroyed, to ensure that gaze data events
193
			// won't be delivered when the EyeTracker is gone.
194
			runner.stop();
195
		}
196
		else {
197
			cerr << "The specified eyetracker could not be found." << endl;
198
		}
199

  
200
	}
201
	catch (EyeTrackerException e)
202
	{
203
        cout << " " << e.what() << " " << e.getErrorCode() << endl;
204
	}
205
}
tobiictl/App.h
1
#ifndef __APP_H__
2
#define __APP_H__
3

  
4
#include <string>
5
#include <tobii/sdk/cpp/EyeTrackerBrowser.hpp>
6
#include <tobii/sdk/cpp/EyeTrackerBrowserFactory.hpp>
7

  
8
namespace tetio = tobii::sdk::cpp;
9

  
10
// Main class for this sample application.
11
class App
12
{
13
public:
14
	App();
15
	int run(int argc, char *argv[]);
16

  
17
private:
18
	void listEyeTrackers();
19
	void printEyeTrackerInfo(std::string& tracker_id);
20
	void trackGazeData(const std::string& tracker_id);
21

  
22
	void onEyeTrackerBrowserEventList(tetio::EyeTrackerBrowser::event_type_t type, tetio::EyeTrackerInfo::pointer_t info);
23
	void onEyeTrackerBrowserEventPrintInfo(tetio::EyeTrackerBrowser::event_type_t type, tetio::EyeTrackerInfo::pointer_t info);
24
	void onGazeDataReceived(tetio::GazeDataItem::pointer_t data);
25

  
26
	std::string trackerId_;
27
	bool trackerFound_;
28
};
29

  
30
#endif // __APP_H__
tobiictl/Debug/tobiictl.Build.CppClean.log
1
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\mainlooprunner.obj
2
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\app.obj
3
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\main.obj
4
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\vc120.pdb
5
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.ilk
6
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.exe
7
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.pdb
8
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\vc120.idb
9
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\cl.command.1.tlog
10
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\cl.read.1.tlog
11
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\cl.write.1.tlog
12
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\link.command.1.tlog
13
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\link.read.1.tlog
14
c:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-win32\cpp\samples\tobiictl\debug\tobiictl.tlog\link.write.1.tlog
tobiictl/Debug/tobiictl.log
1
Build started 11/19/2015 8:41:37 PM.
2
     1>Project "C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\tobiictl.vcxproj" on node 2 (Build target(s)).
3
     1>ClCompile:
4
         C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /I..\..\Include /IC:\boost /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _WIN32_WINNT=0x0501 /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /analyze- /errorReport:prompt /MP App.cpp MainLoopRunner.cpp
5
         App.cpp
6
         MainLoopRunner.cpp
7
     1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory(348): warning C4996: 'std::_Uninitialized_copy0': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' (App.cpp)
8
                 c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0'
9
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(191) : see reference to function template instantiation '_FwdIt std::uninitialized_copy<I,boost::shared_ptr<void>*>(_InIt,_InIt,_FwdIt)' being compiled
10
                 with
11
                 [
12
                     _FwdIt=boost::shared_ptr<void> *
13
         ,            I=boost::shared_ptr<void> *
14
         ,            _InIt=boost::shared_ptr<void> *
15
                 ]
16
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(178) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_rai<I,false>(I,I,boost::shared_ptr<void> *,const boost::integral_constant<bool,false> &)' being compiled
17
                 with
18
                 [
19
                     T=boost::shared_ptr<void>
20
         ,            I=boost::shared_ptr<void> *
21
                 ]
22
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(178) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_rai<I,false>(I,I,boost::shared_ptr<void> *,const boost::integral_constant<bool,false> &)' being compiled
23
                 with
24
                 [
25
                     T=boost::shared_ptr<void>
26
         ,            I=boost::shared_ptr<void> *
27
                 ]
28
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(204) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_impl<I>(I,I,boost::shared_ptr<void> *,std::random_access_iterator_tag)' being compiled
29
                 with
30
                 [
31
                     T=boost::shared_ptr<void>
32
         ,            I=boost::shared_ptr<void> *
33
                 ]
34
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(204) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_impl<I>(I,I,boost::shared_ptr<void> *,std::random_access_iterator_tag)' being compiled
35
                 with
36
                 [
37
                     T=boost::shared_ptr<void>
38
         ,            I=boost::shared_ptr<void> *
39
                 ]
40
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(288) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_impl<boost::shared_ptr<void>*>(I,I,boost::shared_ptr<void> *)' being compiled
41
                 with
42
                 [
43
                     T=boost::shared_ptr<void>
44
         ,            I=boost::shared_ptr<void> *
45
                 ]
46
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(288) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::copy_impl<boost::shared_ptr<void>*>(I,I,boost::shared_ptr<void> *)' being compiled
47
                 with
48
                 [
49
                     T=boost::shared_ptr<void>
50
         ,            I=boost::shared_ptr<void> *
51
                 ]
52
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(281) : while compiling class template member function 'boost::shared_ptr<void> *boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::move_to_new_buffer(unsigned int,const boost::false_type &)'
53
                 with
54
                 [
55
                     T=boost::shared_ptr<void>
56
                 ]
57
                 c:\boost\boost\signals2\detail\auto_buffer.hpp(303) : see reference to function template instantiation 'boost::shared_ptr<void> *boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>::move_to_new_buffer(unsigned int,const boost::false_type &)' being compiled
58
                 with
59
                 [
60
                     T=boost::shared_ptr<void>
61
                 ]
62
                 c:\boost\boost\signals2\connection.hpp(53) : see reference to class template instantiation 'boost::signals2::detail::auto_buffer<boost::shared_ptr<void>,boost::signals2::detail::store_n_objects<10>,boost::signals2::detail::default_grow_policy,std::allocator<T>>' being compiled
63
                 with
64
                 [
65
                     T=boost::shared_ptr<void>
66
                 ]
67
                 c:\boost\boost\signals2\connection.hpp(55) : see reference to class template instantiation 'boost::signals2::detail::garbage_collecting_lock<Mutex>' being compiled
68
                 c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0'
69
       Link:
70
         C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Debug\tobiictl.exe" /INCREMENTAL /NOLOGO /LIBPATH:..\..\Lib /LIBPATH:C:\boost\lib tetio.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Debug\tobiictl.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Debug\tobiictl.lib" /MACHINE:X86 /SAFESEH Debug\Main.obj
71
         Debug\App.obj
72
         Debug\MainLoopRunner.obj
73
         tobiictl.vcxproj -> C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Debug\tobiictl.exe
74
     1>Done Building Project "C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\tobiictl.vcxproj" (Build target(s)).
75

  
76
Build succeeded.
77

  
78
Time Elapsed 00:00:12.47
tobiictl/Debug/tobiictl.tlog/tobiictl.lastbuildstate
1
#TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
2
Debug|Win32|C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\|
tobiictl/Main.cpp
1
#include "App.h"
2
#include <tobii/sdk/cpp/Library.hpp>
3

  
4
namespace tetio = tobii::sdk::cpp;
5

  
6
int main(int argc, char *argv[])
7
{
8
	tetio::Library::init();
9
	return App().run(argc, argv);
10
}
tobiictl/MainLoopRunner.cpp
1
#include "MainLoopRunner.h"
2
#include <boost/thread.hpp>
3
#include <boost/make_shared.hpp>
4
#include <tobii/sdk/cpp/Library.hpp>
5

  
6
MainLoopRunner::MainLoopRunner() 
7
: threadStarted_(false), thread_(NULL)
8
{
9
}
10

  
11
MainLoopRunner::~MainLoopRunner()
12
{
13
	stop();
14
}
15

  
16
tetio::MainLoop& MainLoopRunner::getMainLoop()
17
{ 
18
	return mainLoop_; 
19
}
20

  
21
void MainLoopRunner::start()
22
{
23
	if (!thread_) {
24
		threadStarted_ = false;
25
		thread_ = new boost::thread(boost::bind(&MainLoopRunner::run, this));
26
		while (!threadStarted_) {
27
			boost::this_thread::sleep(boost::posix_time::milliseconds(0));
28
		}
29
	}
30
}
31

  
32
void MainLoopRunner::stop()
33
{
34
	if (thread_) {
35
		mainLoop_.quit();
36
		thread_->join();
37
		delete thread_;
38
		thread_ = NULL;
39
	}
40
}
41

  
42
void MainLoopRunner::run()
43
{
44
	threadStarted_ = true;
45
	mainLoop_.run();
46
}
tobiictl/MainLoopRunner.h
1
#ifndef __MAINLOOP_RUNNER_H__
2
#define __MAINLOOP_RUNNER_H__
3

  
4
#include <boost/noncopyable.hpp>
5
#include <boost/thread.hpp>
6
#include <tobii/sdk/cpp/MainLoop.hpp>
7

  
8
namespace tetio = tobii::sdk::cpp;
9

  
10
// Thread hosting the main loop.
11
class MainLoopRunner : public boost::noncopyable
12
{
13
public:
14
	MainLoopRunner();
15
	virtual ~MainLoopRunner();
16
	tetio::MainLoop& getMainLoop();
17
	void start();
18
	void stop();
19

  
20
private:
21
	tetio::MainLoop mainLoop_;
22
	volatile bool threadStarted_;
23
	boost::thread* thread_;
24

  
25
	void run();
26
};
27

  
28
#endif // __MAINLOOP_RUNNER_H__
tobiictl/README.txt
1
tobiictl Sample
2
---------------
3
Tobiictl is a command line tool that lets the user find eye trackers on the network, 
4
connect to a specific eye tracker, perform a calibration, and subscribe to data 
5
from the eye tracker. 
6

  
7
The sample comes with full source code, demonstrating how to use the eye tracking 
8
application programming interface from C++. 
9

  
10
Requirements
11
------------
12
The requirements for building the sample are:
13
1) Boost libraries (tested with versions >= v1.40)
14

  
15
Building on Windows (32-bit or 64-bit)
16
--------------------------------------
17
It is possible to build the sample using other versions of visual studio and boost.
18
Just adapt the following steps to match your environment.
19

  
20
1. You need Microsoft Visual Studio 2008.
21
     - Visual Studio 2008 is reffered to as "vc9" in the example. Other versions
22
       of Visual Studio has different names.
23

  
24
2. You need Boost libraries. (this example shows installation of v1.49).
25
     - Download the Boost source code from http://www.boost.org/ and unpack the 
26
       archive to e.g. C:\boost.
27
     - Using a command window, go to the C:\boost\boost_1_49_0 directory (or wherever 
28
       you unpacked the Boost sources).
29
	 - From the "Visual Studio 2008 Command Prompt", build and install Boost with:
30
	     bootstrap vc9
31
	     b2 --toolset=msvc-9.0 --build-type=complete stage
32
	     move stage\lib lib
33
	   or, for 64-bit:
34
         - From the "Visual Studio 2008 x64 Win64 Command Prompt", build and install Boost with:
35
	     bootstrap vc9
36
	     b2 address-model=64 --toolset=msvc-9.0 --build-type=complete stage
37
	     move stage\lib lib64
38
	 - Set the environment variables BOOST_ROOT or BOOST_ROOT_64 to the folder where 
39
	   you unpacked the Boost sources, e.g. C:\boost\boost_1_49_0
40

  
41
3. To build the sample from the command line:
42
     - Install the MSBuild Community Tasks .msi package from https://github.com/loresoft/msbuildtasks/downloads.
43
     - Go to Cpp\Samples\tobiictl and run "build [Win32|x64] [Release|Debug]". 
44

  
45
4.It is now possible to build the sample from VS2008:
46
     - Open tobiictl.vcproj in VS2008 and take off from there.
47

  
48
Building on Linux (Ubuntu 10.04 LTS)
49
-------------------------------------
50
It is possible to build the sample using other versions of boost.
51
Just adapt the following steps to match your environment.
52

  
53
1. You need g++.
54
     - Install it with: sudo apt-get install g++
55
2. You need libssh2
56
     - Install it with “sudo apt-get install libssh2-1-dev”
57
3. You need Boost libraries
58
     - Install it with: sudo apt-get install libboost-all-dev
59
4. To build the sample there is a Makefile, so just run "make".
60

  
61

  
62
Building on Mac OS X
63
--------------------
64
It is possible to build the sample using other versions of boost.
65
Just adapt the following steps to match your environment.
66

  
67
1. You need XCode.
68
     - Install it from the App Store.
69
2. You need libssh2
70
	 - Install it with: sudo port install libssh2 @1.2.7_0+universal
71
3. You need Boost libraries.
72
     - Install it with: sudo port install boost -no_static -no_single +universal +python27
73
4. To build the sample there is a Makefile, so just run "make".
74

  
75

  
76

  
tobiictl/Release/tobiictl.log
1
Build started 10/26/2015 10:25:43 AM.
2
     1>Project "C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\tobiictl.vcxproj" on node 2 (Build target(s)).
3
     1>ClCompile:
4
         C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /I..\..\Include /IC:\boost /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _WIN32_WINNT=0x0501 /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc120.pdb" /Gd /TP /analyze- /errorReport:prompt /MP Main.cpp App.cpp MainLoopRunner.cpp
5
         Main.cpp
6
         App.cpp
7
         MainLoopRunner.cpp
8
       Link:
9
         C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Release\tobiictl.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:..\..\Lib /LIBPATH:C:\boost\lib tetio.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Release\tobiictl.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Release\tobiictl.lib" /MACHINE:X86 /SAFESEH Release\Main.obj
10
         Release\App.obj
11
         Release\MainLoopRunner.obj
12
         Generating code
13
         Finished generating code
14
         tobiictl.vcxproj -> C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\Release\tobiictl.exe
15
     1>Done Building Project "C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\tobiictl.vcxproj" (Build target(s)).
16

  
17
Build succeeded.
18

  
19
Time Elapsed 00:00:12.94
tobiictl/Release/tobiictl.tlog/tobiictl.lastbuildstate
1
#TargetFrameworkVersion=v4.0:PlatformToolSet=v120:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
2
Release|Win32|C:\tobiianalytics\tobii-analytics-sdk-3.0.83-win-Win32\Cpp\Samples\tobiictl\|
tobiictl/build.bat
1
@ECHO OFF
2
REM THis is a small bat file for building the tobiictl, call this batch file in this way   
3
REM
4
REM   build [Win32|x64] [Release|Debug]
5
REM 
6

  
7
IF NOT "%1" == "Win32" IF NOT "%1" == "x64" GOTO FAIL
8
IF NOT "%2" == "Release" IF NOT "%2" == "Debug" GOTO FAIL
9
GOTO BUILD
10

  
11
:FAIL
12
ECHO "Illegal arguments. First argument shall be [Win32|x64] and second argument [Release|Debug]"
13
GOTO END
14

  
15
:BUILD
16

  
17
rem We need to have tetio.dll and the Qt libs to be able to run the code after we build it.
18
if exist ..\..\Lib\tetio.dll (
19
  mkdir Release
20
  mkdir Debug
21
  copy ..\..\Lib\tetio.dll Release
22
  copy ..\..\Lib\tetio.dll Debug
23
) else (
24
  echo File ..\..\Lib\tetio.dll does not exist.
25
  echo Failed to copy ..\..\Lib\tetio.dll to this directory
26
  GOTO END
27
)
28

  
29
MSBuild.exe tobiictl.msproj /fileLogger /property:Platform=%1 /property:Configuration=%2 /verbosity:diag 
30
GOTO END
31

  
32
:END
tobiictl/tobiictl.msproj
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project ToolsVersion="3.5" DefaultTargets="Compile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
	<Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
4

  
5
	<!--
6
		Build properties
7
    -->
8
	<PropertyGroup>
9
		<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
10
		<Platform Condition=" '$(Platform)' == '' ">Win32</Platform>
11
	</PropertyGroup>
12

  
13
	<!--+
14
	    |
15
	    | This target compiles the binary
16
	    |
17
	    +-->
18
	<Target Name="Compile" >
19
		<Message Text="Compiling tobiictl ..." />
20
		<VCBuild Projects="tobiictl.vcproj" Configuration="$(Configuration)" Platform="$(Platform)" Rebuild="true"/>
21
	</Target>
22
	
23
	
24
</Project>
tobiictl/tobiictl.sln
1

2
Microsoft Visual Studio Solution File, Format Version 12.00
3
# Visual Studio 2013
4
VisualStudioVersion = 12.0.21005.1
5
MinimumVisualStudioVersion = 10.0.40219.1
6
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tobiictl", "tobiictl.vcxproj", "{50B149EE-3C08-40BA-83DB-E1DABF63435B}"
7
EndProject
8
Global
9
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
		Debug|Win32 = Debug|Win32
11
		Debug|x64 = Debug|x64
12
		Release|Win32 = Release|Win32
13
		Release|x64 = Release|x64
14
	EndGlobalSection
15
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
16
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Debug|Win32.ActiveCfg = Debug|Win32
17
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Debug|Win32.Build.0 = Debug|Win32
18
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Debug|x64.ActiveCfg = Debug|x64
19
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Debug|x64.Build.0 = Debug|x64
20
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Release|Win32.ActiveCfg = Release|Win32
21
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Release|Win32.Build.0 = Release|Win32
22
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Release|x64.ActiveCfg = Release|x64
23
		{50B149EE-3C08-40BA-83DB-E1DABF63435B}.Release|x64.Build.0 = Release|x64
24
	EndGlobalSection
25
	GlobalSection(SolutionProperties) = preSolution
26
		HideSolutionNode = FALSE
27
	EndGlobalSection
28
EndGlobal
tobiictl/tobiictl.vcproj
1
<?xml version="1.0" encoding="utf-8"?>
2
<VisualStudioProject ProjectType="Visual C++" Version="9.00" Name="tobiictl" ProjectGUID="{50B149EE-3C08-40BA-83DB-E1DABF63435B}" RootNamespace="tobiictl" Keyword="Win32Proj" TargetFrameworkVersion="196613">
3
  <Platforms>
4
    <Platform Name="Win32" />
5
    <Platform Name="x64" />
6
  </Platforms>
7
  <ToolFiles />
8
  <Configurations>
9
    <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1">
10
      <Tool Name="VCPreBuildEventTool" />
11
      <Tool Name="VCCustomBuildTool" />
12
      <Tool Name="VCXMLDataGeneratorTool" />
13
      <Tool Name="VCWebServiceProxyGeneratorTool" />
14
      <Tool Name="VCMIDLTool" />
15
      <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="&quot;..\..\Include&quot;;&quot;$(BOOST_ROOT)&quot;" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501" MinimalRebuild="false" AdditionalOptions="/MP" BasicRuntimeChecks="3" RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" DebugInformationFormat="4" />
16
      <Tool Name="VCManagedResourceCompilerTool" />
17
      <Tool Name="VCResourceCompilerTool" />
18
      <Tool Name="VCPreLinkEventTool" />
19
      <Tool Name="VCLinkerTool" AdditionalDependencies="tetio.lib" LinkIncremental="2" AdditionalLibraryDirectories="&quot;..\..\Lib&quot;;&quot;$(BOOST_ROOT)\lib&quot;" GenerateDebugInformation="true" SubSystem="1" TargetMachine="1" />
20
      <Tool Name="VCALinkTool" />
21
      <Tool Name="VCManifestTool" />
22
      <Tool Name="VCXDCMakeTool" />
23
      <Tool Name="VCBscMakeTool" />
24
      <Tool Name="VCFxCopTool" />
25
      <Tool Name="VCAppVerifierTool" />
26
      <Tool Name="VCPostBuildEventTool" CommandLine="" />
27
    </Configuration>
28
    <Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1">
29
      <Tool Name="VCPreBuildEventTool" />
30
      <Tool Name="VCCustomBuildTool" />
31
      <Tool Name="VCXMLDataGeneratorTool" />
32
      <Tool Name="VCWebServiceProxyGeneratorTool" />
33
      <Tool Name="VCMIDLTool" />
34
      <Tool Name="VCCLCompilerTool" Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="&quot;..\..\Include&quot;;&quot;$(BOOST_ROOT)&quot;" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501" MinimalRebuild="false" AdditionalOptions="/MP" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" WarningLevel="3" DebugInformationFormat="3" />
35
      <Tool Name="VCManagedResourceCompilerTool" />
36
      <Tool Name="VCResourceCompilerTool" />
37
      <Tool Name="VCPreLinkEventTool" />
38
      <Tool Name="VCLinkerTool" AdditionalDependencies="tetio.lib" LinkIncremental="1" AdditionalLibraryDirectories="&quot;..\..\Lib&quot;;&quot;$(BOOST_ROOT)\lib&quot;" GenerateDebugInformation="true" SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" TargetMachine="1" />
39
      <Tool Name="VCALinkTool" />
40
      <Tool Name="VCManifestTool" />
41
      <Tool Name="VCXDCMakeTool" />
42
      <Tool Name="VCBscMakeTool" />
43
      <Tool Name="VCFxCopTool" />
44
      <Tool Name="VCAppVerifierTool" />
45
      <Tool Name="VCPostBuildEventTool" />
46
    </Configuration>
47
    <Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1">
48
      <Tool Name="VCPreBuildEventTool" />
49
      <Tool Name="VCCustomBuildTool" />
50
      <Tool Name="VCXMLDataGeneratorTool" />
51
      <Tool Name="VCWebServiceProxyGeneratorTool" />
52
      <Tool Name="VCMIDLTool" TargetEnvironment="3" />
53
      <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="&quot;..\..\Include&quot;;&quot;$(BOOST_ROOT_64)&quot;" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501" MinimalRebuild="false" AdditionalOptions="/MP" BasicRuntimeChecks="3" RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" DebugInformationFormat="3" />
54
      <Tool Name="VCManagedResourceCompilerTool" />
55
      <Tool Name="VCResourceCompilerTool" />
56
      <Tool Name="VCPreLinkEventTool" />
57
      <Tool Name="VCLinkerTool" AdditionalDependencies="tetio.lib" LinkIncremental="2" AdditionalLibraryDirectories="&quot;..\..\Lib&quot;;&quot;$(BOOST_ROOT_64)\lib64&quot;" GenerateDebugInformation="true" SubSystem="1" TargetMachine="17" />
58
      <Tool Name="VCALinkTool" />
59
      <Tool Name="VCManifestTool" />
60
      <Tool Name="VCXDCMakeTool" />
61
      <Tool Name="VCBscMakeTool" />
62
      <Tool Name="VCFxCopTool" />
63
      <Tool Name="VCAppVerifierTool" />
64
      <Tool Name="VCPostBuildEventTool" CommandLine="" />
65
    </Configuration>
66
    <Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1">
67
      <Tool Name="VCPreBuildEventTool" />
68
      <Tool Name="VCCustomBuildTool" />
69
      <Tool Name="VCXMLDataGeneratorTool" />
70
      <Tool Name="VCWebServiceProxyGeneratorTool" />
71
      <Tool Name="VCMIDLTool" TargetEnvironment="3" />
72
      <Tool Name="VCCLCompilerTool" Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="&quot;..\..\Include&quot;;&quot;$(BOOST_ROOT_64)&quot;" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501" MinimalRebuild="false" AdditionalOptions="/MP" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" WarningLevel="3" DebugInformationFormat="3" />
73
      <Tool Name="VCManagedResourceCompilerTool" />
74
      <Tool Name="VCResourceCompilerTool" />
75
      <Tool Name="VCPreLinkEventTool" />
76
      <Tool Name="VCLinkerTool" AdditionalDependencies="tetio.lib" LinkIncremental="1" AdditionalLibraryDirectories="&quot;..\..\Lib&quot;;&quot;$(BOOST_ROOT_64)\lib64&quot;" GenerateDebugInformation="true" SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" TargetMachine="17" />
77
      <Tool Name="VCALinkTool" />
78
      <Tool Name="VCManifestTool" />
79
      <Tool Name="VCXDCMakeTool" />
80
      <Tool Name="VCBscMakeTool" />
81
      <Tool Name="VCFxCopTool" />
82
      <Tool Name="VCAppVerifierTool" />
83
      <Tool Name="VCPostBuildEventTool" />
84
    </Configuration>
85
  </Configurations>
86
  <References />
87
  <Files>
88
    <Filter Name="Source Files" Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
89
      <File RelativePath="Main.cpp" />
90
      <File RelativePath="App.cpp" />
91
      <File RelativePath="MainLoopRunner.cpp" />
92
      <File RelativePath="App.h" />
93
      <File RelativePath="MainLoopRunner.h" />
94
    </Filter>
95
    <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc;xsd" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" />
96
    <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" />
97
  </Files>
98
  <Globals />
99
</VisualStudioProject>
tobiictl/tobiictl.vcxproj
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
  <ItemGroup Label="ProjectConfigurations">
4
    <ProjectConfiguration Include="Debug|Win32">
5
      <Configuration>Debug</Configuration>
6
      <Platform>Win32</Platform>
7
    </ProjectConfiguration>
8
    <ProjectConfiguration Include="Debug|x64">
9
      <Configuration>Debug</Configuration>
10
      <Platform>x64</Platform>
11
    </ProjectConfiguration>
12
    <ProjectConfiguration Include="Release|Win32">
13
      <Configuration>Release</Configuration>
14
      <Platform>Win32</Platform>
15
    </ProjectConfiguration>
16
    <ProjectConfiguration Include="Release|x64">
17
      <Configuration>Release</Configuration>
18
      <Platform>x64</Platform>
19
    </ProjectConfiguration>
20
  </ItemGroup>
21
  <PropertyGroup Label="Globals">
22
    <ProjectGuid>{50B149EE-3C08-40BA-83DB-E1DABF63435B}</ProjectGuid>
23
    <RootNamespace>tobiictl</RootNamespace>
24
    <Keyword>Win32Proj</Keyword>
25
  </PropertyGroup>
26
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
28
    <ConfigurationType>Application</ConfigurationType>
29
    <PlatformToolset>v120</PlatformToolset>
30
    <CharacterSet>Unicode</CharacterSet>
31
    <WholeProgramOptimization>true</WholeProgramOptimization>
32
  </PropertyGroup>
33
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
34
    <ConfigurationType>Application</ConfigurationType>
35
    <PlatformToolset>v120</PlatformToolset>
36
    <CharacterSet>Unicode</CharacterSet>
37
  </PropertyGroup>
38
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
39
    <ConfigurationType>Application</ConfigurationType>
40
    <PlatformToolset>v120</PlatformToolset>
41
    <CharacterSet>Unicode</CharacterSet>
42
    <WholeProgramOptimization>true</WholeProgramOptimization>
43
  </PropertyGroup>
44
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
45
    <ConfigurationType>Application</ConfigurationType>
46
    <PlatformToolset>v120</PlatformToolset>
47
    <CharacterSet>Unicode</CharacterSet>
48
  </PropertyGroup>
49
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
50
  <ImportGroup Label="ExtensionSettings">
51
  </ImportGroup>
52
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
53
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
54
  </ImportGroup>
55
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
56
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
57
  </ImportGroup>
58
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
59
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60
  </ImportGroup>
61
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
62
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63
  </ImportGroup>
64
  <PropertyGroup Label="UserMacros" />
65
  <PropertyGroup>
66
    <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
67
  </PropertyGroup>
68
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
69
    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
70
    <IntDir>$(Configuration)\</IntDir>
71
    <LinkIncremental>true</LinkIncremental>
72
  </PropertyGroup>
73
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
74
    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
75
    <IntDir>$(Configuration)\</IntDir>
76
    <LinkIncremental>false</LinkIncremental>
77
  </PropertyGroup>
78
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
79
    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
80
    <IntDir>$(Configuration)\</IntDir>
81
    <LinkIncremental>true</LinkIncremental>
82
  </PropertyGroup>
83
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
84
    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
85
    <IntDir>$(Configuration)\</IntDir>
86
    <LinkIncremental>false</LinkIncremental>
87
  </PropertyGroup>
88
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
89
    <ClCompile>
90
      <Optimization>Disabled</Optimization>
91
      <AdditionalIncludeDirectories>..\..\Include;$(BOOST_ROOT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
92
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
93
      <MinimalRebuild>false</MinimalRebuild>
94
      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
95
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
96
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
97
      <PrecompiledHeader />
98
      <WarningLevel>Level3</WarningLevel>
99
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
100
    </ClCompile>
101
    <Link>
102
      <AdditionalDependencies>tetio.lib;%(AdditionalDependencies)</AdditionalDependencies>
103
      <AdditionalLibraryDirectories>..\..\Lib;$(BOOST_ROOT)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
104
      <GenerateDebugInformation>true</GenerateDebugInformation>
105
      <SubSystem>Console</SubSystem>
106
      <TargetMachine>MachineX86</TargetMachine>
107
    </Link>
108
    <PostBuildEvent>
109
      <Command />
110
    </PostBuildEvent>
111
  </ItemDefinitionGroup>
112
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
113
    <ClCompile>
114
      <Optimization>MaxSpeed</Optimization>
115
      <IntrinsicFunctions>true</IntrinsicFunctions>
116
      <AdditionalIncludeDirectories>..\..\Include;$(BOOST_ROOT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
117
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
118
      <MinimalRebuild>false</MinimalRebuild>
119
      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
120
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
121
      <FunctionLevelLinking>true</FunctionLevelLinking>
122
      <PrecompiledHeader />
123
      <WarningLevel>Level3</WarningLevel>
124
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
125
    </ClCompile>
126
    <Link>
127
      <AdditionalDependencies>tetio.lib;%(AdditionalDependencies)</AdditionalDependencies>
128
      <AdditionalLibraryDirectories>..\..\Lib;$(BOOST_ROOT)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
129
      <GenerateDebugInformation>true</GenerateDebugInformation>
130
      <SubSystem>Console</SubSystem>
131
      <OptimizeReferences>true</OptimizeReferences>
132
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
133
      <TargetMachine>MachineX86</TargetMachine>
134
    </Link>
135
  </ItemDefinitionGroup>
136
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
137
    <Midl>
138
      <TargetEnvironment>X64</TargetEnvironment>
139
    </Midl>
140
    <ClCompile>
141
      <Optimization>Disabled</Optimization>
142
      <AdditionalIncludeDirectories>..\..\Include;$(BOOST_ROOT_64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
143
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144
      <MinimalRebuild>false</MinimalRebuild>
145
      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
146
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
147
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
148
      <PrecompiledHeader />
149
      <WarningLevel>Level3</WarningLevel>
150
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
151
    </ClCompile>
152
    <Link>
153
      <AdditionalDependencies>tetio.lib;%(AdditionalDependencies)</AdditionalDependencies>
154
      <AdditionalLibraryDirectories>..\..\Lib;$(BOOST_ROOT_64)\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
155
      <GenerateDebugInformation>true</GenerateDebugInformation>
156
      <SubSystem>Console</SubSystem>
157
      <TargetMachine>MachineX64</TargetMachine>
158
    </Link>
159
    <PostBuildEvent>
160
      <Command />
161
    </PostBuildEvent>
162
  </ItemDefinitionGroup>
163
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
164
    <Midl>
165
      <TargetEnvironment>X64</TargetEnvironment>
166
    </Midl>
167
    <ClCompile>
168
      <Optimization>MaxSpeed</Optimization>
169
      <IntrinsicFunctions>true</IntrinsicFunctions>
170
      <AdditionalIncludeDirectories>..\..\Include;$(BOOST_ROOT_64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
171
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
172
      <MinimalRebuild>false</MinimalRebuild>
173
      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
174
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
175
      <FunctionLevelLinking>true</FunctionLevelLinking>
176
      <PrecompiledHeader />
177
      <WarningLevel>Level3</WarningLevel>
178
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
179
    </ClCompile>
180
    <Link>
181
      <AdditionalDependencies>tetio.lib;%(AdditionalDependencies)</AdditionalDependencies>
182
      <AdditionalLibraryDirectories>..\..\Lib;$(BOOST_ROOT_64)\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
183
      <GenerateDebugInformation>true</GenerateDebugInformation>
184
      <SubSystem>Console</SubSystem>
185
      <OptimizeReferences>true</OptimizeReferences>
186
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
187
      <TargetMachine>MachineX64</TargetMachine>
188
    </Link>
189
  </ItemDefinitionGroup>
190
  <ItemGroup>
191
    <ClCompile Include="Main.cpp" />
192
    <ClCompile Include="App.cpp" />
193
    <ClCompile Include="MainLoopRunner.cpp" />
194
  </ItemGroup>
195
  <ItemGroup>
196
    <ClInclude Include="App.h" />
197
    <ClInclude Include="MainLoopRunner.h" />
198
  </ItemGroup>
199
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
200
  <ImportGroup Label="ExtensionTargets">
201
  </ImportGroup>
202
</Project>
tobiictl/tobiictl.vcxproj.filters
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
  <ItemGroup>
4
    <Filter Include="Source Files">
5
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
    </Filter>
8
    <Filter Include="Header Files">
9
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
    </Filter>
12
    <Filter Include="Resource Files">
13
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
15
    </Filter>
16
  </ItemGroup>
17
  <ItemGroup>
18
    <ClCompile Include="Main.cpp">
19
      <Filter>Source Files</Filter>
20
    </ClCompile>
21
    <ClCompile Include="App.cpp">
22
      <Filter>Source Files</Filter>
23
    </ClCompile>
24
    <ClCompile Include="MainLoopRunner.cpp">
25
      <Filter>Source Files</Filter>
26
    </ClCompile>
27
  </ItemGroup>
28
  <ItemGroup>
29
    <ClInclude Include="App.h">
30
      <Filter>Source Files</Filter>
31
    </ClInclude>
32
    <ClInclude Include="MainLoopRunner.h">
33
      <Filter>Source Files</Filter>
34
    </ClInclude>
35
  </ItemGroup>
36
</Project>
tobiictl/tobiictl.vcxproj.user
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
  <PropertyGroup />
4
</Project>

Also available in: Unified diff