Revision 70da4fe8
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=""..\..\Include";"$(BOOST_ROOT)"" 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=""..\..\Lib";"$(BOOST_ROOT)\lib"" 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=""..\..\Include";"$(BOOST_ROOT)"" 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=""..\..\Lib";"$(BOOST_ROOT)\lib"" 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=""..\..\Include";"$(BOOST_ROOT_64)"" 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=""..\..\Lib";"$(BOOST_ROOT_64)\lib64"" 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=""..\..\Include";"$(BOOST_ROOT_64)"" 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=""..\..\Lib";"$(BOOST_ROOT_64)\lib64"" 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