Compare commits

...

527 Commits

Author SHA1 Message Date
Roberto Viola
a5565f5913 Update build_ios.yml 2021-07-27 16:09:14 +02:00
Roberto Viola
b4e41131a9 Create build_ios.yml 2021-07-27 16:07:40 +02:00
Roberto Viola
90b2188fe1 fixed minors on chartjs 2021-07-27 12:11:44 +02:00
Roberto Viola
677dd4a735 horizontreadmill calories fixed 2021-07-27 09:29:06 +02:00
Roberto Viola
2143281c00 forcing header toolbar visible when the chartjs popups 2021-07-26 08:08:10 +02:00
Roberto Viola
a2154a5d42 version 2.8.4 for iOS 2021-07-24 19:14:44 +02:00
Roberto Viola
11981729b1 flywheel life fitness ic8 2021-07-24 18:59:20 +02:00
Roberto Viola
a7fce387bd avgs on chartjs floored 2021-07-24 18:53:22 +02:00
Roberto Viola
870d392a1c added heart to virtualbike on iOS 2021-07-24 15:29:12 +02:00
Roberto Viola
9f2a223df5 fixed typo in the gears callback 2021-07-24 10:39:52 +02:00
Roberto Viola
69fdd79e50 AVG resistance and peloton resistance fixed for echelon bikes 2021-07-23 08:14:29 +02:00
Roberto Viola
f5fbbbf8e5 missing templates line in the bluetooth.cpp 2021-07-21 16:39:31 +02:00
Roberto Viola
e136cc520f fix on templateinfosenderbuilder.cpp 2021-07-21 10:30:24 +02:00
Roberto Viola
e71269b68b fix on templateinfosenderbuilder.cpp 2021-07-21 10:13:39 +02:00
Roberto Viola
cac547a136 echelonconnectsport mgarcea watt table updated 2021-07-21 08:01:37 +02:00
Roberto Viola
7d5310395d Merge pull request #406 from cagnulein/chartjs
Chartjs
2021-07-20 16:50:23 +02:00
Roberto Viola
b4d6921058 added wattTable_mgarcea to echelonconnectsport 2021-07-20 16:49:27 +02:00
Roberto Viola
bfe7c62e07 debug log file removed temporarily 2021-07-20 12:26:48 +02:00
Roberto Viola
a7ff674621 fixed wattage to zone 1 invisible in the charts 2021-07-20 08:20:14 +02:00
Roberto Viola
b4aa37da0d Merge branch 'chartjs' of https://github.com/cagnulein/qdomyos-zwift into chartjs 2021-07-20 08:16:19 +02:00
Roberto Viola
92c9e5ef9c gears plus event restored from a wrong merge 2021-07-20 08:16:10 +02:00
Roberto Viola
1d3077530d iOS build fixed 2021-07-20 08:15:18 +02:00
Roberto Viola
c043fe2ea1 fixed loading spinner 2021-07-19 20:12:28 +02:00
Roberto Viola
5549685e9c restarting training program only if the user come from a full stop 2021-07-19 16:12:31 +02:00
Roberto Viola
a246c9aee5 scale y max for watt chart 2021-07-19 15:10:45 +02:00
Roberto Viola
c5d064c993 added minutes::seconds to power distribution chart 2021-07-19 15:02:59 +02:00
Roberto Viola
c40a559ebb Merge branch 'master' into chartjs 2021-07-19 14:22:01 +02:00
Roberto Viola
2eda4b2261 debug file works in the email! 2021-07-19 14:18:38 +02:00
Roberto Viola
92e34178ce added signal for workoutname & friends to homeform to
templateinfosenderbuilder. also added the ability to send the debug log
file via email (not tested) #405
2021-07-19 11:26:54 +02:00
Roberto Viola
b5656f67a9 chartjs titles and some labels under the charts 2021-07-19 09:52:51 +02:00
Roberto Viola
3030428313 reverting ios rotation issue (single column on iphone 6) 2021-07-18 17:28:50 +02:00
Roberto Viola
daa7f4e409 fixing chartjs for cadence as a bike 2021-07-18 17:28:14 +02:00
Roberto Viola
0e3814cde3 added the ajax loader 2021-07-18 16:32:15 +02:00
Roberto Viola
3a6560c32d heartrate error fixed on ios and fixed stupid js issue 2021-07-18 16:24:50 +02:00
Roberto Viola
f01b961725 savescreenshot for charts must be a single shot 2021-07-18 15:36:40 +02:00
Roberto Viola
dfc71b7218 added inclination tag for treadmill 2021-07-18 15:12:18 +02:00
Roberto Viola
2f390f5fc4 add spinner loader and fixed 0 tick on some charts 2021-07-18 15:12:04 +02:00
Roberto Viola
86e972a455 fixed HR on charths 2021-07-18 10:21:19 +02:00
Roberto Viola
b858e7bc7a screenshot fixed, scales on X fixed, disabled interpolation for more
details
2021-07-18 09:51:01 +02:00
Roberto Viola
f3f60155f3 Merge pull request #403 from p3g4asus/ChartTemplate2
Allowing 2 or more instances of TemplateInfoSenderBuilder
2021-07-17 18:21:24 +02:00
Matteo Federico Zazzetta
c4155dc754 Removed Unneeded Test file 2021-07-17 17:47:43 +02:00
Matteo Federico Zazzetta
f14f86d0c9 Changing external template folder (Download folder is no more OK in Android 11). Now external templates in Android have to be placed in /sorage/emulated/0/Android/data/org.cagnulen.qdomyoszwift/files/QZTemplates.
Removing unused READ_EXTERNAL_STORAGE permission that is not needed anymore
2021-07-17 17:35:05 +02:00
Matteo Federico Zazzetta
4975b9feae Fixed including unnecessary files 2021-07-17 13:24:14 +02:00
Matteo Federico Zazzetta
f16d59b282 Remove Node Modules from Commit 2021-07-17 13:19:53 +02:00
Matteo Federico Zazzetta
efcb51b2be Fully integrating charts template with multi instance TemplateInfoSenderBuilder 2021-07-17 13:16:26 +02:00
Matteo Federico Zazzetta
b1c14be958 Merge remote-tracking branch 'remotes/cagnu/chartjs' into chartjs 2021-07-17 11:20:53 +02:00
Matteo Federico Zazzetta
7f57b8281c Merge remote-tracking branch 'remotes/cagnu/chartjs' into chartjs 2021-07-17 11:19:15 +02:00
Matteo Federico Zazzetta
63b8028bca Allowing multiple instances of TemplateInfoSenderBuilder and random port for web server 2021-07-17 10:59:43 +02:00
Roberto Viola
d0de5b9aa9 fixed logo on iOS 2021-07-17 10:52:23 +02:00
Roberto Viola
81334fb13b fixed chartjs onStopClicked 2021-07-17 10:37:36 +02:00
Roberto Viola
838252ccc0 test ifdef removed 2021-07-17 10:23:37 +02:00
Roberto Viola
a398a46680 cadence and speed charts added 2021-07-17 10:14:57 +02:00
Roberto Viola
8e7c3f352d added req cadence on the charts 2021-07-16 18:49:03 +02:00
Roberto Viola
126b23e4a3 power distribution chart and other improvements! 2021-07-16 18:37:39 +02:00
Roberto Viola
cac7ea79bd Merge branch 'chartjs' of https://github.com/cagnulein/qdomyos-zwift into chartjs 2021-07-16 14:54:04 +02:00
Roberto Viola
14c7679965 fix backcompatibility to the old fashion charts system 2021-07-16 14:52:30 +02:00
Roberto Viola
36260ee130 added js files to qml 2021-07-16 13:02:48 +02:00
Roberto Viola
1ac2118813 Merge branch 'chartjs' of https://github.com/cagnulein/qdomyos-zwift into chartjs 2021-07-16 11:45:50 +02:00
Roberto Viola
b58bfe67b1 chartjs moment adapter added 2021-07-16 11:45:41 +02:00
Roberto Viola
c7bd4ca848 Merge branch 'chartjs' of https://github.com/cagnulein/qdomyos-zwift into chartjs 2021-07-16 11:44:05 +02:00
Roberto Viola
23bac30309 moment.js added 2021-07-16 11:43:51 +02:00
Roberto Viola
8d2b9dde08 resize observer and jquery added locally 2021-07-16 11:38:18 +02:00
Roberto Viola
dfb23aba50 build issue fixed #402 2021-07-16 11:17:54 +02:00
Roberto Viola
4e10950c39 Magnetic days added #403 2021-07-16 11:13:49 +02:00
Roberto Viola
966e09a284 peloton test even on scheduled workflow 2021-07-15 16:39:25 +02:00
Roberto Viola
982833642b keeping the compatibility with QtCharts 2021-07-15 16:36:59 +02:00
Roberto Viola
0613a9f690 screenshots saved correctly! 2021-07-15 15:52:08 +02:00
Roberto Viola
b77b81590d trying to save screenshot from chart js (untested) 2021-07-15 14:51:24 +02:00
Roberto Viola
53a62e02b1 peloton resistance chart added 2021-07-15 12:13:44 +02:00
Roberto Viola
6f31e657db segments coloring fixed 2021-07-15 12:02:27 +02:00
Roberto Viola
4d01f534db legends removed 2021-07-15 11:55:55 +02:00
Roberto Viola
24eb35c60e heart rate chart and fixed resolution for mobile 2021-07-15 11:36:43 +02:00
Roberto Viola
236bbfe78a coloring watt zones and requested power. not tested 2021-07-15 09:44:23 +02:00
Roberto Viola
e333bbc073 starting customizing power chart 2021-07-14 17:12:17 +02:00
Roberto Viola
9daa3c4dba fixed iOS security stuff 2021-07-14 11:42:05 +02:00
Roberto Viola
752e6de22b fixes 2021-07-14 10:56:19 +02:00
Roberto Viola
9c4628f077 changing the firstRealIndex algorithm following the p3g4asus comment
https://github.com/cagnulein/qdomyos-zwift/commit/
4008fb81912642f0f71006eda32d6941400c3dff#commitcomment-53465346
2021-07-14 10:36:08 +02:00
Roberto Viola
1a80a0fea6 merge with https://github.com/p3g4asus/qdomyos-zwift/commit/
f9f816bad8f45f534f80e9909d4e091fa4229da6#diff-
c769f44c5a54869486235d89326a0d1b9d6ee14638fb6a0858049ac4e20ef709
2021-07-14 10:28:57 +02:00
Roberto Viola
27b69d2b72 Inspire bike new watt table #401 2021-07-14 09:00:06 +02:00
Roberto Viola
4008fb8191 fit file: get the first real point in the session line in order to avoid mismatch timing on Strava 2021-07-14 06:21:27 +02:00
Roberto Viola
b116a63532 only if the system has the qhttpserver we're using chartjs 2021-07-14 06:06:05 +02:00
Roberto Viola
849ad687df fixing iOS build again 2021-07-14 06:01:07 +02:00
Roberto Viola
baea835b20 continuing fixing iOS build 2021-07-14 05:29:18 +02:00
Roberto Viola
69c23950fd merged with https://github.com/p3g4asus/qdomyos-zwift/tree/ChartTemplate 2021-07-13 15:17:03 +02:00
Roberto Viola
bf39e4ba5a chartjs is working on iOS! 2021-07-13 11:27:43 +02:00
Roberto Viola
bfaa25d0a2 webkit added to iOS 2021-07-13 11:08:25 +02:00
Roberto Viola
85fa16d4f0 qtwebview added to ios 2021-07-13 10:14:31 +02:00
Roberto Viola
0fabddefc9 updating github workflow
https://github.com/actions/runner/issues/950
2021-07-12 15:42:38 +02:00
Roberto Viola
2a1fbcd93e added pzp test case 2021-07-12 08:33:49 +02:00
Roberto Viola
bfbe705dd2 Merge pull request #400 from p3g4asus/WSOptAndFeatures2
Some more webserver / template features
2021-07-12 08:05:44 +02:00
Matteo Federico Zazzetta
6b0ccc4ff7 ActivityDescription field moved to homeform and set using signal-slot mechanism 2021-07-11 13:38:33 +02:00
Roberto Viola
1757d403cd fixed test peloton api on pull request 2021-07-11 12:55:59 +02:00
Matteo Federico Zazzetta
5fc1a83a52 Added command to alter strava activity description
Added the possibility to request a web page body fetch in base64 format
Added twitch palyer and grabber for youtube-viewer plugin (needs ssl or localhost web server)
Added dash palyer for youtube-viewer plugin
Added hls player for youtube-viewer plugin
2021-07-11 10:00:11 +02:00
Roberto Viola
aed3e35da2 Heart chart scale issue #399 fixed 2021-07-11 09:20:44 +02:00
Roberto Viola
45950b2339 reverted merge error 2021-07-10 23:40:56 +02:00
Roberto Viola
d7d2240c14 fixed iOS errors 2021-07-10 16:30:42 +02:00
Roberto Viola
dec1119b29 added STAGES SB20 #398 2021-07-10 16:14:44 +02:00
Roberto Viola
7b01a1ee52 trying to fixing strnage behaviour of peloton servers 2021-07-10 15:21:16 +02:00
Roberto Viola
fffe1c0628 adding QStringLiteral everywhere :D 2021-07-09 16:20:37 +02:00
Roberto Viola
24b829053c added the possibility to change the order of the peloton date in the
workout title
2021-07-09 15:14:20 +02:00
Roberto Viola
b994c606e8 fixed root permission on test HFB 2021-07-09 11:25:58 +02:00
Roberto Viola
ae7c2a281e fixed github workflow 2021-07-09 11:21:18 +02:00
Roberto Viola
db80470acc added test HFB on GitHub 2021-07-09 11:16:59 +02:00
Roberto Viola
5806ded842 GitHub workflow playground
GitHub workflow playground
2021-07-09 11:00:44 +02:00
Roberto Viola
40b5a9148c workflow runs every 12 hours 2021-07-09 10:59:01 +02:00
Roberto Viola
1322f8618b export QT_DEBUG_PLUGINS=1; removed from the workflow 2021-07-09 10:51:49 +02:00
Roberto Viola
6b44a88f50 exit in case of peloton api success fixed 2021-07-09 10:34:58 +02:00
Roberto Viola
a4e3601e32 creating xvfb 2021-07-09 10:22:59 +02:00
Roberto Viola
e127394988 blaming on xcb 2021-07-09 10:12:22 +02:00
Roberto Viola
30926058f2 managing xcb issues 2021-07-09 10:05:02 +02:00
Roberto Viola
36bcfb2b40 fixed check on QNetworkReply::errorOccurred 2021-07-09 09:55:38 +02:00
Roberto Viola
b5c37a0454 fixing QNetworkReply::errorOccurred error on Qt 5.12 2021-07-09 09:50:47 +02:00
Roberto Viola
dda503e4c2 added libqt5websockets5* to workflow 2021-07-09 09:45:26 +02:00
Roberto Viola
dad2ebad86 qt packets added 2021-07-09 09:43:08 +02:00
Roberto Viola
840ba2d45f using qt5-default directly 2021-07-09 09:41:13 +02:00
Roberto Viola
5d1f895793 updated workflow build rules 2021-07-09 09:31:46 +02:00
Roberto Viola
8bd70eb227 installing libxcb 2021-07-09 09:30:43 +02:00
Roberto Viola
3bfa5fde00 root check after the parameters parsing 2021-07-09 09:16:58 +02:00
Roberto Viola
d22ce79f73 disable root check in case of test peloton api 2021-07-09 09:07:36 +02:00
Roberto Viola
fc568b1c8d still playing with github workflow 2021-07-09 09:01:22 +02:00
Roberto Viola
ae8d5f960a playing again with peloton api test case 2021-07-09 08:51:30 +02:00
Roberto Viola
46e693148f fixing speed on echelonstride 2021-07-09 08:23:11 +02:00
Roberto Viola
117d160ed5 zwift virtualbike on ios fixes 2021-07-08 21:54:18 +02:00
Roberto Viola
87d08452c0 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-07-08 16:46:34 +02:00
Roberto Viola
12bbdb3caa fixing a bug that if the peloton cadence sensor setting was off and
nothing was connected to the virtualbike, the resistance was forced to
5.
2021-07-08 16:38:39 +02:00
Roberto Viola
5a4600732c added a test for the peloton api 2021-07-08 16:19:28 +02:00
Roberto Viola
e5ab7fb8b8 pausing the testing peloton api thing 2021-07-08 16:16:01 +02:00
Roberto Viola
cf0e76eb5d fixing test peloton api 2021-07-08 16:02:26 +02:00
Roberto Viola
aa1025dc78 fixing test peloton api 2021-07-08 15:52:26 +02:00
Roberto Viola
b97b805d9c trying to create a test case for peloton api 2021-07-08 15:35:23 +02:00
Roberto Viola
cbf642e9c7 Merge pull request #341 from lifof/codeRefactoring
First batch of code Refactoring related to Code Improvements #339
2021-07-07 15:01:24 +02:00
lifof
02c093a020 Fix:
- conflicts after effects
2021-07-07 13:55:17 +01:00
lifof
0b87993c9c Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/bike.h
	src/bluetoothdevice.cpp
	src/bluetoothdevice.h
	src/domyoselliptical.cpp
	src/domyostreadmill.cpp
	src/domyostreadmill.h
	src/elliptical.cpp
	src/homeform.cpp
	src/mainwindow.cpp
	src/soleelliptical.cpp
	src/virtualbike.cpp
	src/virtualbike.h
2021-07-07 13:45:59 +01:00
Roberto Viola
82502c1f57 Merge pull request #394 from cagnulein/treadmill_as_a_bike
Treadmill as a bike
2021-07-07 13:47:07 +02:00
Roberto Viola
836b5a9c6a Merge branch 'master' into treadmill_as_a_bike 2021-07-07 13:42:36 +02:00
lifof
5d09ec0056 Update :
- rapid code refactoring
2021-07-07 11:19:27 +01:00
lifof
242ca69574 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/schwinnic4bike.cpp
2021-07-07 11:02:57 +01:00
Roberto Viola
af70bccafa Schwinn IC4 Support Mapping Bike Resistance to Peloton Resistance #392
added missing resistance conversion
2021-07-07 08:16:50 +02:00
Roberto Viola
f6ad122e12 peloton Resistance to renphobike 2021-07-07 08:14:18 +02:00
lifof
e296960798 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/bluetooth.cpp
	src/homeform.cpp
	src/homeform.h
	src/schwinnic4bike.cpp
2021-07-06 12:11:13 +01:00
lifof
0bf6f79340 Update:
- tacxneo2* refactor
2021-07-06 11:50:16 +01:00
Roberto Viola
929219771d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-07-06 12:25:44 +02:00
Roberto Viola
539edc2c38 Schwinn IC4 Support Mapping Bike Resistance to Peloton Resistance #392 2021-07-06 12:25:16 +02:00
Youssef BEDDAD
4206cefdad Merge branch 'refs/heads/master' into codeRefactoring 2021-07-06 11:19:47 +01:00
Roberto Viola
542e7f1517 added Hammer Sole B94 #393 2021-07-06 12:05:35 +02:00
Roberto Viola
6e4b7f0e43 added the possibility to change gears with the volume keys #379 2021-07-06 12:03:41 +02:00
Roberto Viola
dea68cef94 adding a sleep during the SS2K init phase 2021-07-06 08:44:51 +02:00
Roberto Viola
8f7c243f69 added AppScreens 2021-07-05 12:20:38 +02:00
Roberto Viola
4856c9444e iOS version 2.6.60 2021-07-05 11:07:23 +02:00
lifof
b09c4b66fc Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/main.cpp
2021-07-05 01:49:06 +01:00
Roberto Viola
14046ba3e3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-07-04 17:44:09 +02:00
Roberto Viola
947f3f39d8 trying to fixing tiles quantity on iOS. Need to be tested on Android 2021-07-04 17:43:57 +02:00
Roberto Viola
0f3b899a92 domyostreadmill: limit writing inclination only to 0.5 steps 2021-07-03 18:32:10 +02:00
lifof
2d84f7e186 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/smartspin2k.cpp
2021-07-03 13:40:30 +01:00
Roberto Viola
d42f295e83 fixed init for SS2K 2021-07-03 12:26:29 +02:00
Roberto Viola
a67996cd8a changeInclination of domyostreadmill filter for negative values 2021-07-03 12:08:27 +02:00
lifof
7c19613b24 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/bluetooth.cpp
	src/bluetooth.h
2021-07-02 23:43:16 +01:00
Roberto Viola
d02eb70412 virtual_device_force_bike setting added 2021-07-02 15:20:24 +02:00
Roberto Viola
27a22eceb3 first commit of treadmill as a bike 2021-07-02 15:04:53 +02:00
Roberto Viola
cff64b71bc Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-07-01 14:11:16 +02:00
Roberto Viola
fb93a6610c tacxneo2 added #388 2021-07-01 12:27:35 +02:00
Roberto Viola
412d8e2da7 android version 2.6.59 2021-06-30 09:57:47 +02:00
Roberto Viola
3c40972a20 ios version 2.6.59 2021-06-30 08:02:48 +02:00
Roberto Viola
bf4c21a098 peloton airdate added to the title 2021-06-29 15:45:53 +02:00
Roberto Viola
e8fd1e18fe renphobike module added 2021-06-29 15:21:04 +02:00
lifof
a98e96d036 Fixed:
- some conflict's after effects
2021-06-28 22:23:15 +01:00
lifof
5dfffae8a0 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/bike.cpp
	src/bluetooth.cpp
	src/bluetooth.h
	src/domyostreadmill.cpp
	src/homeform.cpp
	src/powerzonepack.cpp
	src/powerzonepack.h
	src/qfit.cpp
	src/smartspin2k.cpp
	src/smartspin2k.h
2021-06-28 15:21:12 +01:00
Roberto Viola
6578cd9365 trying to improve precision on distance on domyostreadmill 2021-06-28 08:49:22 +02:00
Roberto Viola
9097c2a1c4 Manage in the fit file the elapsed time and the total time differently
#386
2021-06-28 08:28:33 +02:00
Roberto Viola
6e60fb6002 WAHOO KICKR added 2021-06-28 08:10:14 +02:00
Roberto Viola
d3585052c5 fixed rounded on metrics_override_heartrate 2021-06-28 08:08:16 +02:00
Roberto Viola
c2ffd3e426 F63 treadmill connection issue fixed 2021-06-27 22:10:42 +02:00
Roberto Viola
afcaa5e894 limit ftp zone and target ftp zones to 7 as peloton 2021-06-27 15:55:09 +02:00
Roberto Viola
0800bb4345 changed the label of the SS2k settings 2021-06-25 22:22:16 +02:00
Roberto Viola
369abeac1b ss2k init phase fix 2021-06-25 21:59:46 +02:00
Roberto Viola
9c8ea4e422 Merge pull request #384 from cagnulein/smartspin2k
Smartspin2k
2021-06-25 21:52:55 +02:00
Roberto Viola
a540114d13 fix init phase on SS2K 2021-06-25 18:10:55 +02:00
Roberto Viola
e7b27a46e7 BLE_syncMode handled for smartspin2k 2021-06-25 08:07:21 +02:00
Roberto Viola
fad04cde91 fixed crash on powerzonepack 2021-06-24 15:20:14 +02:00
Roberto Viola
9e24ac97a6 resistance for smartspin2k is signed 2021-06-24 15:02:03 +02:00
Roberto Viola
7347383c21 disabling BLE_externalControl on smartspin2k 2021-06-24 14:12:03 +02:00
Roberto Viola
5e084a0367 Renpho Bike compatibility added #382 2021-06-24 08:30:28 +02:00
Roberto Viola
eeda71e51a iOS version 2.6.54 2021-06-24 08:05:45 +02:00
Roberto Viola
c3be99e606 added websocket to iOS 2021-06-23 18:03:04 +02:00
Roberto Viola
32e25f0f55 fix build issues 2021-06-23 16:10:06 +02:00
Roberto Viola
d78d6c70b9 fixed indication for smartspin2k and added the BLE_externalControl
command
2021-06-23 16:02:03 +02:00
Roberto Viola
6b43f948d5 first experimental support for echelonstride #380 2021-06-23 15:52:37 +02:00
Roberto Viola
ecd7c659ed pzp to websockets 2021-06-23 14:32:59 +02:00
Roberto Viola
5563bb9d97 first implementation of smartspin2k with custom services 2021-06-21 17:31:40 +02:00
lifof
450e52f492 Fixups for minor conflits resolving side effects 2021-06-19 22:08:33 +01:00
lifof
06863c7c62 Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/bike.cpp
	src/homeform.cpp
	src/homeform.h
	src/horizontreadmill.cpp
	src/peloton.cpp
	src/peloton.h
	src/powerzonepack.cpp
2021-06-19 21:57:42 +01:00
Roberto Viola
b2969f1e85 fixed erroneous flags reading on stagesbike 2021-06-19 17:32:18 +02:00
Roberto Viola
ff2ef58424 handled horizontreadmill different services 2021-06-19 17:14:31 +02:00
Roberto Viola
87cddeca88 gears change now immediately; peloton provider added to the message box 2021-06-19 15:46:08 +02:00
Roberto Viola
0c523dcbc9 fixed issue when no pzp credentials are provided 2021-06-19 09:02:32 +02:00
lifof
7ac3a6684d Curly braces {} 2021-06-17 13:39:32 +01:00
lifof
cd9518d41c Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/trxappgateusbbike.cpp
2021-06-17 13:35:58 +01:00
Roberto Viola
da140a5e6a forceResistance packet for DKN MOTION bike fixed #366 2021-06-17 13:24:37 +02:00
lifof
3f863165bf Last minute Refactoring of homeform.cpp :
- curly braces for ifs
 - QStringLiterals to some strings
2021-06-17 11:14:26 +01:00
lifof
2c2f70398f Merge branch 'refs/heads/master' into codeRefactoring
Conflicts:
	src/homeform.cpp
2021-06-17 10:40:58 +01:00
Roberto Viola
e85135261f fixed ftp range #374 2021-06-17 07:44:59 +02:00
lifof
6aac31b4d9 Code reformating and some fast refactoring 2021-06-16 15:47:02 +01:00
Youssef BEDDAD
247db96d58 fixup! Merge branch 'refs/heads/master' into codeRefactoring 2021-06-16 15:38:53 +01:00
lifof
c79ee60464 Merge branch 'refs/heads/master' into codeRefactoring 2021-06-16 15:35:28 +01:00
Roberto Viola
b6ecc93c5d fixed "double" seconds in the PZP plugin 2021-06-16 15:23:00 +02:00
Roberto Viola
355969b10f added the ability to change the value of the speed read from the
machinery (useful for treadmill uncalibrated) #373
2021-06-16 14:18:52 +02:00
Roberto Viola
00974411ab improvments on rower (fit files and more) 2021-06-16 13:59:25 +02:00
Roberto Viola
35422aeab1 added gears tile 2021-06-16 13:27:54 +02:00
lifof
f7763b289f Merge branch 'refs/heads/master' into codeRefactoring 2021-06-16 10:37:05 +01:00
Roberto Viola
6c73b2ffe0 weight loss and watt/kg fixed for m3ibike 2021-06-15 16:45:35 +02:00
lifof
117f049944 Fixups for some conflicts side effects 2021-06-15 11:37:55 +01:00
lifof
02fdd72f28 Merge branch 'refs/heads/master' into codeRefactoring 2021-06-15 11:11:11 +01:00
Roberto Viola
c21fab6c64 trying to handle different firmware for DKN MOTION #366 2021-06-15 11:04:05 +02:00
Roberto Viola
807f3a385d fixed double approximation in the FTP zones 2021-06-15 08:10:09 +02:00
lifof
7f297b7700 Merge branch 'refs/heads/master' into codeRefactoring 2021-06-14 23:08:10 +01:00
lifof
1f62e9529e Merge branch 'refs/heads/master' into codeRefactoring
- fixing some mistakes that were done during the last coflict solving ( some errornous if statments )
- @cagnulein would you mind taking a look homeform.cpp line 2062 there's a note above is it ok to replace it by that cause the analyzer is complaining about it.
2021-06-14 23:02:10 +01:00
Roberto Viola
5d9f6b1245 fixing strava export for domyostreadmill #363 2021-06-14 16:34:45 +02:00
Youssef BEDDAD
8ed26c96d4 Revert "Update qfit.cpp"
This reverts commit d21395da8a.
2021-06-14 13:36:52 +01:00
lifof
d21395da8a Update qfit.cpp
Is it correct to change these two sub sport values for the Treadmill & Elliptical
2021-06-14 13:36:12 +01:00
Roberto Viola
ab0e5f9cd2 watt/kg tile added 2021-06-14 10:08:00 +02:00
Roberto Viola
58896be47a target resistance and target cadence second lines disabled if there
aren't any data
2021-06-14 09:46:04 +02:00
lifof
3f874a61e2 Merge branch 'refs/heads/master' into codeRefactoring
- resolving conflicts & refactoring
2021-06-13 21:24:04 +01:00
Roberto Viola
a3fcc47bfd target zone added. lower and upper values added for peloton resistance
and cadence. #356 #315
2021-06-13 11:40:20 +02:00
Roberto Viola
5f0ca8682a fixed distance for smartrowrower 2021-06-13 10:59:03 +02:00
Roberto Viola
a7ac55ec80 added indoor rowing in the fit file 2021-06-13 10:55:58 +02:00
lifof
537531db09 Refactoring related to #358 2021-06-10 11:52:28 +01:00
Roberto Viola
5c71609523 Merge branch 'master' into codeRefactoring 2021-06-10 09:15:53 +02:00
Roberto Viola
8e3670be65 Added decimal point to the zone tile #359 2021-06-10 09:04:57 +02:00
lifof
f4d9475d21 Merge branch 'cagnulein:master' into codeRefactoring 2021-06-09 15:09:01 +01:00
Roberto Viola
f794f98859 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-09 14:58:10 +02:00
Roberto Viola
28a3c7c94c version 2.6.45 for ios and android 2021-06-09 14:57:42 +02:00
Roberto Viola
3b86cd966d fixed domyoselliptical timing 2021-06-09 12:14:55 +02:00
Roberto Viola
7fc3ef2359 trying to fixing #342 2021-06-09 08:31:10 +02:00
Roberto Viola
e3ecec04c7 fixed proformbike resistance during a resistance change 2021-06-09 08:26:24 +02:00
lifof
b0a929bfe3 Merge branch 'refs/heads/master' into codeRefactoring 2021-06-08 17:10:40 +01:00
lifof
1e7b093941 Merge branch 'refs/heads/master' into codeRefactoring 2021-06-08 17:01:26 +01:00
Roberto Viola
98ea1f19e1 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-08 16:25:48 +02:00
Roberto Viola
3e2bdec819 fixed current airtime on peloton 2021-06-08 16:19:15 +02:00
Roberto Viola
dd4273bb76 first implementation of homefitnessbuddy (NOT TESTED) 2021-06-08 14:33:08 +02:00
Roberto Viola
d1fdbb88a6 added strokes count and length and pace for rower 2021-06-08 08:57:08 +02:00
lifof
bcdd25f18e New code tranformations
- using qt5's new style connect is considered good behavior
 - using nullptr instead of 0 and NULL when dealing with pointers
 - using curly braces everytime in if and for statements is good behavior too
2021-06-07 10:51:13 +01:00
Roberto Viola
06d2f4517f Merge branch 'master' into codeRefactoring 2021-06-07 09:13:25 +02:00
Roberto Viola
21d1d3f204 smartrow rower stupid typos fixed 2021-06-07 09:12:19 +02:00
Roberto Viola
79e9b2660a Merge branch 'master' into codeRefactoring 2021-06-07 09:08:47 +02:00
Roberto Viola
32b39a8578 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-07 09:02:07 +02:00
Roberto Viola
f44ac930e9 first raw implementation of smartrow rower 2021-06-07 08:58:27 +02:00
lifof
851def48bb Ninth wave of code changes
- finally figured out a way to change the qt5 connects that deal with QLowEnergyController::Error and QLowEnergyService::ServiceError from the old to new style
2021-06-06 21:30:35 +01:00
lifof
f9449f57a8 fix for android-armeabi-v7a
- complains about optimization & lto during link time - found that it had a fixed "CONFIG += optimize_size" that translates to -Oz
2021-06-06 18:31:04 +01:00
lifof
dcbc4497c2 trying to solve github's artifact crash:
- seems to crash on my distro with this message :
   ./qdomyos-zwift: symbol lookup error: ./qdomyos-zwift: undefined symbol: _ZdlPvm, version Qt_5
2021-06-06 17:43:40 +01:00
lifof
6672725dfa Adding -s to strip all debug symbols from release version 2021-06-06 17:24:21 +01:00
lifof
5a95c4c1da Eighth wave of code changes
- second pass on the cpp source files
 - added src/build/* to .gitignore cause I'm getting two annoying files every time I want to commit something
 - main.cpp - fixed a potential memory leak - clang-analyzer-cplusplus.NewDeleteLeaks
 - all header files refactored
 - with this all warnings related to the project ( no 3rd-party included ) are eliminated along with potential memory leaks and soem code tweaks related to performance
2021-06-06 17:11:22 +01:00
Roberto Viola
e4463d3dad Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-06 14:37:17 +02:00
lifof
a542662da2 Seventh wave of code changes
- finished 1st pass
2021-06-06 02:56:01 +01:00
lifof
33479ad88a Sixth wave of code changes 2021-06-05 22:39:13 +01:00
Roberto Viola
d702d2d9b8 Merge branch 'master' into codeRefactoring 2021-06-05 20:20:34 +02:00
Roberto Viola
d3ea8d651a fixed PZP session over 1h 2021-06-05 20:16:28 +02:00
lifof
9b15d0d98a Fifth wave of changes
+ debug messages medicine ( needs testing ) related to #345
2021-06-05 17:54:41 +01:00
lifof
4db3c92bd4 Fourth wave of changes 2021-06-05 16:19:53 +01:00
lifof
89f082c55d Movinig on -> Third wave 2021-06-05 02:55:26 +01:00
lifof
1c8cece6cf Update Qt version in main.yml 2021-06-04 22:32:35 +01:00
lifof
747049761c Second batch of modifications 2021-06-04 22:10:44 +01:00
lifof
1eb9f11434 Update domyoselliptical.cpp 2021-06-04 11:31:37 +01:00
Roberto Viola
71f0e56728 fixed wrong incliantion value on domyos elliptical
@lifof could you try this?
2021-06-04 12:20:26 +02:00
Roberto Viola
6ec9be0a8f Merge branch 'master' into codeRefactoring 2021-06-04 10:23:44 +02:00
Roberto Viola
aa2bb93d52 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-04 09:34:32 +02:00
Roberto Viola
901b126f49 hammer bike fixed 2021-06-04 08:01:12 +02:00
lifof
6fefb6485a Refactoring code related to Code Improvements #339
- switching to c++17

 - activating link-time optimizations with qt's ltcg flag in CONFIG

 - android-clang config for optimize_full is errornous instead of passing an -O3 it passes a -Oz

 - using clazy's refactoring:
   - isempty-vs-count
   - old-style-connect
   - qstring-unneeded-heap-allocations
   - function-args-by-ref

 - clang-format *.cpp and *.h using .clang-format config

 - QStringLiteral everything

 - replacing initializing ptrs with 0 by nullptr

 - using Qt's isEmpty instead of count and length

 - using chrono's time expressions in QTimer

 - curly braces for all ifs and fors ( atleast the ones that I detected so far )
2021-06-03 22:59:37 +01:00
Roberto Viola
e1f3d1d0bd Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-06-03 11:53:26 +02:00
Roberto Viola
e88be3c23a version 2.6.41 on android 2021-06-03 11:53:14 +02:00
Roberto Viola
63d1299b07 Hammer racer S spinning bike #337 2021-06-03 11:49:17 +02:00
Roberto Viola
f793521ce3 Merge pull request #336 from lifof/master
Android Screen dimming Fix
2021-06-03 10:56:51 +02:00
lifof
908313c594 Android Srceen dimming Fix:
Added a keepScreenOn function for Android to deactivate screen dimming
2021-06-03 02:04:50 +01:00
Roberto Viola
fa86c3ca04 ios version 2.6.41 with concept row support #335 2021-06-02 14:20:25 +02:00
Roberto Viola
3d2d9dac0b ZWO (zwift workout file) compatibility added #331 2021-06-01 17:17:16 +02:00
Roberto Viola
90ab5e1c5b fixed build error on GitHub 2021-06-01 11:10:36 +02:00
Roberto Viola
f93b053de5 added the ability to ovveride the HR value sent to peloton #334 2021-06-01 11:04:08 +02:00
Roberto Viola
403beca71f powerzonepack fixed issue after 1 minute 2021-05-29 20:52:14 +02:00
Roberto Viola
80c2a741b2 weight loss fixed in the mail 2021-05-29 16:50:32 +02:00
Roberto Viola
4465ad7488 fixed distance on apple watch (only miles instead of kms) 2021-05-29 16:20:14 +02:00
Roberto Viola
4d34780319 ftmsrower cadence fixed #330 2021-05-29 14:00:17 +02:00
Roberto Viola
21a153fc5a fixed peloton workout when an user does multiple workout in a single QZ
session
2021-05-28 09:18:12 +02:00
Roberto Viola
305a01b7e0 first implementation of City Rower #327 2021-05-28 09:12:17 +02:00
Roberto Viola
af7380940a powerzonepack loginstate fixed 2021-05-27 22:35:15 +02:00
Roberto Viola
cce631c366 update powerzonepack to pzpack.com #264 2021-05-27 22:15:22 +02:00
Roberto Viola
b0efda1f02 ios version 2.6.36 2021-05-26 14:32:58 +02:00
Roberto Viola
63d033d48f Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-26 13:28:12 +02:00
Roberto Viola
094ec5cfdd first alpha implementation of powerzonepack #264 2021-05-26 13:24:07 +02:00
Roberto Viola
f35a1a9ec9 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-24 16:39:39 +02:00
Roberto Viola
7d1986f962 2.6.35 for android 2021-05-24 16:38:43 +02:00
Roberto Viola
04b394303e updating stats on flywheelbike on apple watch even if datas are not
"clean"
2021-05-24 16:28:55 +02:00
Roberto Viola
7d3bf6863e adding weight to the power-speed formula 2021-05-23 18:53:25 +02:00
Roberto Viola
f0ed3044ab Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-21 18:09:46 +02:00
Roberto Viola
136f957833 fix issue on virtual device when a cadence sensor has been used as a
accessory for another bike
2021-05-21 18:08:37 +02:00
Roberto Viola
a4a79069c7 fixed a strange bug into the flywheelbike about refresh->interval()
with value at 0
2021-05-21 15:03:30 +02:00
Roberto Viola
d247cb4830 weight loss tile added 2021-05-20 11:35:16 +02:00
Roberto Viola
35a2798541 ios version 2.6.32 2021-05-20 10:07:26 +02:00
Roberto Viola
c62ba5850e Speed from power #269 2021-05-20 10:01:52 +02:00
Roberto Viola
91483c8867 moved random training program setting into a parent setting in order to
avoid accidentally enabling
2021-05-20 09:25:37 +02:00
Roberto Viola
a2c331c4fa fixed formula on the target resistance second line tile 2021-05-20 08:09:40 +02:00
Roberto Viola
9021b2ffa3 Life Fitness Bike support #325 2021-05-20 08:01:34 +02:00
Roberto Viola
ba1b74f872 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-19 09:02:58 +02:00
Roberto Viola
a7f8699a30 added rower class 2021-05-19 09:00:18 +02:00
Roberto Viola
5cf915fed1 changed strava tag to #QZ 2021-05-18 17:24:31 +02:00
Roberto Viola
47beb070cd added the ability to load and save settings #240 2021-05-18 15:51:51 +02:00
Roberto Viola
c257601916 trying to get inclination from horizontreadmill 2021-05-18 09:59:47 +02:00
Roberto Viola
0ca3ba87f9 small fix on echelonrower 2021-05-17 09:53:15 +02:00
Roberto Viola
e586dea477 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-17 09:07:49 +02:00
Roberto Viola
1d2a8bc7e1 ios version 2.6.30 2021-05-17 09:07:26 +02:00
Roberto Viola
b493124644 first implementation of echelonrower #318 2021-05-17 08:57:31 +02:00
Roberto Viola
7d6f16ad61 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-17 07:58:10 +02:00
Roberto Viola
b2c7da5111 added simple hrzones_1h_treadmill program 2021-05-17 07:57:59 +02:00
Roberto Viola
7cf1d6a3bf fixed watt calculation on schwinnic4bike 2021-05-15 09:41:39 +02:00
Roberto Viola
a2c0009a8c using resistance function to SmartSpin2K 2021-05-14 18:50:39 +02:00
Roberto Viola
25983aa7e2 version 2.6.29 2021-05-14 11:11:56 +02:00
Roberto Viola
7790a1bc66 added startup offset to smartspin2k #299 2021-05-13 15:09:47 +02:00
Roberto Viola
88fe1e6c81 fix build error 2021-05-13 09:15:15 +02:00
Roberto Viola
f4951befd4 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-13 08:53:58 +02:00
Roberto Viola
ee12336b90 external cadence sensor on bike to override bike computer's cadence
sensor #317
2021-05-13 08:53:41 +02:00
Roberto Viola
c1259cf0ab ios version 2.6.28 2021-05-12 15:44:40 +02:00
Roberto Viola
ce1308b5ee kcal and distance to apple watch 2021-05-12 14:36:21 +02:00
Roberto Viola
83c3387eb2 fixed timeout on ftmsaccessory #299 2021-05-11 17:06:11 +02:00
Roberto Viola
22152ddf10 ftmsbike limited to 15 resistance levels. changed to 100 #299 2021-05-11 17:00:52 +02:00
Roberto Viola
0cb759f771 fixed stupid error on ftms accessory #299 2021-05-11 16:34:09 +02:00
Roberto Viola
4facb2c26a fixed init phase of DKN MOTION bike #294 2021-05-11 14:03:55 +02:00
Roberto Viola
dae2d78d6e fixed connection issue on FTMS accessory #299 2021-05-11 07:59:31 +02:00
Roberto Viola
85c9baeb50 first untested implementation of SpinBike2K #299 2021-05-10 15:28:05 +02:00
Roberto Viola
18dd8dc911 fix import GPX file with resolution different than 1 second #304 2021-05-10 10:41:58 +02:00
Roberto Viola
8ed312cd0a Merge pull request #303 from p3g4asus/WSGetPost2
Get Post request via web socket
2021-05-10 08:10:08 +02:00
Roberto Viola
5ecebc506f default client strava id to QZ's one 2021-05-10 08:03:19 +02:00
Roberto Viola
1f68727c79 Merge branch 'master' into WSGetPost2 2021-05-10 08:01:44 +02:00
Matteo Federico Zazzetta
997b919ee6 Minor optimizations 2021-05-08 21:28:11 +02:00
Matteo Federico Zazzetta
33be574d54 Fixes strava speed display on m3i bike 2021-05-08 20:52:30 +02:00
Matteo Federico Zazzetta
8b3ae1a700 Merge with master 2021-05-08 13:21:20 +02:00
Matteo Federico Zazzetta
b3fbf34e89 Fixes strava id stringify and adds train program saver template 2021-05-07 12:07:28 +02:00
Roberto Viola
cc842e55c7 added mouse cursor ability to amazon manifest 2021-05-07 10:11:21 +02:00
Roberto Viola
2710cac480 small fixes on init for DKN AM-3i #285 2021-05-04 15:48:35 +02:00
Roberto Viola
6594ed1ae2 fix on fitplusbike 2021-05-04 15:29:41 +02:00
Roberto Viola
884bc2ca0a added template tcp client QZ 2021-05-04 12:17:43 +02:00
Roberto Viola
d58475a61d Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-05-04 08:39:42 +02:00
Roberto Viola
843138f82a ios version 2.6.24 2021-05-04 08:39:23 +02:00
Roberto Viola
390c5fa915 train program with positive and negative offset 2021-05-04 08:33:57 +02:00
Roberto Viola
5ecf34c524 added the ability to disable HRM from machinery (treadmill and bikes) 2021-05-03 14:20:20 +02:00
Roberto Viola
7964c6247d added watt calculation based on heart on fitplusbike 2021-05-03 14:17:02 +02:00
Roberto Viola
be29c27c80 added a new yesoul peloton conversion formula #245 2021-05-03 12:02:49 +02:00
Roberto Viola
ad7dea821d first commit for fitplusbike #296 2021-05-03 10:21:49 +02:00
Roberto Viola
dfe4d8df0a added a new tile for peloton offset time 2021-05-03 08:41:12 +02:00
Roberto Viola
f02cfddb10 fixes on trainprograms 2021-05-03 08:05:57 +02:00
Matteo Federico Zazzetta
52378cfed3 Merge with upstram master branch and some fixes 2021-05-02 13:14:04 +02:00
Matteo Federico Zazzetta
788bf68705 Fixed some typos 2021-05-01 19:20:22 +02:00
p3g4asus
2c6dd1a02d Tons of Fixes 2021-05-01 18:14:24 +02:00
Roberto Viola
c281f9dfb4 elapsed buttons works only to train program counter (peloton buffer
issue)
2021-05-01 17:09:06 +02:00
Matteo Federico Zazzetta
64b3ee35f4 Adding support for loading / saving training programs via templates 2021-05-01 12:49:56 +02:00
Matteo Federico Zazzetta
8f7d417cd6 Added to .gtignore some paterns in template-examples folder 2021-04-30 14:01:33 +02:00
Matteo Federico Zazzetta
eae8c0ab72 Fixes to youtube-viewer template issues 2021-04-30 13:38:00 +02:00
Roberto Viola
ad4ec969a1 fixed crash on trainprogram 2021-04-30 06:58:15 +02:00
Matteo Federico Zazzetta
98b078f9c7 Fix Youtube template bug 2021-04-29 20:23:41 +02:00
Matteo Federico Zazzetta
dc75e8e469 Adding youtube-viewer template 2021-04-29 19:45:55 +02:00
Roberto Viola
f0dea27ab3 fixed wrong stop frame on domyosbike 2021-04-29 15:39:09 +02:00
Roberto Viola
3d3cbe8632 dkn motion init fixies #294 2021-04-28 17:03:37 +02:00
Roberto Viola
ebdbcfa946 OS, bluetooth device and bluetooth heart rate added to the email 2021-04-28 14:17:46 +02:00
Roberto Viola
48255659ad fixed writeresistance for soleelliptical #278 2021-04-28 08:57:10 +02:00
Matteo Federico Zazzetta
0770a3d7f4 Small changes in getsettings message 2021-04-28 07:10:19 +02:00
Roberto Viola
2403e463f4 hr pid in the XML #226 2021-04-27 20:38:20 +02:00
Roberto Viola
af6f169bd9 added averagePace and maxPace for treadmills and coloured tiles! 2021-04-27 14:04:38 +02:00
Roberto Viola
2d144fefd4 HR pid on treadmill now with a 10s loop 2021-04-27 11:21:16 +02:00
Roberto Viola
ba3b262f34 integration on spirittreadmill 2021-04-27 11:13:31 +02:00
Roberto Viola
8a26cb4a97 fixed resistance on soleelliptical #278 2021-04-26 11:45:05 +02:00
Roberto Viola
4f23227de4 peloton conversion for domyosbike 2021-04-26 10:55:20 +02:00
Roberto Viola
f532de8c62 resistance up and down for soleelliptical #278 2021-04-26 07:27:51 +02:00
Roberto Viola
87b1a84043 trying to increase resistance on soleelliptical #278 2021-04-25 17:17:04 +02:00
Roberto Viola
8128b8b15b age ande weight for soleelliptical #278 2021-04-25 17:11:15 +02:00
Roberto Viola
b3e95de924 duration of the workout for soleelliptical changed from 10 minutes to
255 minutes #278
2021-04-25 17:04:36 +02:00
Matteo Federico Zazzetta
1081c63b72 Added the possibility to make request get/post requests
Added moving_time metric for templates
Added the possibility to add new settings by using templates
2021-04-25 12:09:58 +02:00
Roberto Viola
cdc66ae76a Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-04-24 22:26:17 +02:00
Roberto Viola
10ce2d9c1f ios build fixed 2021-04-24 22:26:01 +02:00
Roberto Viola
7da452c4ea added peloton reverse conversion for proformbike 2021-04-24 22:16:02 +02:00
Roberto Viola
57bba4152c Merge pull request #289 from p3g4asus/MovingTime
Introducing moving time for m3i and fitshowtreadmill.
2021-04-24 18:46:40 +02:00
Matteo Federico Zazzetta
aadb3dd743 Introducing moving time for m3i and fitshowtreadmill. 2021-04-24 16:57:10 +02:00
Roberto Viola
e6cc2341b7 fixed signed slope on virtual bike on swift 2021-04-24 12:08:46 +02:00
Roberto Viola
2b3f135443 moving time added 2021-04-24 12:08:19 +02:00
Roberto Viola
f61f1ed91f fixing, again, virtual echelon bike 2021-04-23 15:02:26 +02:00
Roberto Viola
318eade1b7 very fast implementation of XT485 spirit treadmill (NOT TESTED AND NOT
FINISHED, i'm waiting the user with more informations)
2021-04-23 11:39:22 +02:00
Roberto Viola
48d9af6e96 added FIT file to the email 2021-04-23 08:32:58 +02:00
Roberto Viola
d1923ee4e7 fixed soleelliptical 2021-04-22 20:16:05 +02:00
Roberto Viola
af2ecf5fbd Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-04-22 20:01:02 +02:00
Roberto Viola
383ff90871 heart rate fixed on swift on zwift 2021-04-22 20:00:27 +02:00
Roberto Viola
e19dccd908 DKN MOTION bike added #285 2021-04-22 16:22:05 +02:00
Roberto Viola
ebe4e8e31c watt calculation based on HR executed only if HR attached #286 2021-04-22 15:14:05 +02:00
Roberto Viola
f865f5ddf2 swift swift interface is working 2021-04-22 14:23:44 +02:00
Roberto Viola
ed4722cb20 first implementation of virtual bike zwift on swift (not tested) 2021-04-22 09:40:40 +02:00
Roberto Viola
e3058bb621 npecablebike fixed again :( 2021-04-22 07:18:27 +02:00
Roberto Viola
1d197c15f5 fixed build issue on qt < 5.15 2021-04-21 20:56:25 +02:00
Roberto Viola
8c8de54553 ios build 2.6.13 2021-04-21 15:54:01 +02:00
Roberto Viola
90763b7135 trying to fix virtual echelon 2021-04-21 15:39:21 +02:00
Roberto Viola
2e79664b82 first raw implementation of PID based on Heart Rate for Treadmills #226 2021-04-21 15:12:58 +02:00
Roberto Viola
c2e4060d56 template webserver settings moved into the experimental settings section 2021-04-21 13:59:32 +02:00
Roberto Viola
e38c9d790c Merge pull request #252 from p3g4asus/TemplatingAndWS2
"Templated" connections and Web server
2021-04-21 13:53:57 +02:00
Matteo Federico Zazzetta
6c9b5fb660 Added installation files (binary lib, include and mkspecs) for qHttWebServer for ios and android.
Modified example template to support websocket reconnection
2021-04-21 12:55:44 +02:00
Roberto Viola
3205869ab0 first implementation of soleelliptical #278 2021-04-21 11:48:38 +02:00
Roberto Viola
417ae3c9d8 qml setting avaiable also for linux and windows #277 2021-04-21 08:34:50 +02:00
Roberto Viola
12956df6b5 added url to workout email #279 2021-04-21 08:27:52 +02:00
Roberto Viola
373e7aa505 npecablebike cadence fixed 2021-04-21 07:22:29 +02:00
Roberto Viola
eef3239a37 Merge branch 'master' into TemplatingAndWS2 2021-04-20 16:48:45 +02:00
Roberto Viola
21c26e095e added the QZ version on the bottom of the email 2021-04-20 16:39:31 +02:00
Roberto Viola
e337242d0a peloton class name showed even if it's not a peloton ride class 2021-04-20 16:28:11 +02:00
Roberto Viola
56cf4b4b9b virtual echelon bike fixed 2021-04-20 09:16:10 +02:00
Roberto Viola
69b270aef6 zwift resistance gain and offset for proformbike #277 2021-04-20 08:02:38 +02:00
Roberto Viola
40c9bfb3ac fixed crash pressing start 2021-04-19 15:59:53 +02:00
Roberto Viola
0924595b69 writing settings only if needed 2021-04-19 15:12:13 +02:00
Roberto Viola
93debf2557 reverting yesoulbike on linux 2021-04-19 13:35:06 +02:00
Roberto Viola
51c43c2a24 trying fixing #274 (yesoulbike on linux) 2021-04-19 12:16:55 +02:00
Roberto Viola
b33ee84d99 removed write external storage permission on android 2021-04-19 09:25:16 +02:00
Roberto Viola
9fbd14130c trainprogram cleared when stopped 2021-04-19 07:28:50 +02:00
Roberto Viola
0d8e5fb414 jouls in the mail now are kjouls 2021-04-19 07:08:10 +02:00
Roberto Viola
6e7f42c26d fixed build issue 2021-04-18 14:53:19 +02:00
Roberto Viola
6e4c835b51 fixed android permission on writing file and minor fixes on mail 2021-04-18 14:38:18 +02:00
Roberto Viola
acf4b3678b added a new case on virtual echelon 2021-04-17 19:03:33 +02:00
Roberto Viola
7f11cced2c avoid crashes on npecablebike 2021-04-17 09:14:55 +02:00
Roberto Viola
756d78546c ibiking+ bike supported 2021-04-17 08:18:30 +02:00
Roberto Viola
dd304f684a Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-04-16 11:45:51 +02:00
Roberto Viola
4c0af00c97 fixed zwift offset and gain on domyosbike #272 2021-04-16 11:45:16 +02:00
Roberto Viola
799795323c add peloton resistance for the bike without resistance 2021-04-15 20:47:21 +02:00
Roberto Viola
446a23519e version 2.6.5 2021-04-15 13:52:07 +02:00
Roberto Viola
5be4bb8206 heart rate fixed on JLL_IC400 2021-04-15 07:45:24 +02:00
Roberto Viola
8f318ef4f7 fixed chronobike resistance and mail error 2021-04-14 20:23:19 +02:00
Roberto Viola
f3b6bfee4c heart rate fixed for JLL_IC400 bike 2021-04-14 19:47:19 +02:00
Roberto Viola
b79d6ee1ec JLL_IC400 wattage from HR and kcal added 2021-04-14 15:44:48 +02:00
Roberto Viola
7d0589723f watts not setted to 0 when speed goes to 0 leaving a ghost value on
zwift
2021-04-14 08:01:55 +02:00
Roberto Viola
0bfc857b7f cadence peak filtered for domyosbike #268 2021-04-13 16:08:28 +02:00
Roberto Viola
78b2219f48 domyosbike init phase for changyow fixed (i hope) 2021-04-13 15:30:29 +02:00
Roberto Viola
4e8cc48c66 heart rate value for JLL_IC400 bike 2021-04-13 12:03:06 +02:00
Roberto Viola
bac6043ff1 chronobike added 2021-04-13 09:50:02 +02:00
Roberto Viola
3032e3069e stagesbike added 2021-04-13 08:59:56 +02:00
Roberto Viola
3c803d87d1 avoid to retry to login to peloton if the credentials are wrong 2021-04-13 08:26:03 +02:00
Roberto Viola
aa631ff2a6 fixed random program for bikes 2021-04-13 08:05:28 +02:00
Roberto Viola
124ec4ca4c peloton workout doesn't start if there isn't the top bar enabled 2021-04-13 07:23:54 +02:00
Roberto Viola
7f419c85ce JLL IC400 fixed 2021-04-12 17:45:11 +02:00
Roberto Viola
ecaf0a044d smtp server changed 2021-04-12 17:30:47 +02:00
Roberto Viola
0b3f05d5c3 added timeout to cscbike and npecablebike 2021-04-12 11:57:17 +02:00
Roberto Viola
8dedb81e7a other fix on JLL_IC400_bike 2021-04-12 10:56:28 +02:00
Roberto Viola
33669f3722 sending mail only if a stopped session and events synchronized 2021-04-12 09:19:48 +02:00
Roberto Viola
5952b953cf fixed cadence on JLL IC400 bike #243 2021-04-12 07:37:41 +02:00
Roberto Viola
44616bfbac distance on fit file must starts with 0 #257 2021-04-12 07:32:41 +02:00
Roberto Viola
8267c62e1b fixinig build issue with smtpclient 2021-04-12 07:07:32 +02:00
Roberto Viola
f4bf40e8a7 first email experiments 2021-04-11 19:09:04 +02:00
Roberto Viola
0f030e3b2e chart images added 2021-04-11 17:58:05 +02:00
Roberto Viola
e96aa4036f weight lbs conversion added in the settings 2021-04-11 17:03:26 +02:00
Roberto Viola
8d66f13600 ios version 2.6.0 2021-04-11 16:46:41 +02:00
Roberto Viola
8f07094067 npecablebike managed #258 2021-04-11 14:46:52 +02:00
Roberto Viola
57645bbf05 add heart rate for virtualbike echelon 2021-04-11 14:14:13 +02:00
Roberto Viola
60e096d14c Merge branch 'cadence_sensor' 2021-04-11 11:41:14 +02:00
Roberto Viola
54f9e59e61 timeout for speed for cscbike 2021-04-11 11:40:48 +02:00
Roberto Viola
43daabd397 added wheel ratio for cscbike 2021-04-11 11:39:12 +02:00
Roberto Viola
40092e9727 added some debug to ERG mode for echelonconnectsport 2021-04-10 15:03:38 +02:00
Roberto Viola
48b67cdb96 watt gain and offset weren't applied to virtualbike 2021-04-10 15:03:14 +02:00
Matteo Federico Zazzetta
028ce80766 Some JSON commands added:
- setresistance (bikes and treadmills (inclination))
- setpower (bikes only)
- setcadence (bikes only)
- setdifficult (bikes and treadmills)
- setfanspeed (bikes and treadmills)
- setspeed (treadmills)
2021-04-10 12:21:19 +02:00
Roberto Viola
4be34fd1f6 added a up and down filter for Zwift ERG Mode 2021-04-09 11:57:53 +02:00
Roberto Viola
16229bcb46 elliptical speed settings can now add decimal separator on the keyboard 2021-04-09 11:43:28 +02:00
Roberto Viola
51106cb293 heart rate always read on cscbike 2021-04-08 17:09:56 +02:00
Roberto Viola
ed0b1be6c4 csc fixes 2021-04-08 16:34:09 +02:00
Roberto Viola
8a7f3193aa first commit of cscbike 2021-04-08 16:07:07 +02:00
Roberto Viola
054fe59ddb added icon for peloton credentials if they are ok or not 2021-04-07 15:24:36 +02:00
Roberto Viola
e94bdde451 connection timeout on inspirebike 2021-04-07 14:17:01 +02:00
Roberto Viola
78dfb415bb clearing the heartRate lastname if it set to disabled 2021-04-07 12:12:28 +02:00
Roberto Viola
1c81291d5d added the ability to save settings to the debug file #240 2021-04-07 11:22:13 +02:00
Roberto Viola
c56b9ea3d3 fixed screen rotation issue #105 2021-04-07 11:08:24 +02:00
Roberto Viola
617ee0a32c fixed crash when user changes the settings while connected to the bike 2021-04-07 09:50:49 +02:00
Roberto Viola
9b1f5dfd6d fixed inclination on random training program 2021-04-07 07:42:50 +02:00
Roberto Viola
97b446ec7f distance on echelon on virtualbike 2021-04-06 08:20:24 +02:00
Roberto Viola
4b230e856c Update issue templates 2021-04-06 08:09:27 +02:00
Matteo Federico Zazzetta
42b798eb05 Prepare for PR - part 2 2021-04-05 21:27:07 +02:00
Matteo Federico Zazzetta
2e8ca637a9 Prepare for PR 2021-04-05 21:24:47 +02:00
Matteo Federico Zazzetta
c16bfffb36 Useless line removed 2021-04-05 18:07:47 +02:00
Matteo Federico Zazzetta
667b847f24 Merge with qz master 2021-04-05 17:56:43 +02:00
Matteo Federico Zazzetta
6aa479de65 Adding vlc extension needed for showing vlc subtitles 2021-04-05 17:29:07 +02:00
p3g4asus
79afb5c22e Fixes for input commands 2021-04-05 17:26:05 +02:00
p3g4asus
b634efd179 Fixes compilation warnings on iOS 2021-04-05 14:38:42 +02:00
Matteo Federico Zazzetta
da3ad44097 Adding debug webserver template 2021-04-05 14:17:03 +02:00
Matteo Federico Zazzetta
b02074e7d7 Adding debug template 2021-04-05 14:15:07 +02:00
p3g4asus
e30266863a Many Fixes!!! It seems to work fine now 2021-04-05 13:44:07 +02:00
Roberto Viola
97e6f8449d fixed a bug that occurs when you have a peloton class running and you
start QZ after
2021-04-05 11:52:04 +02:00
Roberto Viola
5b4ff32501 fixed missing training program line on peloton #233 2021-04-05 11:28:31 +02:00
Roberto Viola
7441c50dfa added setting for peloton difficulty #242 2021-04-05 10:48:03 +02:00
Matteo Federico Zazzetta
3983af0ead Fixed Settings Gui problems 2021-04-05 10:32:52 +02:00
Roberto Viola
03a0690e39 requested peloton resistance in the trainprogram #233 2021-04-05 10:31:26 +02:00
Roberto Viola
4fd51423c0 add primary service for virtual echelon on virtualbike #198 2021-04-05 10:12:45 +02:00
Matteo Federico Zazzetta
a8bb3a7cb5 First tests 2021-04-04 21:12:29 +02:00
Roberto Viola
277febac16 iOS build fixed 2021-04-04 19:59:51 +02:00
Roberto Viola
f0956f47b4 added an erg filter for zwift #230 2021-04-04 19:35:03 +02:00
Roberto Viola
5df686c1a5 fixed advertisment packet on echelon sport virtualbike 2021-04-04 19:18:17 +02:00
Roberto Viola
7f13505f54 apple watch on domyosbike #249 2021-04-04 19:07:05 +02:00
Roberto Viola
a897514fbb small fix on chart with peloton instructor 2021-04-03 15:46:37 +02:00
Roberto Viola
4b36a51861 version 2.5.20 2021-04-03 15:21:21 +02:00
Roberto Viola
07a7966879 reduced charts width to 1 2021-04-03 15:18:36 +02:00
Roberto Viola
14190a771e added target peloton resistance to echelonconnectsport #233 2021-04-03 15:13:27 +02:00
Roberto Viola
d9d92ff955 JLL IC400 bike managed #243 2021-04-03 14:57:50 +02:00
Roberto Viola
eb3d5983be pause handled on trainprogram #235 2021-04-03 14:21:40 +02:00
Roberto Viola
87a4c9511c peloton instructorName #237 2021-04-03 14:15:52 +02:00
Roberto Viola
a393e8767a limit peloton workout to 1 #236 2021-04-03 13:32:41 +02:00
Roberto Viola
2417b85f64 fixing domyosbike splitted packages #234 2021-04-03 13:30:02 +02:00
Roberto Viola
a18e2b771b fix fonts on chart on ios 2021-04-02 15:50:52 +02:00
Roberto Viola
ba268cf97c ios build fixed 2021-04-02 15:29:39 +02:00
Roberto Viola
e0a695be01 settings fixed and moved the tiles groups on the root of the settings 2021-04-02 14:51:39 +02:00
Roberto Viola
b1ceae9136 erg mode fixed 2021-04-02 14:22:24 +02:00
Roberto Viola
ff8a3dc340 JLL_IC400_bike managed 2021-04-02 14:06:44 +02:00
Roberto Viola
686c3eb6f0 autoresistance button added 2021-04-02 13:57:05 +02:00
Roberto Viola
d3cebaa79e S77 treadmill compatibility added 2021-04-02 13:22:12 +02:00
Roberto Viola
a6585e8b58 zwift erg mode for domyosbike 2021-04-02 09:46:18 +02:00
Roberto Viola
ff5143894c fix on watt function on echelonconnectsport 2021-04-02 09:08:02 +02:00
Roberto Viola
b717818616 zwift erg mode managed for echelonconnectsport 2021-04-02 09:01:47 +02:00
Roberto Viola
3a099f89f4 added target power tile and target cadence tile; managed cadence from
peloton
2021-04-02 08:35:38 +02:00
Roberto Viola
aafec8f292 screenshot has been called by QML now in order to be synced with the
chart UI
2021-04-02 08:04:56 +02:00
Roberto Viola
ba611c908e min heart rate on chart set to 60 2021-04-02 07:54:49 +02:00
Roberto Viola
05b34fd935 dateaxis on charts 2021-04-02 07:52:38 +02:00
Roberto Viola
961c070011 toolbar must be always available when entering in the chart form 2021-04-02 07:29:54 +02:00
Roberto Viola
0d4f038a26 iOS fixing Charts build issues 2021-04-02 07:18:42 +02:00
Roberto Viola
4a732edbd5 a lot of improvement on the charts! 2021-04-01 16:20:30 +02:00
Roberto Viola
1c20a2c77d power, heart and cadence chart working! 2021-04-01 12:21:53 +02:00
Roberto Viola
a6b7f4ff94 iOS version 2.5.16 2021-04-01 08:00:47 +02:00
Roberto Viola
a42d218eda Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-03-31 16:16:41 +02:00
Roberto Viola
11c137e0e3 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-03-30 18:39:43 +02:00
Roberto Viola
dea69cc74a QT iOS patches in order to restore the correct functionality on the Echelon bikes 2021-03-30 18:38:29 +02:00
Roberto Viola
e7eb0822e7 Merge pull request #228 from ben75020/docs/usage
Documentation about usage
2021-03-30 17:38:55 +02:00
ben75020
1943a08632 Merge branch 'master' into docs/usage 2021-03-30 17:37:36 +02:00
Benjamin.Riou
167dc93a55 Documentation about usage 2021-03-30 17:33:49 +02:00
Roberto Viola
9159af36f7 Merge branch 'master' of https://github.com/cagnulein/qdomyos-zwift 2021-03-30 13:37:17 +02:00
Roberto Viola
2763ce6e8a added binary patched from iOS 2021-03-30 13:37:05 +02:00
435 changed files with 39111 additions and 11618 deletions

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[REQ]"
labels: enhancement
assignees: cagnulein
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

43
.github/workflows/build_ios.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
# This is a basic workflow to help you get started with Actions
name: build-ios
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
#push:
# branches: [ master ]
#pull_request:
# branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build: # make sure build/ci work properly
runs-on: macOS-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v2
- uses: Apple-Actions/import-codesign-certs@v1
with:
p12-file-base64: ${{ secrets.CERTIFICATES_FILE_BASE64 }}
p12-password: ${{ secrets.CERTIFICATES_PASSWORD }}
- uses: Apple-Actions/download-provisioning-profiles@v1
with:
bundle-id: org.cagnulein.qdomyoszwift
issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }}
api-key-id: ${{ secrets.APPSTORE_KEY_ID }}
api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }}
- name: "#️⃣ Generate Build Number"
id: buildnumber
uses: einaregilsson/build-number@v2
with:
token: ${{ secrets.github_token }}
- run: ./Build
# - uses: Apple-Actions/upload-testflight-build@master
# with:
# app-path: .build/Artifacts/Example-iOS.ipa/Example-iOS.ipa
# issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }}
# api-key-id: ${{ secrets.APPSTORE_KEY_ID }}
# api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }}

View File

@@ -2,13 +2,18 @@
name: CI
env:
DISPLAY: ':99'
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
branches: [ master, github-workflow-playground ]
pull_request:
branches: [ master ]
schedule:
- cron: "0 */12 * * *"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
@@ -33,28 +38,39 @@ jobs:
# path: '${{ github.workspace }}/output/android/'
# key: ${{ runner.os }}-QtCache-Android
- name: Xvfb install and run
run: |
sudo apt-get install -y xvfb
Xvfb -ac ${{ env.DISPLAY }} -screen 0 1280x780x24 &
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a set of commands using the runners shell
- name: Install Qt Linux Desktop
uses: jurplel/install-qt-action@v2
- name: Checkout submodule repo
uses: actions/checkout@v2
with:
version: '5.12.9'
host: 'linux'
target: 'desktop'
modules: 'qtcharts debug_info qtnetworkauth'
dir: '${{ github.workspace }}/output/linux-desktop/'
# cached: ${{ steps.cache-qt-linux-desktop.outputs.cache-hit }}
repository: bluetiger9/SmtpClient-for-Qt
path: "src/smtpclient/"
- name: Install packages required to run QZ inside workflow
run: sudo apt-get install -y qt5-default libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-default libqt5networkauth5-dev libqt5websockets5* libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev
- name: Compile Linux Desktop
run: cd src; qmake; make -j4
run: cd src; qmake; make -j8
- name: Archive linux-desktop binary
uses: actions/upload-artifact@v2
with:
name: linux-desktop-binary
path: src/qdomyos-zwift
path: src/qdomyos-zwift
- name: Test Peloton API
if: github.event_name == 'push' || github.event_name == 'schedule'
run: cd /home/runner/work/qdomyos-zwift/qdomyos-zwift/src/; ./qdomyos-zwift -test-peloton -peloton-username ${{ secrets.peloton_username }} -peloton-password ${{ secrets.peloton_password }}
timeout-minutes: 2
- name: Test Home Fitness Buddy API
run: cd /home/runner/work/qdomyos-zwift/qdomyos-zwift/src/; ./qdomyos-zwift -test-hfb
timeout-minutes: 2
# - uses: actions/checkout@v2
# with:

16
.gitignore vendored
View File

@@ -13,7 +13,23 @@ src/qdomyos-zwift
src/ui_charts.h
src/ui_mainwindow.h
src/build/*
src/build/*
src/debug-*
*.swo
*.swp
template-examples/youtube-viewer/node_modules/*
template-examples/youtube-viewer/*.json
template-examples/youtube-viewer/.eslintrc.js
template-examples/youtube-viewer/.jshintrc
template-examples/youtube-viewer/debug.js
template-examples/train-program-saver/node_modules/*
template-examples/train-program-saver/*.json
template-examples/train-program-saver/.eslintrc.js
template-examples/train-program-saver/.jshintrc
template-examples/train-program-saver/debug.js

3
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "android_openssl"]
path = android_openssl
url = https://github.com/KDAB/android_openssl.git
[submodule "src/smtpclient"]
path = src/smtpclient
url = https://github.com/bluetiger9/SmtpClient-for-Qt.git

View File

@@ -0,0 +1,84 @@
<?xml version="1.0"?>
<manifest package="org.cagnulen.qdomyoszwift" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.6.18" android:versionCode="128" android:installLocation="auto">
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
<application android:hardwareAccelerated="true" android:debuggable="false" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="qdomyos-zwift" android:extractNativeLibs="true" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="qdomyos-zwift" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- Application arguments -->
<!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
<!-- Application arguments -->
<meta-data android:name="android.app.lib_name" android:value="qdomyos-zwift"/>
<meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
<meta-data android:name="android.app.repository" android:value="default"/>
<meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
<!-- Deploy Qt libs as part of package -->
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
<!-- Run with local libs -->
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
<meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
<!-- Used to specify custom system library path to run with local system libs -->
<!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> -->
<!-- Messages maps -->
<meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
<meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
<meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
<meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/>
<!-- Messages maps -->
<!-- Splash screen -->
<!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation,
then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and
use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you
are done populating your window with content. -->
<!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / -->
<!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / -->
<!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
<!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
<!-- Splash screen -->
<!-- Background running -->
<!-- Warning: changing this value to true may cause unexpected crashes if the
application still try to draw after
"applicationStateChanged(Qt::ApplicationSuspended)"
signal is sent! -->
<meta-data android:name="android.app.background_running" android:value="true"/>
<!-- Background running -->
<!-- auto screen scale factor -->
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="full"/>
<!-- auto screen scale factor -->
<!-- extract android style -->
<!-- available android:values :
* default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons
* full - useful QWidget & Quick Controls 1 apps
* minimal - useful for Quick Controls 2 apps, it is much faster than "full"
* none - useful for apps that don't use any of the above Qt modules
-->
<meta-data android:name="android.app.extract_android_style" android:value="default"/>
<!-- extract android style -->
<meta-data android:name="com.amazon.input.cursor" android:value="pointer"/>
</activity>
<service android:name=".ChannelService"></service>
<activity android:name="org.cagnulen.qdomyoszwift.MyActivity" />
<!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
</application>
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
</manifest>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17506" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<device id="ipad12_9rounded" orientation="landscape" layout="splitview2_3" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/>
@@ -13,32 +13,32 @@
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="981" height="1024"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="obG-Y5-kRd">
<rect key="frame" x="0.0" y="876" width="414" height="0.0"/>
<rect key="frame" x="0.0" y="1004" width="981" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="launcher" translatesAutoresizingMaskIntoConstraints="NO" id="VVq-0c-S8O">
<rect key="frame" x="20" y="348" width="374" height="201"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<rect key="frame" x="20" y="114" width="941" height="776"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
<color key="backgroundColor" red="0.10980264100000001" green="0.11007446799999999" blue="0.1176523939" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="obG-Y5-kRd" secondAttribute="centerX" id="5cz-MP-9tL"/>
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="SfN-ll-jLj"/>
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="SfN-ll-jLj"/>
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="52.173913043478265" y="375"/>
<point key="canvasLocation" x="50.625" y="373.75"/>
</scene>
</scenes>
<resources>

View File

@@ -56,6 +56,7 @@
2B42755BF45173E11E2110CB /* FitFieldDefinition.mm in Compile Sources */ = {isa = PBXBuildFile; fileRef = F3B0A31277FCD46877B1C226 /* FitFieldDefinition.mm */; settings = {ATTRIBUTES = (); }; };
2B800DC34C91D8B080DEFBE8 /* fit_mesg_with_event_broadcaster.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 24568621B9F9DEB322DAA4C4 /* fit_mesg_with_event_broadcaster.cpp */; settings = {ATTRIBUTES = (); }; };
2D4684BE88B9B0456A50B3F0 /* qdomyoszwift_plugin_import.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8DD3B05BF7374DC62BC3BA4A /* qdomyoszwift_plugin_import.cpp */; settings = {ATTRIBUTES = (); }; };
2F0E70F826316F3600E11F3A /* virtualbike_zwift.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 2F0E70F726316F3600E11F3A /* virtualbike_zwift.swift */; };
3015F9B9FF4CA6D653D46CCA /* fit_developer_field_description.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = CA35DDC56ACD982A52226071 /* fit_developer_field_description.cpp */; settings = {ATTRIBUTES = (); }; };
333C629F93DB3941862924F7 /* fit_field_base.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = BDE58BCA9ABD5DF101B0E0FF /* fit_field_base.cpp */; settings = {ATTRIBUTES = (); }; };
3407CACF00E4A0046255A968 /* qtpcre2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 344F66310C19536DB4886D8F /* qtpcre2 */; };
@@ -119,12 +120,38 @@
87062646259480B200D06586 /* ViewController.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 876E4E4F259479EE00BD5714 /* ViewController.swift */; };
87062647259480B400D06586 /* WatchKitConnection.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 876E4E53259479EE00BD5714 /* WatchKitConnection.swift */; };
87062648259480B700D06586 /* WorkoutTracking.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 876E4E50259479EE00BD5714 /* WorkoutTracking.swift */; };
87083D9626678EFA0072410D /* zwiftworkout.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87083D9526678EFA0072410D /* zwiftworkout.cpp */; };
8718CBA2263063BD004BF4EE /* soleelliptical.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CB9A263063BC004BF4EE /* soleelliptical.cpp */; };
8718CBA3263063BD004BF4EE /* templateinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CB9B263063BC004BF4EE /* templateinfosender.cpp */; };
8718CBA4263063BD004BF4EE /* templateinfosenderbuilder.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CB9D263063BC004BF4EE /* templateinfosenderbuilder.cpp */; };
8718CBA5263063BD004BF4EE /* tcpclientinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CB9F263063BD004BF4EE /* tcpclientinfosender.cpp */; };
8718CBAB263063CE004BF4EE /* moc_templateinfosenderbuilder.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CBA7263063CD004BF4EE /* moc_templateinfosenderbuilder.cpp */; };
8718CBAC263063CE004BF4EE /* moc_tcpclientinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CBA8263063CD004BF4EE /* moc_tcpclientinfosender.cpp */; };
8718CBAD263063CE004BF4EE /* moc_templateinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CBA9263063CE004BF4EE /* moc_templateinfosender.cpp */; };
8718CBAE263063CE004BF4EE /* moc_soleelliptical.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8718CBAA263063CE004BF4EE /* moc_soleelliptical.cpp */; };
871B9FD2265E6A8800DB41F4 /* powerzonepack.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 871B9FD1265E6A8800DB41F4 /* powerzonepack.cpp */; };
871B9FD4265E6A9A00DB41F4 /* moc_powerzonepack.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 871B9FD3265E6A9A00DB41F4 /* moc_powerzonepack.cpp */; };
871E4CD125A6FB5A00E18D6D /* BLEPeripheralManager.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 871E4CD025A6FB5A00E18D6D /* BLEPeripheralManager.swift */; };
872BAB4E261750EE006A59AB /* libQt5Charts.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 872BAB4D261750EE006A59AB /* libQt5Charts.a */; };
872BAB50261751FB006A59AB /* libqtchartsqml2.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 872BAB4F261751FB006A59AB /* libqtchartsqml2.a */; };
873063BE259DF20000DA0F44 /* heartratebelt.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 873063BC259DF20000DA0F44 /* heartratebelt.cpp */; };
873063C0259DF2C500DA0F44 /* moc_heartratebelt.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 873063BF259DF2C500DA0F44 /* moc_heartratebelt.cpp */; };
87310B1E266FBB59008BA0D6 /* smartrowrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87310B1B266FBB54008BA0D6 /* smartrowrower.cpp */; };
87310B1F266FBB59008BA0D6 /* homefitnessbuddy.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87310B1C266FBB57008BA0D6 /* homefitnessbuddy.cpp */; };
87310B22266FBB78008BA0D6 /* moc_homefitnessbuddy.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87310B20266FBB6E008BA0D6 /* moc_homefitnessbuddy.cpp */; };
87310B23266FBB78008BA0D6 /* moc_smartrowrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87310B21266FBB77008BA0D6 /* moc_smartrowrower.cpp */; };
87318AAD2683799100770F13 /* echelonstride.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87318AAB2683799100770F13 /* echelonstride.cpp */; };
87318AAF2683799C00770F13 /* moc_echelonstride.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87318AAE2683799C00770F13 /* moc_echelonstride.cpp */; };
87318AB126837C7600770F13 /* libQt5WebSockets.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87318AB026837AA500770F13 /* libQt5WebSockets.a */; };
87368825259C602800C71C7E /* watchAppStart.swift in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87368824259C602800C71C7E /* watchAppStart.swift */; };
87420DF6269D770F000C5EC6 /* libQt5WebView.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87420DF5269D770F000C5EC6 /* libQt5WebView.a */; };
87420DFA269D7F44000C5EC6 /* libdeclarative_webview.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87420DF9269D7F43000C5EC6 /* libdeclarative_webview.a */; };
87440FBD2640291700E4DC0B /* fitplusbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87440FBC2640291700E4DC0B /* fitplusbike.cpp */; };
87440FBF2640292900E4DC0B /* moc_fitplusbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87440FBE2640292900E4DC0B /* moc_fitplusbike.cpp */; };
87586A4125B8340E00A243C4 /* proformbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87586A4025B8340E00A243C4 /* proformbike.cpp */; };
87586A4325B8341B00A243C4 /* moc_proformbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87586A4225B8341B00A243C4 /* moc_proformbike.cpp */; };
875F69B926342E8D0009FD78 /* spirittreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 875F69B826342E8D0009FD78 /* spirittreadmill.cpp */; };
875F69BB26342E9A0009FD78 /* moc_spirittreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 875F69BA26342E9A0009FD78 /* moc_spirittreadmill.cpp */; };
8762D50F2601F7EA00F6F049 /* M3iNS.mm in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8762D50B2601F7EA00F6F049 /* M3iNS.mm */; };
8762D5102601F7EA00F6F049 /* M3iNSQT.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8762D50C2601F7EA00F6F049 /* M3iNSQT.cpp */; };
8762D5132601F89500F6F049 /* scanrecordresult.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8762D5112601F89500F6F049 /* scanrecordresult.cpp */; };
@@ -149,12 +176,30 @@
876EE3CDDF69DA139329ADD8 /* qquicklayoutsplugin in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 307B2F8E9A717B514EA118E0 /* qquicklayoutsplugin */; };
8772A0E625E43ADB0080718C /* trxappgateusbbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8772A0E525E43ADA0080718C /* trxappgateusbbike.cpp */; };
8772A0E825E43AE70080718C /* moc_trxappgateusbbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8772A0E725E43AE70080718C /* moc_trxappgateusbbike.cpp */; };
877A7609269D8E9F0024DD2C /* WebKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 877A7608269D8E9F0024DD2C /* WebKit.framework */; };
8780D947264FB8AC00192D41 /* smartspin2k.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8780D946264FB8AB00192D41 /* smartspin2k.cpp */; };
8780D949264FB8B800192D41 /* moc_smartspin2k.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8780D948264FB8B800192D41 /* moc_smartspin2k.cpp */; };
8781907E2615089D0085E656 /* peloton.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8781907C2615089D0085E656 /* peloton.cpp */; };
87819080261508B10085E656 /* moc_peloton.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8781907F261508B10085E656 /* moc_peloton.cpp */; };
8781908526150C8E0085E656 /* libqtlabsplatformplugin.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8781908126150B490085E656 /* libqtlabsplatformplugin.a */; };
8783153B25E8D81E0007817C /* moc_sportstechbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8783153A25E8D81E0007817C /* moc_sportstechbike.cpp */; };
8783153C25E8DAFD0007817C /* sportstechbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A3EBBA25D2CFED0040EB4C /* sportstechbike.cpp */; };
878A331A25AB4FF800BD13E1 /* yesoulbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 878A331725AB4FF800BD13E1 /* yesoulbike.cpp */; };
878A331D25AB50C300BD13E1 /* moc_yesoulbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 878A331B25AB50C200BD13E1 /* moc_yesoulbike.cpp */; };
87900DC6268B672E000CB351 /* renphobike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87900DC5268B672E000CB351 /* renphobike.cpp */; };
87900DC8268B673C000CB351 /* moc_renphobike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87900DC7268B673C000CB351 /* moc_renphobike.cpp */; };
8791A8AA25C8603F003B50B2 /* moc_inspirebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8791A8A925C8603F003B50B2 /* moc_inspirebike.cpp */; };
8791A8AB25C861BD003B50B2 /* inspirebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 8791A8A825C8602A003B50B2 /* inspirebike.cpp */; };
87A0C4BB262329A600121A76 /* npecablebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4B7262329A600121A76 /* npecablebike.cpp */; };
87A0C4BC262329A600121A76 /* cscbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4B9262329A600121A76 /* cscbike.cpp */; };
87A0C4BF262329B500121A76 /* moc_cscbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4BD262329B500121A76 /* moc_cscbike.cpp */; };
87A0C4C0262329B500121A76 /* moc_npecablebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4BE262329B500121A76 /* moc_npecablebike.cpp */; };
87A18F072660D5C1002D7C96 /* ftmsrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A18F052660D5C0002D7C96 /* ftmsrower.cpp */; };
87A18F092660D5D9002D7C96 /* moc_ftmsrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A18F082660D5D9002D7C96 /* moc_ftmsrower.cpp */; };
87A3BC222656429600D302E3 /* rower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A3BC1F2656429400D302E3 /* rower.cpp */; };
87A3BC232656429600D302E3 /* echelonrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A3BC202656429400D302E3 /* echelonrower.cpp */; };
87A3BC26265642A300D302E3 /* moc_rower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A3BC24265642A200D302E3 /* moc_rower.cpp */; };
87A3BC27265642A300D302E3 /* moc_echelonrower.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A3BC25265642A200D302E3 /* moc_echelonrower.cpp */; };
87A4B76125AF27CB0027EF3C /* metric.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A4B75F25AF27CB0027EF3C /* metric.cpp */; };
87B617EC25F25FED0094A1CB /* screencapture.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87B617E725F25FEC0094A1CB /* screencapture.cpp */; };
87B617ED25F25FED0094A1CB /* fitshowtreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87B617EA25F25FED0094A1CB /* fitshowtreadmill.cpp */; };
@@ -162,6 +207,34 @@
87B617F225F260150094A1CB /* moc_fitshowtreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87B617EF25F260140094A1CB /* moc_fitshowtreadmill.cpp */; };
87B617F325F260150094A1CB /* moc_snodebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87B617F025F260140094A1CB /* moc_snodebike.cpp */; };
87B617F425F260150094A1CB /* moc_screencapture.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87B617F125F260150094A1CB /* moc_screencapture.cpp */; };
87BB1774269E983200F46A1C /* moc_webserverinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87BB1773269E983200F46A1C /* moc_webserverinfosender.cpp */; };
87BB1776269E987100F46A1C /* libQt5HttpServer.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87BB1775269E987000F46A1C /* libQt5HttpServer.a */; };
87C5F0B526285E5F0067A1B5 /* mimemessage.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F09726285E5A0067A1B5 /* mimemessage.cpp */; };
87C5F0B626285E5F0067A1B5 /* quotedprintable.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F09A26285E5B0067A1B5 /* quotedprintable.cpp */; };
87C5F0B726285E5F0067A1B5 /* mimecontentformatter.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F09B26285E5B0067A1B5 /* mimecontentformatter.cpp */; };
87C5F0B826285E5F0067A1B5 /* stagesbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F09C26285E5B0067A1B5 /* stagesbike.cpp */; };
87C5F0B926285E5F0067A1B5 /* mimehtml.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0A026285E5C0067A1B5 /* mimehtml.cpp */; };
87C5F0BA26285E5F0067A1B5 /* mimefile.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0A126285E5C0067A1B5 /* mimefile.cpp */; };
87C5F0BB26285E5F0067A1B5 /* mimetext.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0A426285E5C0067A1B5 /* mimetext.cpp */; };
87C5F0BC26285E5F0067A1B5 /* SmtpMime in Copy Bundle Resources */ = {isa = PBXBuildFile; fileRef = 87C5F0A526285E5C0067A1B5 /* SmtpMime */; };
87C5F0BD26285E5F0067A1B5 /* chronobike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0A726285E5D0067A1B5 /* chronobike.cpp */; };
87C5F0BE26285E5F0067A1B5 /* mimemultipart.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0A926285E5D0067A1B5 /* mimemultipart.cpp */; };
87C5F0BF26285E5F0067A1B5 /* smtpclient.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0AC26285E5D0067A1B5 /* smtpclient.cpp */; };
87C5F0C026285E5F0067A1B5 /* mimepart.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0AD26285E5D0067A1B5 /* mimepart.cpp */; };
87C5F0C126285E5F0067A1B5 /* mimeattachment.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0AE26285E5D0067A1B5 /* mimeattachment.cpp */; };
87C5F0C226285E5F0067A1B5 /* emailaddress.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0AF26285E5E0067A1B5 /* emailaddress.cpp */; };
87C5F0C326285E5F0067A1B5 /* mimeinlinefile.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0B326285E5E0067A1B5 /* mimeinlinefile.cpp */; };
87C5F0CF26285E7E0067A1B5 /* moc_mimepart.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C426285E7D0067A1B5 /* moc_mimepart.cpp */; };
87C5F0D026285E7E0067A1B5 /* moc_smtpclient.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C526285E7D0067A1B5 /* moc_smtpclient.cpp */; };
87C5F0D126285E7E0067A1B5 /* moc_stagesbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C626285E7D0067A1B5 /* moc_stagesbike.cpp */; };
87C5F0D226285E7E0067A1B5 /* moc_mimemultipart.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C726285E7D0067A1B5 /* moc_mimemultipart.cpp */; };
87C5F0D326285E7E0067A1B5 /* moc_mimecontentformatter.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C826285E7D0067A1B5 /* moc_mimecontentformatter.cpp */; };
87C5F0D426285E7E0067A1B5 /* moc_chronobike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0C926285E7D0067A1B5 /* moc_chronobike.cpp */; };
87C5F0D526285E7E0067A1B5 /* moc_mimehtml.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0CA26285E7E0067A1B5 /* moc_mimehtml.cpp */; };
87C5F0D626285E7E0067A1B5 /* moc_emailaddress.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0CB26285E7E0067A1B5 /* moc_emailaddress.cpp */; };
87C5F0D726285E7E0067A1B5 /* moc_mimefile.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0CC26285E7E0067A1B5 /* moc_mimefile.cpp */; };
87C5F0D826285E7E0067A1B5 /* moc_quotedprintable.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0CD26285E7E0067A1B5 /* moc_quotedprintable.cpp */; };
87C5F0D926285E7E0067A1B5 /* moc_mimeattachment.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87C5F0CE26285E7E0067A1B5 /* moc_mimeattachment.cpp */; };
87CC3B9D25A08812001EC5A8 /* moc_domyoselliptical.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87CC3B9B25A08812001EC5A8 /* moc_domyoselliptical.cpp */; };
87CC3B9E25A08812001EC5A8 /* moc_elliptical.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87CC3B9C25A08812001EC5A8 /* moc_elliptical.cpp */; };
87CC3BA325A0885F001EC5A8 /* domyoselliptical.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87CC3B9F25A0885D001EC5A8 /* domyoselliptical.cpp */; };
@@ -170,6 +243,7 @@
87D269A025F535200076AA48 /* skandikawiribike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87D2699D25F535180076AA48 /* skandikawiribike.cpp */; };
87D269A325F535340076AA48 /* moc_skandikawiribike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87D269A125F535300076AA48 /* moc_skandikawiribike.cpp */; };
87D269A425F535340076AA48 /* moc_m3ibike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87D269A225F535300076AA48 /* moc_m3ibike.cpp */; };
87D44181269DE979003263D5 /* webserverinfosender.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87D44180269DE979003263D5 /* webserverinfosender.cpp */; };
87DF68B825E2673B00FCDA46 /* eslinkertreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87DF68B625E2673600FCDA46 /* eslinkertreadmill.cpp */; };
87DF68BD25E2675100FCDA46 /* moc_eslinkertreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87DF68BA25E2675100FCDA46 /* moc_eslinkertreadmill.cpp */; };
87DF68BF25E2675100FCDA46 /* moc_schwinnic4bike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87DF68BC25E2675100FCDA46 /* moc_schwinnic4bike.cpp */; };
@@ -179,6 +253,9 @@
87E6A85B25B5C8B900371D28 /* flywheelbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87E6A85925B5C8B900371D28 /* flywheelbike.cpp */; };
87EFB56E25BD703D0039DD5A /* proformtreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87EFB56C25BD703C0039DD5A /* proformtreadmill.cpp */; };
87EFB57025BD704A0039DD5A /* moc_proformtreadmill.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87EFB56F25BD704A0039DD5A /* moc_proformtreadmill.cpp */; };
87F1179E26A5FBDE00541B3A /* libqtwebview_darwin.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87420DF7269D7CE1000C5EC6 /* libqtwebview_darwin.a */; };
87FE5BAF2692F3130056EFC8 /* tacxneo2.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87FE5BAD2692F3130056EFC8 /* tacxneo2.cpp */; };
87FE5BB12692F31E0056EFC8 /* moc_tacxneo2.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87FE5BB02692F31E0056EFC8 /* moc_tacxneo2.cpp */; };
8C3422A825EF7ECD78951307 /* moc_bluetoothdevice.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 1B96B43BE93B05F81BBF0CCF /* moc_bluetoothdevice.cpp */; settings = {ATTRIBUTES = (); }; };
8FF7ED75180A8827C6B6AF63 /* qmldbg_inspector in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 67E53FD43BE69489B0434897 /* qmldbg_inspector */; };
906D4B242F504925A3CF2DBB /* GSS.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = C714C1AF3FA78E2DABBC17E8 /* GSS.framework */; };
@@ -370,6 +447,7 @@
2E6B7E1FF5E6A5461E7B7C44 /* fit_dive_summary_mesg.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_dive_summary_mesg.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_dive_summary_mesg.hpp"; sourceTree = "<absolute>"; };
2E99CE78422C13B5E8F1EB53 /* qfit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = qfit.h; path = "/Users/cagnulein/qdomyos-zwift/src/qfit.h"; sourceTree = "<absolute>"; };
2E9A703E620AD39818182E87 /* FitField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FitField.h; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/FitField.h"; sourceTree = "<absolute>"; };
2F0E70F726316F3600E11F3A /* virtualbike_zwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = virtualbike_zwift.swift; path = ../src/ios/virtualbike_zwift.swift; sourceTree = "<group>"; };
2F875FD21B3CE91076B48D2D /* domyostreadmill.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = domyostreadmill.h; path = "/Users/cagnulein/qdomyos-zwift/src/domyostreadmill.h"; sourceTree = "<absolute>"; };
302316BD81D103EDFB1BBFF4 /* fit_event_mesg.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_event_mesg.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_event_mesg.hpp"; sourceTree = "<absolute>"; };
306373050762B159D8FBFD7A /* fit_timestamp_correlation_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_timestamp_correlation_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_timestamp_correlation_mesg_listener.hpp"; sourceTree = "<absolute>"; };
@@ -506,14 +584,53 @@
867187CB3CB3703D1925C88A /* fit_weather_conditions_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_weather_conditions_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_weather_conditions_mesg_listener.hpp"; sourceTree = "<absolute>"; };
86DD72842A64993F31E31719 /* fit_ant_rx_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_ant_rx_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_ant_rx_mesg_listener.hpp"; sourceTree = "<absolute>"; };
86F10E1AE2D47520E65C0543 /* fit_dive_summary_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_dive_summary_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_dive_summary_mesg_listener.hpp"; sourceTree = "<absolute>"; };
87083D9426678EFA0072410D /* zwiftworkout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zwiftworkout.h; path = ../src/zwiftworkout.h; sourceTree = "<group>"; };
87083D9526678EFA0072410D /* zwiftworkout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = zwiftworkout.cpp; path = ../src/zwiftworkout.cpp; sourceTree = "<group>"; };
8718CB98263063BB004BF4EE /* tcpclientinfosender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tcpclientinfosender.h; path = ../src/tcpclientinfosender.h; sourceTree = "<group>"; };
8718CB99263063BB004BF4EE /* templateinfosender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = templateinfosender.h; path = ../src/templateinfosender.h; sourceTree = "<group>"; };
8718CB9A263063BC004BF4EE /* soleelliptical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = soleelliptical.cpp; path = ../src/soleelliptical.cpp; sourceTree = "<group>"; };
8718CB9B263063BC004BF4EE /* templateinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = templateinfosender.cpp; path = ../src/templateinfosender.cpp; sourceTree = "<group>"; };
8718CB9C263063BC004BF4EE /* soleelliptical.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soleelliptical.h; path = ../src/soleelliptical.h; sourceTree = "<group>"; };
8718CB9D263063BC004BF4EE /* templateinfosenderbuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = templateinfosenderbuilder.cpp; path = ../src/templateinfosenderbuilder.cpp; sourceTree = "<group>"; };
8718CB9E263063BC004BF4EE /* templateinfosenderbuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = templateinfosenderbuilder.h; path = ../src/templateinfosenderbuilder.h; sourceTree = "<group>"; };
8718CB9F263063BD004BF4EE /* tcpclientinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tcpclientinfosender.cpp; path = ../src/tcpclientinfosender.cpp; sourceTree = "<group>"; };
8718CBA1263063BD004BF4EE /* webserverinfosender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = webserverinfosender.h; path = ../src/webserverinfosender.h; sourceTree = "<group>"; };
8718CBA7263063CD004BF4EE /* moc_templateinfosenderbuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_templateinfosenderbuilder.cpp; sourceTree = "<group>"; };
8718CBA8263063CD004BF4EE /* moc_tcpclientinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_tcpclientinfosender.cpp; sourceTree = "<group>"; };
8718CBA9263063CE004BF4EE /* moc_templateinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_templateinfosender.cpp; sourceTree = "<group>"; };
8718CBAA263063CE004BF4EE /* moc_soleelliptical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_soleelliptical.cpp; sourceTree = "<group>"; };
871B9FD0265E6A8800DB41F4 /* powerzonepack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = powerzonepack.h; path = ../src/powerzonepack.h; sourceTree = "<group>"; };
871B9FD1265E6A8800DB41F4 /* powerzonepack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = powerzonepack.cpp; path = ../src/powerzonepack.cpp; sourceTree = "<group>"; };
871B9FD3265E6A9A00DB41F4 /* moc_powerzonepack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_powerzonepack.cpp; sourceTree = "<group>"; };
871E4CD025A6FB5A00E18D6D /* BLEPeripheralManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BLEPeripheralManager.swift; path = ../src/ios/BLEPeripheralManager.swift; sourceTree = "<group>"; };
872BAB4D261750EE006A59AB /* libQt5Charts.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQt5Charts.a; path = ../../Qt/5.15.2/ios/lib/libQt5Charts.a; sourceTree = "<group>"; };
872BAB4F261751FB006A59AB /* libqtchartsqml2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqtchartsqml2.a; path = ../../Qt/5.15.2/ios/qml/QtCharts/libqtchartsqml2.a; sourceTree = "<group>"; };
873063BC259DF20000DA0F44 /* heartratebelt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = heartratebelt.cpp; path = ../src/heartratebelt.cpp; sourceTree = "<group>"; };
873063BD259DF20000DA0F44 /* heartratebelt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = heartratebelt.h; path = ../src/heartratebelt.h; sourceTree = "<group>"; };
873063BF259DF2C500DA0F44 /* moc_heartratebelt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_heartratebelt.cpp; sourceTree = "<group>"; };
87310B1A266FBB54008BA0D6 /* homefitnessbuddy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = homefitnessbuddy.h; path = ../src/homefitnessbuddy.h; sourceTree = "<group>"; };
87310B1B266FBB54008BA0D6 /* smartrowrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smartrowrower.cpp; path = ../src/smartrowrower.cpp; sourceTree = "<group>"; };
87310B1C266FBB57008BA0D6 /* homefitnessbuddy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = homefitnessbuddy.cpp; path = ../src/homefitnessbuddy.cpp; sourceTree = "<group>"; };
87310B1D266FBB58008BA0D6 /* smartrowrower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smartrowrower.h; path = ../src/smartrowrower.h; sourceTree = "<group>"; };
87310B20266FBB6E008BA0D6 /* moc_homefitnessbuddy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_homefitnessbuddy.cpp; sourceTree = "<group>"; };
87310B21266FBB77008BA0D6 /* moc_smartrowrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_smartrowrower.cpp; sourceTree = "<group>"; };
87318AAB2683799100770F13 /* echelonstride.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = echelonstride.cpp; path = ../src/echelonstride.cpp; sourceTree = "<group>"; };
87318AAC2683799100770F13 /* echelonstride.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = echelonstride.h; path = ../src/echelonstride.h; sourceTree = "<group>"; };
87318AAE2683799C00770F13 /* moc_echelonstride.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_echelonstride.cpp; sourceTree = "<group>"; };
87318AB026837AA500770F13 /* libQt5WebSockets.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQt5WebSockets.a; path = ../../Qt/5.15.2/ios/lib/libQt5WebSockets.a; sourceTree = "<group>"; };
87368824259C602800C71C7E /* watchAppStart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = watchAppStart.swift; path = ../src/ios/watchAppStart.swift; sourceTree = "<group>"; };
87420DF5269D770F000C5EC6 /* libQt5WebView.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQt5WebView.a; path = ../../Qt/5.15.2/ios/lib/libQt5WebView.a; sourceTree = "<group>"; };
87420DF7269D7CE1000C5EC6 /* libqtwebview_darwin.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqtwebview_darwin.a; path = ../../Qt/5.15.2/ios/plugins/webview/libqtwebview_darwin.a; sourceTree = "<group>"; };
87420DF9269D7F43000C5EC6 /* libdeclarative_webview.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libdeclarative_webview.a; path = ../../Qt/5.15.2/ios/qml/QtWebView/libdeclarative_webview.a; sourceTree = "<group>"; };
87440FBB2640291700E4DC0B /* fitplusbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fitplusbike.h; path = ../src/fitplusbike.h; sourceTree = "<group>"; };
87440FBC2640291700E4DC0B /* fitplusbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fitplusbike.cpp; path = ../src/fitplusbike.cpp; sourceTree = "<group>"; };
87440FBE2640292900E4DC0B /* moc_fitplusbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_fitplusbike.cpp; sourceTree = "<group>"; };
87586A3F25B8340D00A243C4 /* proformbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = proformbike.h; path = ../src/proformbike.h; sourceTree = "<group>"; };
87586A4025B8340E00A243C4 /* proformbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = proformbike.cpp; path = ../src/proformbike.cpp; sourceTree = "<group>"; };
87586A4225B8341B00A243C4 /* moc_proformbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_proformbike.cpp; sourceTree = "<group>"; };
875F69B726342E8D0009FD78 /* spirittreadmill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spirittreadmill.h; path = ../src/spirittreadmill.h; sourceTree = "<group>"; };
875F69B826342E8D0009FD78 /* spirittreadmill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = spirittreadmill.cpp; path = ../src/spirittreadmill.cpp; sourceTree = "<group>"; };
875F69BA26342E9A0009FD78 /* moc_spirittreadmill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_spirittreadmill.cpp; sourceTree = "<group>"; };
8762D50B2601F7EA00F6F049 /* M3iNS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = M3iNS.mm; path = ../src/ios/M3iNS.mm; sourceTree = "<group>"; };
8762D50C2601F7EA00F6F049 /* M3iNSQT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = M3iNSQT.cpp; path = ../src/ios/M3iNSQT.cpp; sourceTree = "<group>"; };
8762D50D2601F7EA00F6F049 /* M3iNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = M3iNS.h; path = ../src/ios/M3iNS.h; sourceTree = "<group>"; };
@@ -556,6 +673,16 @@
8772A0E425E43AD90080718C /* trxappgateusbbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = trxappgateusbbike.h; path = ../src/trxappgateusbbike.h; sourceTree = "<group>"; };
8772A0E525E43ADA0080718C /* trxappgateusbbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = trxappgateusbbike.cpp; path = ../src/trxappgateusbbike.cpp; sourceTree = "<group>"; };
8772A0E725E43AE70080718C /* moc_trxappgateusbbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_trxappgateusbbike.cpp; sourceTree = "<group>"; };
877A7606269D8E0F0024DD2C /* libqtwebview_darwin_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqtwebview_darwin_debug.a; path = ../../Qt/5.15.2/ios/plugins/webview/libqtwebview_darwin_debug.a; sourceTree = "<group>"; };
877A7608269D8E9F0024DD2C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
8780D945264FB8AB00192D41 /* smartspin2k.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smartspin2k.h; path = ../src/smartspin2k.h; sourceTree = "<group>"; };
8780D946264FB8AB00192D41 /* smartspin2k.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smartspin2k.cpp; path = ../src/smartspin2k.cpp; sourceTree = "<group>"; };
8780D948264FB8B800192D41 /* moc_smartspin2k.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_smartspin2k.cpp; sourceTree = "<group>"; };
8781907C2615089D0085E656 /* peloton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = peloton.cpp; path = ../src/peloton.cpp; sourceTree = "<group>"; };
8781907D2615089D0085E656 /* peloton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = peloton.h; path = ../src/peloton.h; sourceTree = "<group>"; };
8781907F261508B10085E656 /* moc_peloton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_peloton.cpp; sourceTree = "<group>"; };
8781908126150B490085E656 /* libqtlabsplatformplugin.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqtlabsplatformplugin.a; path = ../../Qt/5.15.2/ios/qml/Qt/labs/platform/libqtlabsplatformplugin.a; sourceTree = "<group>"; };
8781908326150C5B0085E656 /* libqtlabsplatformplugin_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqtlabsplatformplugin_debug.a; path = ../../Qt/5.15.2/ios/qml/Qt/labs/platform/libqtlabsplatformplugin_debug.a; sourceTree = "<group>"; };
878225C234983ACB863D2D29 /* fit_nmea_sentence_mesg.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_nmea_sentence_mesg.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_nmea_sentence_mesg.hpp"; sourceTree = "<absolute>"; };
8783153A25E8D81E0007817C /* moc_sportstechbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_sportstechbike.cpp; sourceTree = "<group>"; };
87842E7E25AF88FB00321E69 /* secret.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secret.h; path = ../src/secret.h; sourceTree = "<group>"; };
@@ -563,9 +690,27 @@
878A331725AB4FF800BD13E1 /* yesoulbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = yesoulbike.cpp; path = ../src/yesoulbike.cpp; sourceTree = "<group>"; };
878A331825AB4FF800BD13E1 /* yesoulbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = yesoulbike.h; path = ../src/yesoulbike.h; sourceTree = "<group>"; };
878A331B25AB50C200BD13E1 /* moc_yesoulbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_yesoulbike.cpp; sourceTree = "<group>"; };
87900DC4268B672E000CB351 /* renphobike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = renphobike.h; path = ../src/renphobike.h; sourceTree = "<group>"; };
87900DC5268B672E000CB351 /* renphobike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = renphobike.cpp; path = ../src/renphobike.cpp; sourceTree = "<group>"; };
87900DC7268B673C000CB351 /* moc_renphobike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_renphobike.cpp; sourceTree = "<group>"; };
8791A8A725C8602A003B50B2 /* inspirebike.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inspirebike.h; path = ../src/inspirebike.h; sourceTree = "<group>"; };
8791A8A825C8602A003B50B2 /* inspirebike.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = inspirebike.cpp; path = ../src/inspirebike.cpp; sourceTree = "<group>"; };
8791A8A925C8603F003B50B2 /* moc_inspirebike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_inspirebike.cpp; sourceTree = "<group>"; };
87A0C4B7262329A600121A76 /* npecablebike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = npecablebike.cpp; path = ../src/npecablebike.cpp; sourceTree = "<group>"; };
87A0C4B8262329A600121A76 /* cscbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cscbike.h; path = ../src/cscbike.h; sourceTree = "<group>"; };
87A0C4B9262329A600121A76 /* cscbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cscbike.cpp; path = ../src/cscbike.cpp; sourceTree = "<group>"; };
87A0C4BA262329A600121A76 /* npecablebike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = npecablebike.h; path = ../src/npecablebike.h; sourceTree = "<group>"; };
87A0C4BD262329B500121A76 /* moc_cscbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_cscbike.cpp; sourceTree = "<group>"; };
87A0C4BE262329B500121A76 /* moc_npecablebike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_npecablebike.cpp; sourceTree = "<group>"; };
87A18F052660D5C0002D7C96 /* ftmsrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ftmsrower.cpp; path = ../src/ftmsrower.cpp; sourceTree = "<group>"; };
87A18F062660D5C1002D7C96 /* ftmsrower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ftmsrower.h; path = ../src/ftmsrower.h; sourceTree = "<group>"; };
87A18F082660D5D9002D7C96 /* moc_ftmsrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_ftmsrower.cpp; sourceTree = "<group>"; };
87A3BC1E2656429300D302E3 /* echelonrower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = echelonrower.h; path = ../src/echelonrower.h; sourceTree = "<group>"; };
87A3BC1F2656429400D302E3 /* rower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rower.cpp; path = ../src/rower.cpp; sourceTree = "<group>"; };
87A3BC202656429400D302E3 /* echelonrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = echelonrower.cpp; path = ../src/echelonrower.cpp; sourceTree = "<group>"; };
87A3BC212656429400D302E3 /* rower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rower.h; path = ../src/rower.h; sourceTree = "<group>"; };
87A3BC24265642A200D302E3 /* moc_rower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_rower.cpp; sourceTree = "<group>"; };
87A3BC25265642A200D302E3 /* moc_echelonrower.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_echelonrower.cpp; sourceTree = "<group>"; };
87A3EBB925D2CFED0040EB4C /* sportstechbike.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sportstechbike.h; path = ../src/sportstechbike.h; sourceTree = "<group>"; };
87A3EBBA25D2CFED0040EB4C /* sportstechbike.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sportstechbike.cpp; path = ../src/sportstechbike.cpp; sourceTree = "<group>"; };
87A4B75F25AF27CB0027EF3C /* metric.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = metric.cpp; path = ../src/metric.cpp; sourceTree = "<group>"; };
@@ -580,6 +725,49 @@
87B617EF25F260140094A1CB /* moc_fitshowtreadmill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_fitshowtreadmill.cpp; sourceTree = "<group>"; };
87B617F025F260140094A1CB /* moc_snodebike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_snodebike.cpp; sourceTree = "<group>"; };
87B617F125F260150094A1CB /* moc_screencapture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_screencapture.cpp; sourceTree = "<group>"; };
87BB1773269E983200F46A1C /* moc_webserverinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_webserverinfosender.cpp; sourceTree = "<group>"; };
87BB1775269E987000F46A1C /* libQt5HttpServer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQt5HttpServer.a; path = ../../Qt/5.15.2/ios/lib/libQt5HttpServer.a; sourceTree = "<group>"; };
87C5F09726285E5A0067A1B5 /* mimemessage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimemessage.cpp; path = ../src/smtpclient/src/mimemessage.cpp; sourceTree = "<group>"; };
87C5F09826285E5A0067A1B5 /* mimecontentformatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimecontentformatter.h; path = ../src/smtpclient/src/mimecontentformatter.h; sourceTree = "<group>"; };
87C5F09926285E5B0067A1B5 /* smtpclient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smtpclient.h; path = ../src/smtpclient/src/smtpclient.h; sourceTree = "<group>"; };
87C5F09A26285E5B0067A1B5 /* quotedprintable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = quotedprintable.cpp; path = ../src/smtpclient/src/quotedprintable.cpp; sourceTree = "<group>"; };
87C5F09B26285E5B0067A1B5 /* mimecontentformatter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimecontentformatter.cpp; path = ../src/smtpclient/src/mimecontentformatter.cpp; sourceTree = "<group>"; };
87C5F09C26285E5B0067A1B5 /* stagesbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stagesbike.cpp; path = ../src/stagesbike.cpp; sourceTree = "<group>"; };
87C5F09D26285E5B0067A1B5 /* stagesbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stagesbike.h; path = ../src/stagesbike.h; sourceTree = "<group>"; };
87C5F09E26285E5B0067A1B5 /* mimefile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimefile.h; path = ../src/smtpclient/src/mimefile.h; sourceTree = "<group>"; };
87C5F09F26285E5B0067A1B5 /* mimeattachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimeattachment.h; path = ../src/smtpclient/src/mimeattachment.h; sourceTree = "<group>"; };
87C5F0A026285E5C0067A1B5 /* mimehtml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimehtml.cpp; path = ../src/smtpclient/src/mimehtml.cpp; sourceTree = "<group>"; };
87C5F0A126285E5C0067A1B5 /* mimefile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimefile.cpp; path = ../src/smtpclient/src/mimefile.cpp; sourceTree = "<group>"; };
87C5F0A226285E5C0067A1B5 /* mimehtml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimehtml.h; path = ../src/smtpclient/src/mimehtml.h; sourceTree = "<group>"; };
87C5F0A326285E5C0067A1B5 /* smtpexports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smtpexports.h; path = ../src/smtpclient/src/smtpexports.h; sourceTree = "<group>"; };
87C5F0A426285E5C0067A1B5 /* mimetext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimetext.cpp; path = ../src/smtpclient/src/mimetext.cpp; sourceTree = "<group>"; };
87C5F0A526285E5C0067A1B5 /* SmtpMime */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = SmtpMime; path = ../src/smtpclient/src/SmtpMime; sourceTree = "<group>"; };
87C5F0A626285E5D0067A1B5 /* mimemessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimemessage.h; path = ../src/smtpclient/src/mimemessage.h; sourceTree = "<group>"; };
87C5F0A726285E5D0067A1B5 /* chronobike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = chronobike.cpp; path = ../src/chronobike.cpp; sourceTree = "<group>"; };
87C5F0A826285E5D0067A1B5 /* quotedprintable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quotedprintable.h; path = ../src/smtpclient/src/quotedprintable.h; sourceTree = "<group>"; };
87C5F0A926285E5D0067A1B5 /* mimemultipart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimemultipart.cpp; path = ../src/smtpclient/src/mimemultipart.cpp; sourceTree = "<group>"; };
87C5F0AA26285E5D0067A1B5 /* chronobike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = chronobike.h; path = ../src/chronobike.h; sourceTree = "<group>"; };
87C5F0AB26285E5D0067A1B5 /* emailaddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emailaddress.h; path = ../src/smtpclient/src/emailaddress.h; sourceTree = "<group>"; };
87C5F0AC26285E5D0067A1B5 /* smtpclient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smtpclient.cpp; path = ../src/smtpclient/src/smtpclient.cpp; sourceTree = "<group>"; };
87C5F0AD26285E5D0067A1B5 /* mimepart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimepart.cpp; path = ../src/smtpclient/src/mimepart.cpp; sourceTree = "<group>"; };
87C5F0AE26285E5D0067A1B5 /* mimeattachment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimeattachment.cpp; path = ../src/smtpclient/src/mimeattachment.cpp; sourceTree = "<group>"; };
87C5F0AF26285E5E0067A1B5 /* emailaddress.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = emailaddress.cpp; path = ../src/smtpclient/src/emailaddress.cpp; sourceTree = "<group>"; };
87C5F0B026285E5E0067A1B5 /* mimeinlinefile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimeinlinefile.h; path = ../src/smtpclient/src/mimeinlinefile.h; sourceTree = "<group>"; };
87C5F0B126285E5E0067A1B5 /* mimepart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimepart.h; path = ../src/smtpclient/src/mimepart.h; sourceTree = "<group>"; };
87C5F0B226285E5E0067A1B5 /* mimemultipart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimemultipart.h; path = ../src/smtpclient/src/mimemultipart.h; sourceTree = "<group>"; };
87C5F0B326285E5E0067A1B5 /* mimeinlinefile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mimeinlinefile.cpp; path = ../src/smtpclient/src/mimeinlinefile.cpp; sourceTree = "<group>"; };
87C5F0B426285E5E0067A1B5 /* mimetext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mimetext.h; path = ../src/smtpclient/src/mimetext.h; sourceTree = "<group>"; };
87C5F0C426285E7D0067A1B5 /* moc_mimepart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimepart.cpp; sourceTree = "<group>"; };
87C5F0C526285E7D0067A1B5 /* moc_smtpclient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_smtpclient.cpp; sourceTree = "<group>"; };
87C5F0C626285E7D0067A1B5 /* moc_stagesbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_stagesbike.cpp; sourceTree = "<group>"; };
87C5F0C726285E7D0067A1B5 /* moc_mimemultipart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimemultipart.cpp; sourceTree = "<group>"; };
87C5F0C826285E7D0067A1B5 /* moc_mimecontentformatter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimecontentformatter.cpp; sourceTree = "<group>"; };
87C5F0C926285E7D0067A1B5 /* moc_chronobike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_chronobike.cpp; sourceTree = "<group>"; };
87C5F0CA26285E7E0067A1B5 /* moc_mimehtml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimehtml.cpp; sourceTree = "<group>"; };
87C5F0CB26285E7E0067A1B5 /* moc_emailaddress.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_emailaddress.cpp; sourceTree = "<group>"; };
87C5F0CC26285E7E0067A1B5 /* moc_mimefile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimefile.cpp; sourceTree = "<group>"; };
87C5F0CD26285E7E0067A1B5 /* moc_quotedprintable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_quotedprintable.cpp; sourceTree = "<group>"; };
87C5F0CE26285E7E0067A1B5 /* moc_mimeattachment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_mimeattachment.cpp; sourceTree = "<group>"; };
87CC3B9B25A08812001EC5A8 /* moc_domyoselliptical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_domyoselliptical.cpp; sourceTree = "<group>"; };
87CC3B9C25A08812001EC5A8 /* moc_elliptical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_elliptical.cpp; sourceTree = "<group>"; };
87CC3B9F25A0885D001EC5A8 /* domyoselliptical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = domyoselliptical.cpp; path = ../src/domyoselliptical.cpp; sourceTree = "<group>"; };
@@ -592,6 +780,7 @@
87D2699D25F535180076AA48 /* skandikawiribike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = skandikawiribike.cpp; path = ../src/skandikawiribike.cpp; sourceTree = "<group>"; };
87D269A125F535300076AA48 /* moc_skandikawiribike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_skandikawiribike.cpp; sourceTree = "<group>"; };
87D269A225F535300076AA48 /* moc_m3ibike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_m3ibike.cpp; sourceTree = "<group>"; };
87D44180269DE979003263D5 /* webserverinfosender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = webserverinfosender.cpp; path = ../src/webserverinfosender.cpp; sourceTree = "<group>"; };
87DF68B625E2673600FCDA46 /* eslinkertreadmill.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = eslinkertreadmill.cpp; path = ../src/eslinkertreadmill.cpp; sourceTree = "<group>"; };
87DF68B725E2673600FCDA46 /* eslinkertreadmill.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = eslinkertreadmill.h; path = ../src/eslinkertreadmill.h; sourceTree = "<group>"; };
87DF68BA25E2675100FCDA46 /* moc_eslinkertreadmill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_eslinkertreadmill.cpp; sourceTree = "<group>"; };
@@ -606,6 +795,9 @@
87EFB56D25BD703C0039DD5A /* proformtreadmill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = proformtreadmill.h; path = ../src/proformtreadmill.h; sourceTree = "<group>"; };
87EFB56F25BD704A0039DD5A /* moc_proformtreadmill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_proformtreadmill.cpp; sourceTree = "<group>"; };
87FD05DDC378E9BAD82A818F /* fit_ohr_settings_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_ohr_settings_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_ohr_settings_mesg_listener.hpp"; sourceTree = "<absolute>"; };
87FE5BAD2692F3130056EFC8 /* tacxneo2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tacxneo2.cpp; path = ../src/tacxneo2.cpp; sourceTree = "<group>"; };
87FE5BAE2692F3130056EFC8 /* tacxneo2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tacxneo2.h; path = ../src/tacxneo2.h; sourceTree = "<group>"; };
87FE5BB02692F31E0056EFC8 /* moc_tacxneo2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_tacxneo2.cpp; sourceTree = "<group>"; };
8865E12618F8B1C6C0E68392 /* fit_magnetometer_data_mesg_listener.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_magnetometer_data_mesg_listener.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_magnetometer_data_mesg_listener.hpp"; sourceTree = "<absolute>"; };
888A6DE1E4CF07F80E80394B /* fit_climb_pro_mesg.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fit_climb_pro_mesg.hpp; path = "/Users/cagnulein/qdomyos-zwift/src/fit-sdk/fit_climb_pro_mesg.hpp"; sourceTree = "<absolute>"; };
89342BA50B7537C46D310A9D /* moc_gpx.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_gpx.cpp; path = "/Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/moc_gpx.cpp"; sourceTree = "<absolute>"; };
@@ -816,6 +1008,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
87BB1776269E987100F46A1C /* libQt5HttpServer.a in Link Binary With Libraries */,
87420DF6269D770F000C5EC6 /* libQt5WebView.a in Link Binary With Libraries */,
87318AB126837C7600770F13 /* libQt5WebSockets.a in Link Binary With Libraries */,
872BAB50261751FB006A59AB /* libqtchartsqml2.a in Link Binary With Libraries */,
872BAB4E261750EE006A59AB /* libQt5Charts.a in Link Binary With Libraries */,
8781908526150C8E0085E656 /* libqtlabsplatformplugin.a in Link Binary With Libraries */,
38B66B7A90741F136A02EDEB /* qios in Link Binary With Libraries */,
B460F624007324313696BE86 /* QuartzCore.framework in Link Binary With Libraries */,
4EB68D0C8182BCE33529C421 /* AudioToolbox.framework in Link Binary With Libraries */,
@@ -838,6 +1036,7 @@
CB4712349D96726A75F70643 /* CoreLocation.framework in Link Binary With Libraries */,
772295D025B09DF590D77745 /* qtposition_positionpoll in Link Binary With Libraries */,
6E6F464EA774C04145F65971 /* qmldbg_debugger in Link Binary With Libraries */,
87420DFA269D7F44000C5EC6 /* libdeclarative_webview.a in Link Binary With Libraries */,
8FF7ED75180A8827C6B6AF63 /* qmldbg_inspector in Link Binary With Libraries */,
409582A461395DCAEA1D8782 /* qmldbg_local in Link Binary With Libraries */,
868B65D0AB5114A4A0D5479E /* qmldbg_messages in Link Binary With Libraries */,
@@ -872,6 +1071,7 @@
7167B22320D1DE063C3DF45E /* windowplugin in Link Binary With Libraries */,
F55B541DFCF9C73160D34905 /* qtquick2plugin in Link Binary With Libraries */,
A8D776D53866CE53322CD19B /* Qt5QmlWorkerScript in Link Binary With Libraries */,
877A7609269D8E9F0024DD2C /* WebKit.framework in Link Binary With Libraries */,
03909ECE1BEBAF9388D44088 /* qtquicktemplates2plugin in Link Binary With Libraries */,
D7D72477443E32C7447EF906 /* qtquickcontrols2plugin in Link Binary With Libraries */,
5A4A6C1B12D4D769431E876E /* qtquickcontrols2materialstyleplugin in Link Binary With Libraries */,
@@ -894,6 +1094,7 @@
15364689D2AB5A30E87A689F /* Security.framework in Link Binary With Libraries */,
D4639595C3BCF2A39D88DF6E /* SystemConfiguration.framework in Link Binary With Libraries */,
906D4B242F504925A3CF2DBB /* GSS.framework in Link Binary With Libraries */,
87F1179E26A5FBDE00541B3A /* libqtwebview_darwin.a in Link Binary With Libraries */,
A2512002BCC1BFB4FC6D60C1 /* Qt5Core in Link Binary With Libraries */,
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
@@ -909,6 +1110,7 @@
0FF051564C679F373AD93E32 /* ios */ = {
isa = PBXGroup;
children = (
2F0E70F726316F3600E11F3A /* virtualbike_zwift.swift */,
871E4CD025A6FB5A00E18D6D /* BLEPeripheralManager.swift */,
876E4E4E259479EE00BD5714 /* APIFetcher.swift */,
876E4E52259479EE00BD5714 /* AppDelegate.swift */,
@@ -928,6 +1130,37 @@
25B08E2869634E9BCBA333A2 /* Generated Sources */ = {
isa = PBXGroup;
children = (
87BB1773269E983200F46A1C /* moc_webserverinfosender.cpp */,
87FE5BB02692F31E0056EFC8 /* moc_tacxneo2.cpp */,
87900DC7268B673C000CB351 /* moc_renphobike.cpp */,
87318AAE2683799C00770F13 /* moc_echelonstride.cpp */,
87310B20266FBB6E008BA0D6 /* moc_homefitnessbuddy.cpp */,
87310B21266FBB77008BA0D6 /* moc_smartrowrower.cpp */,
87A18F082660D5D9002D7C96 /* moc_ftmsrower.cpp */,
871B9FD3265E6A9A00DB41F4 /* moc_powerzonepack.cpp */,
87A3BC25265642A200D302E3 /* moc_echelonrower.cpp */,
87A3BC24265642A200D302E3 /* moc_rower.cpp */,
8780D948264FB8B800192D41 /* moc_smartspin2k.cpp */,
87440FBE2640292900E4DC0B /* moc_fitplusbike.cpp */,
875F69BA26342E9A0009FD78 /* moc_spirittreadmill.cpp */,
8718CBAA263063CE004BF4EE /* moc_soleelliptical.cpp */,
8718CBA8263063CD004BF4EE /* moc_tcpclientinfosender.cpp */,
8718CBA9263063CE004BF4EE /* moc_templateinfosender.cpp */,
8718CBA7263063CD004BF4EE /* moc_templateinfosenderbuilder.cpp */,
87C5F0C926285E7D0067A1B5 /* moc_chronobike.cpp */,
87C5F0CB26285E7E0067A1B5 /* moc_emailaddress.cpp */,
87C5F0CE26285E7E0067A1B5 /* moc_mimeattachment.cpp */,
87C5F0C826285E7D0067A1B5 /* moc_mimecontentformatter.cpp */,
87C5F0CC26285E7E0067A1B5 /* moc_mimefile.cpp */,
87C5F0CA26285E7E0067A1B5 /* moc_mimehtml.cpp */,
87C5F0C726285E7D0067A1B5 /* moc_mimemultipart.cpp */,
87C5F0C426285E7D0067A1B5 /* moc_mimepart.cpp */,
87C5F0CD26285E7E0067A1B5 /* moc_quotedprintable.cpp */,
87C5F0C526285E7D0067A1B5 /* moc_smtpclient.cpp */,
87C5F0C626285E7D0067A1B5 /* moc_stagesbike.cpp */,
87A0C4BD262329B500121A76 /* moc_cscbike.cpp */,
87A0C4BE262329B500121A76 /* moc_npecablebike.cpp */,
8781907F261508B10085E656 /* moc_peloton.cpp */,
87D269A225F535300076AA48 /* moc_m3ibike.cpp */,
87D269A125F535300076AA48 /* moc_skandikawiribike.cpp */,
87B617EF25F260140094A1CB /* moc_fitshowtreadmill.cpp */,
@@ -975,6 +1208,78 @@
2EB56BE3C2D93CDAB0C52E67 /* Sources */ = {
isa = PBXGroup;
children = (
87D44180269DE979003263D5 /* webserverinfosender.cpp */,
87FE5BAD2692F3130056EFC8 /* tacxneo2.cpp */,
87FE5BAE2692F3130056EFC8 /* tacxneo2.h */,
87900DC5268B672E000CB351 /* renphobike.cpp */,
87900DC4268B672E000CB351 /* renphobike.h */,
87318AAB2683799100770F13 /* echelonstride.cpp */,
87318AAC2683799100770F13 /* echelonstride.h */,
87310B1C266FBB57008BA0D6 /* homefitnessbuddy.cpp */,
87310B1A266FBB54008BA0D6 /* homefitnessbuddy.h */,
87310B1B266FBB54008BA0D6 /* smartrowrower.cpp */,
87310B1D266FBB58008BA0D6 /* smartrowrower.h */,
87083D9526678EFA0072410D /* zwiftworkout.cpp */,
87083D9426678EFA0072410D /* zwiftworkout.h */,
87A18F052660D5C0002D7C96 /* ftmsrower.cpp */,
87A18F062660D5C1002D7C96 /* ftmsrower.h */,
871B9FD1265E6A8800DB41F4 /* powerzonepack.cpp */,
871B9FD0265E6A8800DB41F4 /* powerzonepack.h */,
87A3BC202656429400D302E3 /* echelonrower.cpp */,
87A3BC1E2656429300D302E3 /* echelonrower.h */,
87A3BC1F2656429400D302E3 /* rower.cpp */,
87A3BC212656429400D302E3 /* rower.h */,
8780D946264FB8AB00192D41 /* smartspin2k.cpp */,
8780D945264FB8AB00192D41 /* smartspin2k.h */,
87440FBC2640291700E4DC0B /* fitplusbike.cpp */,
87440FBB2640291700E4DC0B /* fitplusbike.h */,
875F69B826342E8D0009FD78 /* spirittreadmill.cpp */,
875F69B726342E8D0009FD78 /* spirittreadmill.h */,
8718CB9A263063BC004BF4EE /* soleelliptical.cpp */,
8718CB9C263063BC004BF4EE /* soleelliptical.h */,
8718CB9F263063BD004BF4EE /* tcpclientinfosender.cpp */,
8718CB98263063BB004BF4EE /* tcpclientinfosender.h */,
8718CB9B263063BC004BF4EE /* templateinfosender.cpp */,
8718CB99263063BB004BF4EE /* templateinfosender.h */,
8718CB9D263063BC004BF4EE /* templateinfosenderbuilder.cpp */,
8718CB9E263063BC004BF4EE /* templateinfosenderbuilder.h */,
8718CBA1263063BD004BF4EE /* webserverinfosender.h */,
87C5F0A726285E5D0067A1B5 /* chronobike.cpp */,
87C5F0AA26285E5D0067A1B5 /* chronobike.h */,
87C5F0AF26285E5E0067A1B5 /* emailaddress.cpp */,
87C5F0AB26285E5D0067A1B5 /* emailaddress.h */,
87C5F0AE26285E5D0067A1B5 /* mimeattachment.cpp */,
87C5F09F26285E5B0067A1B5 /* mimeattachment.h */,
87C5F09B26285E5B0067A1B5 /* mimecontentformatter.cpp */,
87C5F09826285E5A0067A1B5 /* mimecontentformatter.h */,
87C5F0A126285E5C0067A1B5 /* mimefile.cpp */,
87C5F09E26285E5B0067A1B5 /* mimefile.h */,
87C5F0A026285E5C0067A1B5 /* mimehtml.cpp */,
87C5F0A226285E5C0067A1B5 /* mimehtml.h */,
87C5F0B326285E5E0067A1B5 /* mimeinlinefile.cpp */,
87C5F0B026285E5E0067A1B5 /* mimeinlinefile.h */,
87C5F09726285E5A0067A1B5 /* mimemessage.cpp */,
87C5F0A626285E5D0067A1B5 /* mimemessage.h */,
87C5F0A926285E5D0067A1B5 /* mimemultipart.cpp */,
87C5F0B226285E5E0067A1B5 /* mimemultipart.h */,
87C5F0AD26285E5D0067A1B5 /* mimepart.cpp */,
87C5F0B126285E5E0067A1B5 /* mimepart.h */,
87C5F0A426285E5C0067A1B5 /* mimetext.cpp */,
87C5F0B426285E5E0067A1B5 /* mimetext.h */,
87C5F09A26285E5B0067A1B5 /* quotedprintable.cpp */,
87C5F0A826285E5D0067A1B5 /* quotedprintable.h */,
87C5F0AC26285E5D0067A1B5 /* smtpclient.cpp */,
87C5F09926285E5B0067A1B5 /* smtpclient.h */,
87C5F0A326285E5C0067A1B5 /* smtpexports.h */,
87C5F0A526285E5C0067A1B5 /* SmtpMime */,
87C5F09C26285E5B0067A1B5 /* stagesbike.cpp */,
87C5F09D26285E5B0067A1B5 /* stagesbike.h */,
87A0C4B9262329A600121A76 /* cscbike.cpp */,
87A0C4B8262329A600121A76 /* cscbike.h */,
87A0C4B7262329A600121A76 /* npecablebike.cpp */,
87A0C4BA262329A600121A76 /* npecablebike.h */,
8781907C2615089D0085E656 /* peloton.cpp */,
8781907D2615089D0085E656 /* peloton.h */,
8762D5112601F89500F6F049 /* scanrecordresult.cpp */,
8762D5122601F89500F6F049 /* scanrecordresult.h */,
8762D50E2601F7EA00F6F049 /* M3iIOS-Interface.h */,
@@ -1145,6 +1450,17 @@
AF39DD055C3EF8226FBE929D /* Frameworks */ = {
isa = PBXGroup;
children = (
87BB1775269E987000F46A1C /* libQt5HttpServer.a */,
877A7608269D8E9F0024DD2C /* WebKit.framework */,
877A7606269D8E0F0024DD2C /* libqtwebview_darwin_debug.a */,
87420DF9269D7F43000C5EC6 /* libdeclarative_webview.a */,
87420DF7269D7CE1000C5EC6 /* libqtwebview_darwin.a */,
87420DF5269D770F000C5EC6 /* libQt5WebView.a */,
87318AB026837AA500770F13 /* libQt5WebSockets.a */,
872BAB4F261751FB006A59AB /* libqtchartsqml2.a */,
872BAB4D261750EE006A59AB /* libQt5Charts.a */,
8781908326150C5B0085E656 /* libqtlabsplatformplugin_debug.a */,
8781908126150B490085E656 /* libqtlabsplatformplugin.a */,
2D4A13931169E5681CE465F0 /* Qt5NetworkAuth */,
BC3A8C3E433A8FA00BB15F07 /* qios */,
7EC00404ACD5AB0E97726B0E /* QuartzCore.framework */,
@@ -1625,6 +1941,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
87C5F0BC26285E5F0067A1B5 /* SmtpMime in Copy Bundle Resources */,
2188AA0A52E9CD610922F82E /* Default-568h@2x.png in Copy Bundle Resources */,
23FA86F306CFF9E704521C39 /* LaunchScreen.storyboard in Copy Bundle Resources */,
AE8CD574A5B60EF037ACA8F8 /* Images.xcassets in Copy Bundle Resources */,
@@ -1697,79 +2014,128 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
87C5F0BB26285E5F0067A1B5 /* mimetext.cpp in Compile Sources */,
2F0E70F826316F3600E11F3A /* virtualbike_zwift.swift in Compile Sources */,
8772A0E825E43AE70080718C /* moc_trxappgateusbbike.cpp in Compile Sources */,
87062646259480B200D06586 /* ViewController.swift in Compile Sources */,
87D269A425F535340076AA48 /* moc_m3ibike.cpp in Compile Sources */,
EA780CE97E201242E33E6EEE /* bike.cpp in Compile Sources */,
87C5F0D926285E7E0067A1B5 /* moc_mimeattachment.cpp in Compile Sources */,
87B617F225F260150094A1CB /* moc_fitshowtreadmill.cpp in Compile Sources */,
8556B13A3D02D52A21FC5E3E /* bluetooth.cpp in Compile Sources */,
87586A4125B8340E00A243C4 /* proformbike.cpp in Compile Sources */,
87C5F0C126285E5F0067A1B5 /* mimeattachment.cpp in Compile Sources */,
87440FBD2640291700E4DC0B /* fitplusbike.cpp in Compile Sources */,
878A331A25AB4FF800BD13E1 /* yesoulbike.cpp in Compile Sources */,
871E4CD125A6FB5A00E18D6D /* BLEPeripheralManager.swift in Compile Sources */,
20A50533946A39CBD2C89104 /* bluetoothdevice.cpp in Compile Sources */,
87C5F0D126285E7E0067A1B5 /* moc_stagesbike.cpp in Compile Sources */,
87E5D2C625E69F3100BDBE6C /* horizontreadmill.cpp in Compile Sources */,
87E5D2C825E69F4700BDBE6C /* moc_horizontreadmill.cpp in Compile Sources */,
F1F4043967BC815770C8BEEA /* domyostreadmill.cpp in Compile Sources */,
87C5F0BF26285E5F0067A1B5 /* smtpclient.cpp in Compile Sources */,
87C5F0D826285E7E0067A1B5 /* moc_quotedprintable.cpp in Compile Sources */,
62D26402BFE7552BD542F6DF /* echelonconnectsport.cpp in Compile Sources */,
8718CBA5263063BD004BF4EE /* tcpclientinfosender.cpp in Compile Sources */,
87318AAF2683799C00770F13 /* moc_echelonstride.cpp in Compile Sources */,
E858A5D7A16BAF2837B51B61 /* fit.cpp in Compile Sources */,
87DF68BD25E2675100FCDA46 /* moc_eslinkertreadmill.cpp in Compile Sources */,
8718CBAD263063CE004BF4EE /* moc_templateinfosender.cpp in Compile Sources */,
87C5F0D326285E7E0067A1B5 /* moc_mimecontentformatter.cpp in Compile Sources */,
8718CBAB263063CE004BF4EE /* moc_templateinfosenderbuilder.cpp in Compile Sources */,
C6B3CD471768392E18F85819 /* fit_accumulated_field.cpp in Compile Sources */,
3D7395B0A17915A06361C7F3 /* fit_accumulator.cpp in Compile Sources */,
2A61806454201575EDB3F94F /* fit_buffer_encode.cpp in Compile Sources */,
BE93C6EF2C2A6BFEEC9EA565 /* fit_buffered_mesg_broadcaster.cpp in Compile Sources */,
87B617EE25F25FED0094A1CB /* snodebike.cpp in Compile Sources */,
87C5F0B526285E5F0067A1B5 /* mimemessage.cpp in Compile Sources */,
873063C0259DF2C500DA0F44 /* moc_heartratebelt.cpp in Compile Sources */,
DD5ED224478CB82859C61B9F /* fit_buffered_record_mesg_broadcaster.cpp in Compile Sources */,
87368825259C602800C71C7E /* watchAppStart.swift in Compile Sources */,
876ED21925C3E9000065F3DC /* moc_ftmsbike.cpp in Compile Sources */,
87C5F0BD26285E5F0067A1B5 /* chronobike.cpp in Compile Sources */,
87900DC8268B673C000CB351 /* moc_renphobike.cpp in Compile Sources */,
87CC3B9E25A08812001EC5A8 /* moc_elliptical.cpp in Compile Sources */,
E7F190E59DC975BA4CA65F0C /* fit_crc.cpp in Compile Sources */,
87A18F092660D5D9002D7C96 /* moc_ftmsrower.cpp in Compile Sources */,
DA1DC0B761BD7A3004BCF43D /* fit_date_time.cpp in Compile Sources */,
87A3BC232656429600D302E3 /* echelonrower.cpp in Compile Sources */,
87CC3B9D25A08812001EC5A8 /* moc_domyoselliptical.cpp in Compile Sources */,
87900DC6268B672E000CB351 /* renphobike.cpp in Compile Sources */,
DF1FD9718B75FA591A7E3D80 /* fit_decode.cpp in Compile Sources */,
878A331D25AB50C300BD13E1 /* moc_yesoulbike.cpp in Compile Sources */,
952DBD14DF6369E885020EF4 /* fit_developer_field.cpp in Compile Sources */,
8718CBA2263063BD004BF4EE /* soleelliptical.cpp in Compile Sources */,
871B9FD2265E6A8800DB41F4 /* powerzonepack.cpp in Compile Sources */,
876ED21525C3E8DE0065F3DC /* ftmsbike.cpp in Compile Sources */,
87318AAD2683799100770F13 /* echelonstride.cpp in Compile Sources */,
87C5F0C326285E5F0067A1B5 /* mimeinlinefile.cpp in Compile Sources */,
87C5F0D226285E7E0067A1B5 /* moc_mimemultipart.cpp in Compile Sources */,
A4BD6DF51CFFF867B7B5AED4 /* fit_developer_field_definition.cpp in Compile Sources */,
8762D5132601F89500F6F049 /* scanrecordresult.cpp in Compile Sources */,
3015F9B9FF4CA6D653D46CCA /* fit_developer_field_description.cpp in Compile Sources */,
87310B22266FBB78008BA0D6 /* moc_homefitnessbuddy.cpp in Compile Sources */,
87CC3BA425A0885F001EC5A8 /* elliptical.cpp in Compile Sources */,
4AD2C93A2B8FD5855E521630 /* fit_encode.cpp in Compile Sources */,
8772A0E625E43ADB0080718C /* trxappgateusbbike.cpp in Compile Sources */,
87C5F0BE26285E5F0067A1B5 /* mimemultipart.cpp in Compile Sources */,
87C5F0D426285E7E0067A1B5 /* moc_chronobike.cpp in Compile Sources */,
BBBE7689F5792CB3FD1997EC /* fit_factory.cpp in Compile Sources */,
876ED21625C3E8DE0065F3DC /* schwinnic4bike.cpp in Compile Sources */,
87D269A325F535340076AA48 /* moc_skandikawiribike.cpp in Compile Sources */,
87C5F0C226285E5F0067A1B5 /* emailaddress.cpp in Compile Sources */,
25F2400F80DAFBD41FE5CC75 /* fit_field.cpp in Compile Sources */,
87A3BC27265642A300D302E3 /* moc_echelonrower.cpp in Compile Sources */,
87EFB56E25BD703D0039DD5A /* proformtreadmill.cpp in Compile Sources */,
87FE5BAF2692F3130056EFC8 /* tacxneo2.cpp in Compile Sources */,
8718CBAC263063CE004BF4EE /* moc_tcpclientinfosender.cpp in Compile Sources */,
333C629F93DB3941862924F7 /* fit_field_base.cpp in Compile Sources */,
EEC10275DF646075E08DDC9B /* fit_field_definition.cpp in Compile Sources */,
87062645259480AB00D06586 /* LocalNotificationHelper.swift in Compile Sources */,
8718CBA4263063BD004BF4EE /* templateinfosenderbuilder.cpp in Compile Sources */,
87E6A85B25B5C8B900371D28 /* flywheelbike.cpp in Compile Sources */,
48BA9CE9D6F256A15E8FB25D /* fit_mesg.cpp in Compile Sources */,
DD2E0091F3318F053D2995AA /* fit_mesg_broadcaster.cpp in Compile Sources */,
FE77C778768741F1A161682E /* fit_mesg_definition.cpp in Compile Sources */,
875F69B926342E8D0009FD78 /* spirittreadmill.cpp in Compile Sources */,
87DF68B825E2673B00FCDA46 /* eslinkertreadmill.cpp in Compile Sources */,
8781907E2615089D0085E656 /* peloton.cpp in Compile Sources */,
2B800DC34C91D8B080DEFBE8 /* fit_mesg_with_event_broadcaster.cpp in Compile Sources */,
6DC5D7C695B8763F9E2E029F /* fit_profile.cpp in Compile Sources */,
87C5F0B726285E5F0067A1B5 /* mimecontentformatter.cpp in Compile Sources */,
23191C28CB29474279752FD3 /* fit_protocol_validator.cpp in Compile Sources */,
275D55B5D956B2E5F1B7E46E /* fit_unicode.cpp in Compile Sources */,
ACB47DC464A2BC9D39C544AD /* gpx.cpp in Compile Sources */,
6361329E515248BB41640C07 /* homeform.cpp in Compile Sources */,
87A18F072660D5C1002D7C96 /* ftmsrower.cpp in Compile Sources */,
87C5F0D026285E7E0067A1B5 /* moc_smtpclient.cpp in Compile Sources */,
7CF08714869DA569C2EA551C /* keepawakehelper.cpp in Compile Sources */,
87310B1E266FBB59008BA0D6 /* smartrowrower.cpp in Compile Sources */,
87A3BC222656429600D302E3 /* rower.cpp in Compile Sources */,
C719682D8D421AF6B2DAAEA9 /* main.cpp in Compile Sources */,
87BB1774269E983200F46A1C /* moc_webserverinfosender.cpp in Compile Sources */,
25FCD41CCCAF49293B9369E8 /* qfit.cpp in Compile Sources */,
87C5F0B926285E5F0067A1B5 /* mimehtml.cpp in Compile Sources */,
27E452D452B62D0948DF0755 /* sessionline.cpp in Compile Sources */,
E40895A73216AC52D35083D9 /* signalhandler.cpp in Compile Sources */,
87DF68BF25E2675100FCDA46 /* moc_schwinnic4bike.cpp in Compile Sources */,
BE1D17BBF32F04829E1B3767 /* toorxtreadmill.cpp in Compile Sources */,
4697729B15991E98D6A2533D /* treadmill.cpp in Compile Sources */,
20AA270C9F447F42F5DC2FF2 /* trainprogram.cpp in Compile Sources */,
87C5F0C026285E5F0067A1B5 /* mimepart.cpp in Compile Sources */,
47E45EE0BB22C1E4332F1D1D /* trxappgateusbtreadmill.cpp in Compile Sources */,
8780D949264FB8B800192D41 /* moc_smartspin2k.cpp in Compile Sources */,
6943DA124B60175E1F9EBD1B /* virtualbike.cpp in Compile Sources */,
8780D947264FB8AC00192D41 /* smartspin2k.cpp in Compile Sources */,
87C5F0CF26285E7E0067A1B5 /* moc_mimepart.cpp in Compile Sources */,
0317752B0C295CAB82D37E45 /* virtualtreadmill.cpp in Compile Sources */,
87819080261508B10085E656 /* moc_peloton.cpp in Compile Sources */,
7EC1321DD83EAAFAA2B7109C /* domyosbike.cpp in Compile Sources */,
614192CB787D12C3E98ADE55 /* lockscreen.mm in Compile Sources */,
87A0C4BB262329A600121A76 /* npecablebike.cpp in Compile Sources */,
87A3BC26265642A300D302E3 /* moc_rower.cpp in Compile Sources */,
0F974CB18B3E792B42270F19 /* FitDecode.mm in Compile Sources */,
87440FBF2640292900E4DC0B /* moc_fitplusbike.cpp in Compile Sources */,
87B617EC25F25FED0094A1CB /* screencapture.cpp in Compile Sources */,
FB2566376FE0FB17ED3DE94D /* FitDeveloperField.mm in Compile Sources */,
43FA2D5EA73D9C89F1A333B6 /* FitEncode.mm in Compile Sources */,
@@ -1778,12 +2144,14 @@
87062643259480A200D06586 /* AppDelegate.swift in Compile Sources */,
2B42755BF45173E11E2110CB /* FitFieldDefinition.mm in Compile Sources */,
DF373364C5474D877506CB26 /* FitMesg.mm in Compile Sources */,
87FE5BB12692F31E0056EFC8 /* moc_tacxneo2.cpp in Compile Sources */,
8791A8AA25C8603F003B50B2 /* moc_inspirebike.cpp in Compile Sources */,
03F49BBCF19B73B18385B13D /* FitMesgDefinition.mm in Compile Sources */,
2D4684BE88B9B0456A50B3F0 /* qdomyoszwift_plugin_import.cpp in Compile Sources */,
8783153C25E8DAFD0007817C /* sportstechbike.cpp in Compile Sources */,
210F6A0A7E2FA7CDD3CA0084 /* qdomyoszwift_qml_plugin_import.cpp in Compile Sources */,
87062644259480A600D06586 /* APIFetcher.swift in Compile Sources */,
87C5F0D626285E7E0067A1B5 /* moc_emailaddress.cpp in Compile Sources */,
39FAA19B9285AB16AE3A39BA /* qrc_icons.cpp in Compile Sources */,
87D2699F25F535200076AA48 /* m3ibike.cpp in Compile Sources */,
7352E0F0EE5366AC809B9D64 /* qrc_qml.cpp in Compile Sources */,
@@ -1798,27 +2166,43 @@
9D9484EED654597C394345DE /* moc_echelonconnectsport.cpp in Compile Sources */,
7DEEAF0C3D671FBFD84ACFCE /* moc_homeform.cpp in Compile Sources */,
934A3E33459C9220F257B271 /* moc_qfit.cpp in Compile Sources */,
8718CBAE263063CE004BF4EE /* moc_soleelliptical.cpp in Compile Sources */,
E62DA5FF2436135448C94671 /* moc_toorxtreadmill.cpp in Compile Sources */,
87586A4325B8341B00A243C4 /* moc_proformbike.cpp in Compile Sources */,
87CC3BA325A0885F001EC5A8 /* domyoselliptical.cpp in Compile Sources */,
87B617F325F260150094A1CB /* moc_snodebike.cpp in Compile Sources */,
87C5F0D726285E7E0067A1B5 /* moc_mimefile.cpp in Compile Sources */,
8762D5102601F7EA00F6F049 /* M3iNSQT.cpp in Compile Sources */,
8718CBA3263063BD004BF4EE /* templateinfosender.cpp in Compile Sources */,
E8B499F921FB0AB55C7A8A8B /* moc_gpx.cpp in Compile Sources */,
87E6A85825B5C88E00371D28 /* moc_flywheelbike.cpp in Compile Sources */,
87310B1F266FBB59008BA0D6 /* homefitnessbuddy.cpp in Compile Sources */,
140BAAA8823E05940EF35A38 /* moc_treadmill.cpp in Compile Sources */,
87C5F0BA26285E5F0067A1B5 /* mimefile.cpp in Compile Sources */,
87B617F425F260150094A1CB /* moc_screencapture.cpp in Compile Sources */,
87B617ED25F25FED0094A1CB /* fitshowtreadmill.cpp in Compile Sources */,
87A0C4BC262329A600121A76 /* cscbike.cpp in Compile Sources */,
692540CF811B06A8710A0A52 /* moc_mainwindow.cpp in Compile Sources */,
87D269A025F535200076AA48 /* skandikawiribike.cpp in Compile Sources */,
8791A8AB25C861BD003B50B2 /* inspirebike.cpp in Compile Sources */,
87D44181269DE979003263D5 /* webserverinfosender.cpp in Compile Sources */,
87062647259480B400D06586 /* WatchKitConnection.swift in Compile Sources */,
AFEC086E92015064EB841234 /* moc_trainprogram.cpp in Compile Sources */,
87A0C4C0262329B500121A76 /* moc_npecablebike.cpp in Compile Sources */,
8762D50F2601F7EA00F6F049 /* M3iNS.mm in Compile Sources */,
87C5F0B626285E5F0067A1B5 /* quotedprintable.cpp in Compile Sources */,
87310B23266FBB78008BA0D6 /* moc_smartrowrower.cpp in Compile Sources */,
EE29228550794460E7654533 /* moc_trxappgateusbtreadmill.cpp in Compile Sources */,
3DB7B5F0CE1E2390CEFFC1E8 /* moc_virtualbike.cpp in Compile Sources */,
5FE99682776C1DE51F508F6B /* moc_virtualtreadmill.cpp in Compile Sources */,
74C43649C9C4E2E5F9378019 /* moc_domyosbike.cpp in Compile Sources */,
87083D9626678EFA0072410D /* zwiftworkout.cpp in Compile Sources */,
87C5F0B826285E5F0067A1B5 /* stagesbike.cpp in Compile Sources */,
87C5F0D526285E7E0067A1B5 /* moc_mimehtml.cpp in Compile Sources */,
871B9FD4265E6A9A00DB41F4 /* moc_powerzonepack.cpp in Compile Sources */,
87A0C4BF262329B500121A76 /* moc_cscbike.cpp in Compile Sources */,
8783153B25E8D81E0007817C /* moc_sportstechbike.cpp in Compile Sources */,
875F69BB26342E9A0009FD78 /* moc_spirittreadmill.cpp in Compile Sources */,
);
name = "Compile Sources";
runOnlyForDeploymentPostprocessing = 0;
@@ -2164,7 +2548,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = "../src/ios/qdomyos-zwift.entitlements";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEVELOPMENT_TEAM = 6335M7T29D;
ENABLE_BITCODE = YES;
HEADER_SEARCH_PATHS = (
@@ -2181,13 +2565,101 @@
../../Qt/5.15.2/ios/include/QtPositioning,
../../Qt/5.15.2/ios/include/QtQmlModels,
../../Qt/5.15.2/ios/include/QtQml,
../../Qt/5.15.2/ios/include/QtCharts,
../../Qt/5.15.2/ios/include/QtNetwork,
../../Qt/5.15.2/ios/include/QtCore,
.,
"../../Qt/5.15.2/ios/mkspecs/macx-ios-clang",
../../Qt/5.15.2/ios/include/QtNetworkAuth,
../../Qt/5.15.2/ios/include/QtHttpServer,
);
LIBRARY_SEARCH_PATHS = (
/Users/cagnulein/Qt/5.15.2/ios/plugins/platforms,
/System/Library/Frameworks/,
/Users/cagnulein/Qt/5.15.2/ios/lib,
/Users/cagnulein/Qt/5.15.2/ios/plugins/imageformats,
/Users/cagnulein/Qt/5.15.2/ios/plugins/position,
/Users/cagnulein/Qt/5.15.2/ios/lib,
/Users/cagnulein/Qt/5.15.2/ios/plugins/qmltooling,
/Users/cagnulein/Qt/5.15.2/ios/plugins/bearer,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtGraphicalEffects/private,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml/Models.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml/WorkerScript.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Dialogs,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/platform,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/settings,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Layouts,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Window.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Templates.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtGraphicalEffects,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtCharts,
/Users/cagnulein/Qt/5.15.2/ios/plugins/webview,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtWebView,
);
MARKETING_VERSION = 2.8;
OTHER_CFLAGS = (
"-pipe",
"-g",
"-fobjc-nonfragile-abi",
"-fobjc-legacy-dispatch",
"-Wall",
"-Wextra",
"-fPIC",
"-DQT_COMPILER_SUPPORTS_SSE2",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_QML_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_QUICK_LIB",
"-DQT_GUI_LIB",
"-DQT_BLUETOOTH_LIB",
"-DQT_XML_LIB",
"-DQT_POSITIONING_LIB",
"-DQT_QMLMODELS_LIB",
"-DQT_QML_LIB",
"-DQT_NETWORKAUTH_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-DQ_HTTPSERVER",
);
OTHER_CPLUSPLUSFLAGS = (
"-pipe",
"-stdlib=libc++",
"-g",
"-std=gnu++14",
"-fobjc-nonfragile-abi",
"-fobjc-legacy-dispatch",
"-Wall",
"-Wextra",
"-fPIC",
"-DQT_COMPILER_SUPPORTS_SSE2",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_QML_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_QUICK_LIB",
"-DQT_GUI_LIB",
"-DQT_BLUETOOTH_LIB",
"-DQT_XML_LIB",
"-DQT_POSITIONING_LIB",
"-DQT_QMLMODELS_LIB",
"-DQT_QML_LIB",
"-DQT_NETWORKAUTH_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-DQ_HTTPSERVER",
"-DQT_WEBSOCKETS_LIB",
"-DCHARTJS",
);
MARKETING_VERSION = 2.5;
PRODUCT_BUNDLE_IDENTIFIER = "org.cagnulein.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = qdomyoszwift;
QMAKE_FULL_VERSION = 1.7.0;
@@ -2216,7 +2688,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = "../src/ios/qdomyos-zwift.entitlements";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = 6335M7T29D;
ENABLE_BITCODE = YES;
@@ -2235,14 +2707,102 @@
../../Qt/5.15.2/ios/include/QtPositioning,
../../Qt/5.15.2/ios/include/QtQmlModels,
../../Qt/5.15.2/ios/include/QtQml,
../../Qt/5.15.2/ios/include/QtCharts,
../../Qt/5.15.2/ios/include/QtNetwork,
../../Qt/5.15.2/ios/include/QtCore,
.,
"../../Qt/5.15.2/ios/mkspecs/macx-ios-clang",
../../Qt/5.15.2/ios/include/QtNetworkAuth,
../../Qt/5.15.2/ios/include/QtHttpServer,
);
MARKETING_VERSION = 2.5;
LIBRARY_SEARCH_PATHS = (
/Users/cagnulein/Qt/5.15.2/ios/plugins/platforms,
/System/Library/Frameworks/,
/Users/cagnulein/Qt/5.15.2/ios/lib,
/Users/cagnulein/Qt/5.15.2/ios/plugins/imageformats,
/Users/cagnulein/Qt/5.15.2/ios/plugins/position,
/Users/cagnulein/Qt/5.15.2/ios/lib,
/Users/cagnulein/Qt/5.15.2/ios/plugins/qmltooling,
/Users/cagnulein/Qt/5.15.2/ios/plugins/bearer,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtGraphicalEffects/private,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml/Models.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml/WorkerScript.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Dialogs,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/platform,
/Users/cagnulein/Qt/5.15.2/ios/qml/Qt/labs/settings,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQml,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Layouts,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Window.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Templates.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtGraphicalEffects,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtCharts,
/Users/cagnulein/Qt/5.15.2/ios/plugins/webview,
/Users/cagnulein/Qt/5.15.2/ios/qml/QtWebView,
);
MARKETING_VERSION = 2.8;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = (
"-pipe",
"-g",
"-fobjc-nonfragile-abi",
"-fobjc-legacy-dispatch",
"-Wall",
"-Wextra",
"-fPIC",
"-DQT_COMPILER_SUPPORTS_SSE2",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_QML_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_QUICK_LIB",
"-DQT_GUI_LIB",
"-DQT_BLUETOOTH_LIB",
"-DQT_XML_LIB",
"-DQT_POSITIONING_LIB",
"-DQT_QMLMODELS_LIB",
"-DQT_QML_LIB",
"-DQT_NETWORKAUTH_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-DQ_HTTPSERVER",
);
OTHER_CPLUSPLUSFLAGS = (
"-pipe",
"-stdlib=libc++",
"-g",
"-std=gnu++14",
"-fobjc-nonfragile-abi",
"-fobjc-legacy-dispatch",
"-Wall",
"-Wextra",
"-fPIC",
"-DQT_COMPILER_SUPPORTS_SSE2",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_QML_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_QUICK_LIB",
"-DQT_GUI_LIB",
"-DQT_BLUETOOTH_LIB",
"-DQT_XML_LIB",
"-DQT_POSITIONING_LIB",
"-DQT_QMLMODELS_LIB",
"-DQT_QML_LIB",
"-DQT_NETWORKAUTH_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-DQ_HTTPSERVER",
"-DQT_WEBSOCKETS_LIB",
"-DCHARTJS",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.cagnulein.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = qdomyoszwift;
QMAKE_FULL_VERSION = 1.7.0;
@@ -2304,7 +2864,7 @@
CODE_SIGN_ENTITLEMENTS = "watchkit Extension/WatchKit Extension.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEVELOPMENT_TEAM = 6335M7T29D;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@@ -2324,7 +2884,7 @@
IBSC_MODULE = watchkit_Extension;
INFOPLIST_FILE = watchkit/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MARKETING_VERSION = 2.5;
MARKETING_VERSION = 2.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (
@@ -2394,7 +2954,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = "watchkit Extension/WatchKit Extension.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 6335M7T29D;
ENABLE_NS_ASSERTIONS = NO;
@@ -2410,7 +2970,7 @@
IBSC_MODULE = watchkit_Extension;
INFOPLIST_FILE = watchkit/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MARKETING_VERSION = 2.5;
MARKETING_VERSION = 2.8;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (
@@ -2478,7 +3038,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = "watchkit Extension/WatchKit Extension.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEVELOPMENT_ASSET_PATHS = "\"watchkit Extension/Preview Content\"";
ENABLE_PREVIEWS = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -2498,7 +3058,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "watchkit Extension/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 2.5;
MARKETING_VERSION = 2.8;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (
@@ -2565,7 +3125,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = "watchkit Extension/WatchKit Extension.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2.5.11;
CURRENT_PROJECT_VERSION = 2.8.4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_ASSET_PATHS = "\"watchkit Extension/Preview Content\"";
ENABLE_NS_ASSERTIONS = NO;
@@ -2581,7 +3141,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "watchkit Extension/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 2.5;
MARKETING_VERSION = 2.8;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (

View File

@@ -59,10 +59,19 @@ extension MainController {
}
extension MainController: WorkoutTrackingDelegate {
func didReceiveHealthKitDistanceCycling(_ distanceCycling: Double) {
}
func didReceiveHealthKitActiveEnergyBurned(_ activeEnergyBurned: Double) {
}
func didReceiveHealthKitHeartRate(_ heartRate: Double) {
heartRateLabel.setText("\(heartRate) BPM")
WatchKitConnection.shared.sendMessage(message: ["heartRate":
"\(heartRate)" as AnyObject])
WorkoutTracking.distance = WatchKitConnection.distance
WorkoutTracking.kcal = WatchKitConnection.kcal
}
func didReceiveHealthKitStepCounts(_ stepCounts: Double) {

View File

@@ -21,6 +21,8 @@ protocol WatchKitConnectionProtocol {
class WatchKitConnection: NSObject {
static let shared = WatchKitConnection()
public static var distance = 0.0
public static var kcal = 0.0
weak var delegate: WatchKitConnectionDelegate?
private override init() {
@@ -59,6 +61,10 @@ extension WatchKitConnection: WatchKitConnectionProtocol {
{
validReachableSession?.sendMessage(message, replyHandler: { (result) in
print(result)
let dDistance = Double(result["distance"] as! Double)
WatchKitConnection.distance = dDistance
let dKcal = Double(result["kcal"] as! Double)
WatchKitConnection.kcal = dKcal
}, errorHandler: { (error) in
print(error)
})

View File

@@ -1,199 +1,255 @@
//
// WatchWorkoutTracking.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/12/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import Foundation
import HealthKit
protocol WorkoutTrackingDelegate: class {
func didReceiveHealthKitHeartRate(_ heartRate: Double)
func didReceiveHealthKitStepCounts(_ stepCounts: Double)
}
protocol WorkoutTrackingProtocol {
static func authorizeHealthKit()
func startWorkOut()
func stopWorkOut()
func fetchStepCounts()
}
class WorkoutTracking: NSObject {
static let shared = WorkoutTracking()
let healthStore = HKHealthStore()
let configuration = HKWorkoutConfiguration()
var workoutSession: HKWorkoutSession!
var workoutBuilder: HKLiveWorkoutBuilder!
weak var delegate: WorkoutTrackingDelegate?
override init() {
super.init()
}
}
extension WorkoutTracking {
private func handleSendStatisticsData(_ statistics: HKStatistics) {
switch statistics.quantityType {
case HKQuantityType.quantityType(forIdentifier: .heartRate):
let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
delegate?.didReceiveHealthKitHeartRate(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .stepCount):
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
return
default:
return
}
}
private func configWorkout() {
configuration.activityType = .cycling
configuration.locationType = .indoor
do {
workoutSession = try HKWorkoutSession(healthStore: healthStore, configuration: configuration)
workoutBuilder = workoutSession?.associatedWorkoutBuilder()
} catch {
return
}
workoutSession.delegate = self
workoutBuilder.delegate = self
workoutBuilder.dataSource = HKLiveWorkoutDataSource(healthStore: healthStore, workoutConfiguration: configuration)
}
}
extension WorkoutTracking: WorkoutTrackingProtocol {
static func authorizeHealthKit() {
if HKHealthStore.isHealthDataAvailable() {
let infoToRead = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.workoutType()
])
let infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.workoutType()
])
HKHealthStore().requestAuthorization(toShare: infoToShare, read: infoToRead) { (success, error) in
if success {
print("Authorization healthkit success")
} else if let error = error {
print(error)
}
}
} else {
print("HealthKit not avaiable")
}
}
func startWorkOut() {
print("Start workout")
configWorkout()
workoutSession.startActivity(with: Date())
workoutBuilder.beginCollection(withStart: Date()) { (success, error) in
print(success)
if let error = error {
print(error)
}
}
}
func stopWorkOut() {
print("Stop workout")
workoutSession.stopActivity(with: Date())
workoutSession.end()
workoutBuilder.endCollection(withEnd: Date()) { (success, error) in
}
}
func fetchStepCounts() {
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
}
}
extension WorkoutTracking: HKLiveWorkoutBuilderDelegate {
func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didCollectDataOf collectedTypes: Set<HKSampleType>) {
print("GET DATA: \(Date())")
for type in collectedTypes {
guard let quantityType = type as? HKQuantityType else {
return
}
if let statistics = workoutBuilder.statistics(for: quantityType) {
handleSendStatisticsData(statistics)
}
}
}
func workoutBuilderDidCollectEvent(_ workoutBuilder: HKLiveWorkoutBuilder) {
}
}
extension WorkoutTracking: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
}
//
// WatchWorkoutTracking.swift
// ElecDemo WatchKit Extension
//
// Created by NhatHM on 8/12/19.
// Copyright © 2019 GST.PID. All rights reserved.
//
import Foundation
import HealthKit
protocol WorkoutTrackingDelegate: class {
func didReceiveHealthKitHeartRate(_ heartRate: Double)
func didReceiveHealthKitStepCounts(_ stepCounts: Double)
func didReceiveHealthKitDistanceCycling(_ distanceCycling: Double)
func didReceiveHealthKitActiveEnergyBurned(_ activeEnergyBurned: Double)
}
protocol WorkoutTrackingProtocol {
static func authorizeHealthKit()
func startWorkOut()
func stopWorkOut()
func fetchStepCounts()
}
class WorkoutTracking: NSObject {
static let shared = WorkoutTracking()
public static var distance = Double()
public static var kcal = Double()
let healthStore = HKHealthStore()
let configuration = HKWorkoutConfiguration()
var workoutSession: HKWorkoutSession!
var workoutBuilder: HKLiveWorkoutBuilder!
weak var delegate: WorkoutTrackingDelegate?
override init() {
super.init()
}
}
extension WorkoutTracking {
private func handleSendStatisticsData(_ statistics: HKStatistics) {
switch statistics.quantityType {
case HKQuantityType.quantityType(forIdentifier: .distanceCycling):
let distanceUnit = HKUnit.mile()
let value = statistics.mostRecentQuantity()?.doubleValue(for: distanceUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
delegate?.didReceiveHealthKitDistanceCycling(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned):
let energyUnit = HKUnit.kilocalorie()
let value = statistics.mostRecentQuantity()?.doubleValue(for: energyUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
delegate?.didReceiveHealthKitActiveEnergyBurned(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .heartRate):
let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit)
let roundedValue = Double( round( 1 * value! ) / 1 )
delegate?.didReceiveHealthKitHeartRate(roundedValue)
case HKQuantityType.quantityType(forIdentifier: .stepCount):
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
return
default:
return
}
}
private func configWorkout() {
configuration.activityType = .cycling
configuration.locationType = .indoor
do {
workoutSession = try HKWorkoutSession(healthStore: healthStore, configuration: configuration)
workoutBuilder = workoutSession?.associatedWorkoutBuilder()
} catch {
return
}
workoutSession.delegate = self
workoutBuilder.delegate = self
workoutBuilder.dataSource = HKLiveWorkoutDataSource(healthStore: healthStore, workoutConfiguration: configuration)
}
}
extension WorkoutTracking: WorkoutTrackingProtocol {
static func authorizeHealthKit() {
if HKHealthStore.isHealthDataAvailable() {
let infoToRead = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
/*HKSampleType.quantityType(forIdentifier: .distanceCycling)!,
HKSampleType.quantityType(forIdentifier: .activeEnergyBurned)!,*/
HKSampleType.workoutType()
])
let infoToShare = Set([
HKSampleType.quantityType(forIdentifier: .stepCount)!,
HKSampleType.quantityType(forIdentifier: .heartRate)!,
HKSampleType.quantityType(forIdentifier: .distanceCycling)!,
HKSampleType.quantityType(forIdentifier: .activeEnergyBurned)!,
HKSampleType.workoutType()
])
HKHealthStore().requestAuthorization(toShare: infoToShare, read: infoToRead) { (success, error) in
if success {
print("Authorization healthkit success")
} else if let error = error {
print(error)
}
}
} else {
print("HealthKit not avaiable")
}
}
func startWorkOut() {
print("Start workout")
configWorkout()
workoutSession.startActivity(with: Date())
workoutBuilder.beginCollection(withStart: Date()) { (success, error) in
print(success)
if let error = error {
print(error)
}
}
}
func stopWorkOut() {
print("Stop workout")
workoutSession.stopActivity(with: Date())
workoutSession.end()
guard let quantityType = HKQuantityType.quantityType(
forIdentifier: .activeEnergyBurned) else {
return
}
let unit = HKUnit.kilocalorie()
let totalEnergyBurned = WorkoutTracking.kcal
let quantity = HKQuantity(unit: unit,
doubleValue: totalEnergyBurned)
let sample = HKCumulativeQuantitySeriesSample(type: quantityType,
quantity: quantity,
start: workoutSession.startDate!,
end: Date())
workoutBuilder.add([sample]) {(success, error) in}
guard let quantityTypeDistance = HKQuantityType.quantityType(
forIdentifier: .distanceCycling) else {
return
}
let unitDistance = HKUnit.mile()
let miles = WorkoutTracking.distance
let quantityMiles = HKQuantity(unit: unitDistance,
doubleValue: miles)
let sampleDistance = HKCumulativeQuantitySeriesSample(type: quantityTypeDistance,
quantity: quantityMiles,
start: workoutSession.startDate!,
end: Date())
workoutBuilder.add([sample]) {(success, error) in}
workoutBuilder.add([sampleDistance]) {(success, error) in}
workoutBuilder.endCollection(withEnd: Date()) { (success, error) in
}
}
func fetchStepCounts() {
guard let stepCounts = HKQuantityType.quantityType(forIdentifier: .stepCount) else {
return
}
let startOfDay = Calendar.current.startOfDay(for: Date())
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: Date(), options: .strictStartDate)
let query = HKStatisticsQuery(quantityType: stepCounts, quantitySamplePredicate: predicate, options: .cumulativeSum) { [weak self] (_, result, error) in
guard let weakSelf = self else {
return
}
var resultCount = 0.0
guard let result = result else {
print("Failed to fetch steps rate")
return
}
if let sum = result.sumQuantity() {
resultCount = sum.doubleValue(for: HKUnit.count())
weakSelf.delegate?.didReceiveHealthKitStepCounts(resultCount)
} else {
print("Failed to fetch steps rate 2")
}
}
healthStore.execute(query)
}
}
extension WorkoutTracking: HKLiveWorkoutBuilderDelegate {
func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didCollectDataOf collectedTypes: Set<HKSampleType>) {
print("GET DATA: \(Date())")
for type in collectedTypes {
guard let quantityType = type as? HKQuantityType else {
return
}
if let statistics = workoutBuilder.statistics(for: quantityType) {
handleSendStatisticsData(statistics)
}
}
}
func workoutBuilderDidCollectEvent(_ workoutBuilder: HKLiveWorkoutBuilder) {
}
}
extension WorkoutTracking: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
}
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
}

View File

@@ -104,6 +104,7 @@ This operation takes a moment to complete.
`git clone https://github.com/cagnulein/qdomyos-zwift.git`
`cd qdomyos-zwift`
`git submodule update --init src/smtpclient/`
`cd src`
`qmake`
`make`

View File

@@ -1,14 +1,52 @@
# QDomyos-Zwift operation guide
The operation guide is under construction, however you can access this [detailled blog article](https://robertoviola.cloud/qdomyos-zwift-guide/) with several useful information.
# Usage
The QDomyos-Zwift can be started in two modes : QML or NativeQT.
The main difference is the configuration management : you can change settings within the application with QML, where you need to specify settings at startup in NativeQT.
**Note:** Android and IOS are always running in QML mode.
On MacOS and Linux, you start QDomyos-Zwift in NativeQT mode (where settings are defined in commandline switches).
You can start the application in QML mode with the command-line switch -qml.
## Configuration in QML mode
Please refer to this article for more information under [QML Operations](https://robertoviola.cloud/qdomyos-zwift-guide/) with several useful information.
## No gui version
## Configuration in NativeQT mode
Run the program with `sudo ./qdomyos-zwift -no-gui -no-log`
This is the list of settings available in the application. These settings needs to be appended to the binary command line.
*Example :* `sudo ./qdomyos-zwift -no-gui` for disabling any graphical interface.
| **Option** | **Type** | **Default** | **Function** |
|:------------------------|:---------|:------------|:-----------------------------------------------------------------------------|
| -no-gui | Boolean | False | Disable GUI |
| -qml | Boolean | False | Enables the QML interface |
| -miles | Boolean | False | Swithes to Imperial Units System |
| -no-console | Boolean | False | Not in use |
| -test-resistance | Boolean | False | |
| -no-log | Boolean | False | Disable Logging |
| -no-write-resistance | Boolean | False | Disable resistance instructions from QZ to your fitness equipment |
| -no-heart-service | Boolean | False | Do not simulate external HR monitor, use only FTMS |
| -heart-service | Boolean | True | Simulate HR service (required for applications not reading FTMS) |
| -only-virtualbike | Boolean | False | |
| -only-virtualtreadmill | Boolean | False | |
| -no-reconnection | Boolean | False | QZ will not try to reconnect your fitness equipement if enabled |
| -bluetooth-relaxed | Boolean | False | In case of deconnections from QZ to your fitness equipement |
| -bike-cadence-sensor | Boolean | False | |
| -bike-power-sensor | Boolean | False | |
| -battery-service | Boolean | False | |
| -service-changed | Boolean | False | |
| -bike-wheel-revs | Boolean | False | |
| -run-cadence-sensor | Boolean | False | |
| -train | String | | Force training program |
| -name | String | | Force bluetooth device name (if QZ struggles finding your fitness equipment) |
| -poll-device-time | Int | 200 (ms) | Frequency to refresh informations from QZ to Fitness equipment |
| -bike-resistance-gain | Int | | Adjust resistance from the fitness application |
| -bike-resistance-offset | Int | | Set another resistance point than default |
Attention !
The configuration file `settings.qml` is not yet read in CLI mode.
Available configuration switches can be retreived within `main.cpp`.

View File

@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Copyright 2017 Bluetooth SIG, Inc. All rights reserved.-->
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="Rower Data" type="org.bluetooth.characteristic.rower_data"
uuid="2AD1" last-modified="2017-02-14" approved="No">
<InformativeText>
<Summary>The Rower Data characteristic is used to send
training-related data to the Client from a rower
(Server).</Summary>
</InformativeText>
<Value>
<Field name="Flags">
<Requirement>Mandatory</Requirement>
<Format>16bit</Format>
<BitField>
<Bit index="0" size="1" name="More Data">
<Enumerations>
<Enumeration key="0" value="False" requires="C1" />
<Enumeration key="1" value="True" />
</Enumerations>
</Bit>
<Bit index="1" size="1" name="Average Stroke present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C2" />
</Enumerations>
</Bit>
<Bit index="2" size="1" name="Total Distance Present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C3" />
</Enumerations>
</Bit>
<Bit index="3" size="1" name="Instantaneous Pace present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C4" />
</Enumerations>
</Bit>
<Bit index="4" size="1" name="Average Pace Present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C5" />
</Enumerations>
</Bit>
<Bit index="5" size="1" name="Instantaneous Power present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C6" />
</Enumerations>
</Bit>
<Bit index="6" size="1" name="Average Power present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C7" />
</Enumerations>
</Bit>
<Bit index="7" size="1" name="Resistance Level present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C8" />
</Enumerations>
</Bit>
<Bit index="8" size="1" name="Expended Energy present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C9" />
</Enumerations>
</Bit>
<Bit index="9" size="1" name="Heart Rate present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C10" />
</Enumerations>
</Bit>
<Bit index="10" size="1"
name="Metabolic Equivalent present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C11" />
</Enumerations>
</Bit>
<Bit index="11" size="1" name="Elapsed Time present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C12" />
</Enumerations>
</Bit>
<Bit index="12" size="1" name="Remaining Time present">
<Enumerations>
<Enumeration key="0" value="False" />
<Enumeration key="1" value="True" requires="C13" />
</Enumerations>
</Bit>
<ReservedForFutureUse index="13" size="3" />
</BitField>
</Field>
<Field name="Stroke Rate">
<InformativeText>stroke/minute with a resolution of
0.5</InformativeText>
<Requirement>C1</Requirement>
<Format>uint8</Format>
<BinaryExponent>-1</BinaryExponent>
<Unit>org.bluetooth.unit.stroke_per_minute</Unit>
</Field>
<Field name="Stroke Count">
<InformativeText>Unitless with a resolution of
1</InformativeText>
<Requirement>C1</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
</Field>
<Field name="Average Stroke Rate">
<InformativeText>1/minute with a resolution of
0.5</InformativeText>
<Requirement>C2</Requirement>
<Format>uint8</Format>
<BinaryExponent>-1</BinaryExponent>
<Unit>org.bluetooth.unit.stroke_per_minute</Unit>
</Field>
<Field name="Total Distance">
<InformativeText>Meters with a resolution of
1</InformativeText>
<Requirement>C3</Requirement>
<Format>uint24</Format>
<Unit>org.bluetooth.unit.length.metre</Unit>
</Field>
<Field name="Instantaneous Pace">
<InformativeText>Second with a resolution of
1</InformativeText>
<Requirement>C4</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
<Field name="Average Pace">
<InformativeText>Second with a resolution of
1</InformativeText>
<Requirement>C5</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
<Field name="Instantaneous Power">
<InformativeText>Watts with a resolution of
1</InformativeText>
<Requirement>C6</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.power.watt</Unit>
</Field>
<Field name="Average Power">
<InformativeText>Watts with a resolution of
1</InformativeText>
<Requirement>C7</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.power.watt</Unit>
</Field>
<Field name="Resistance Level">
<InformativeText>Unitless with a resolution of
1</InformativeText>
<Requirement>C8</Requirement>
<Format>sint16</Format>
<Unit>org.bluetooth.unit.unitless</Unit>
</Field>
<Field name="Total Energy">
<InformativeText>Kilo Calorie with a resolution of
1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Energy Per Hour">
<InformativeText>Kilo Calorie with a resolution of
1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Energy Per Minute">
<InformativeText>Kilo Calorie with a resolution of
1</InformativeText>
<Requirement>C9</Requirement>
<Format>uint8</Format>
<Unit>org.bluetooth.unit.energy.kilogram_calorie</Unit>
</Field>
<Field name="Heart Rate">
<InformativeText>Beats per minute with a resolution of
1</InformativeText>
<Requirement>C10</Requirement>
<Format>uint8</Format>
<Unit>org.bluetooth.unit.period.beats_per_minute</Unit>
</Field>
<Field name="Metabolic Equivalent">
<InformativeText>Metabolic Equivalent with a resolution of
0.1</InformativeText>
<Requirement>C11</Requirement>
<Format>uint8</Format>
<DecimalExponent>-1</DecimalExponent>
<Unit>org.bluetooth.unit.metabolic_equivalent</Unit>
</Field>
<Field name="Elapsed Time">
<InformativeText>Second with a resolution of
1</InformativeText>
<Requirement>C12</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
<Field name="Remaining Time">
<InformativeText>Second with a resolution of
1</InformativeText>
<Requirement>C13</Requirement>
<Format>uint16</Format>
<Unit>org.bluetooth.unit.time.second</Unit>
</Field>
</Value>
<Note>The fields in the above table, reading from top to bottom,
are shown in the order of LSO to MSO, where LSO = Least
Significant Octet and MSO = Most Significant Octet. The Least
Significant Octet represents the eight bits numbered 0 to
7.</Note>
</Characteristic>

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qabstracthttpserver_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserver_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverliterals_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverrequest_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverresponder_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverresponse_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverrouter_p.h"

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/httpserver/qhttpserverrouterrule_p.h"

View File

@@ -0,0 +1 @@
#include "qabstracthttpserver.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverfutureresponse.h"

View File

@@ -0,0 +1 @@
#include "qhttpserver.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverviewtraits.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverfutureresponse.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverrequest.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverresponder.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverresponse.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverrouter.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverrouterrule.h"

View File

@@ -0,0 +1 @@
#include "qhttpserverrouterviewtraits.h"

View File

@@ -0,0 +1,16 @@
#ifndef QT_QTHTTPSERVER_MODULE_H
#define QT_QTHTTPSERVER_MODULE_H
#include <QtHttpServer/QtHttpServerDepends>
#include "qthttpserverglobal.h"
#include "qabstracthttpserver.h"
#include "qhttpserver.h"
#include "qhttpserverfutureresponse.h"
#include "qhttpserverrequest.h"
#include "qhttpserverresponder.h"
#include "qhttpserverresponse.h"
#include "qhttpserverrouter.h"
#include "qhttpserverrouterrule.h"
#include "qhttpserverrouterviewtraits.h"
#include "qhttpserverviewtraits.h"
#include "qthttpserverversion.h"
#endif

View File

@@ -0,0 +1,8 @@
/* This file was generated by qmake with the info from <root>/src/httpserver/httpserver.pro. */
#ifdef __cplusplus /* create empty PCH in C mode */
#include <QtNetwork/QtNetwork>
#include <QtCore/QtCore>
#include <QtWebSockets/QtWebSockets>
#include <QtSslServer/QtSslServer>
#include <QtConcurrent/QtConcurrent>
#endif

View File

@@ -0,0 +1 @@
#include "qthttpserverversion.h"

View File

@@ -0,0 +1,6 @@
SYNCQT.HEADER_FILES = qabstracthttpserver.h qhttpserver.h qhttpserverfutureresponse.h qhttpserverrequest.h qhttpserverresponder.h qhttpserverresponse.h qhttpserverrouter.h qhttpserverrouterrule.h qhttpserverrouterviewtraits.h qhttpserverviewtraits.h qhttpserverviewtraits_impl.h qthttpserverglobal.h
SYNCQT.GENERATED_HEADER_FILES = QAbstractHttpServer QHttpServer QFutureInterface QHttpServerFutureResponse QHttpServerRequest QHttpServerResponder QHttpServerResponse QHttpServerRouter QHttpServerRouterRule QHttpServerRouterViewTraits QHttpServerAfterRequestViewTraits qthttpserverversion.h QtHttpServerVersion QtHttpServer
SYNCQT.PRIVATE_HEADER_FILES = qabstracthttpserver_p.h qhttpserver_p.h qhttpserverliterals_p.h qhttpserverrequest_p.h qhttpserverresponder_p.h qhttpserverresponse_p.h qhttpserverrouter_p.h qhttpserverrouterrule_p.h
SYNCQT.QPA_HEADER_FILES =
SYNCQT.CLEAN_HEADER_FILES = qabstracthttpserver.h qhttpserver.h qhttpserverfutureresponse.h qhttpserverrequest.h qhttpserverresponder.h qhttpserverresponse.h qhttpserverrouter.h qhttpserverrouterrule.h qhttpserverrouterviewtraits.h qhttpserverviewtraits.h qhttpserverviewtraits_impl.h qthttpserverglobal.h
SYNCQT.INJECTIONS =

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qabstracthttpserver.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserver.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverfutureresponse.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverrequest.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverresponder.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverresponse.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverrouter.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverrouterrule.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverrouterviewtraits.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverviewtraits.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qhttpserverviewtraits_impl.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/httpserver/qthttpserverglobal.h"

View File

@@ -0,0 +1,9 @@
/* This file was generated by syncqt. */
#ifndef QT_QTHTTPSERVER_VERSION_H
#define QT_QTHTTPSERVER_VERSION_H
#define QTHTTPSERVER_VERSION_STR "5.12.0"
#define QTHTTPSERVER_VERSION 0x050C00
#endif // QT_QTHTTPSERVER_VERSION_H

View File

@@ -0,0 +1 @@
#include "../../../../../../qthttpserver/src/sslserver/qsslserver_p.h"

View File

@@ -0,0 +1 @@
#include "qsslserver.h"

View File

@@ -0,0 +1,7 @@
#ifndef QT_QTSSLSERVER_MODULE_H
#define QT_QTSSLSERVER_MODULE_H
#include <QtSslServer/QtSslServerDepends>
#include "qtsslserverglobal.h"
#include "qsslserver.h"
#include "qtsslserverversion.h"
#endif

View File

@@ -0,0 +1,5 @@
/* This file was generated by qmake with the info from <root>/src/sslserver/sslserver.pro. */
#ifdef __cplusplus /* create empty PCH in C mode */
#include <QtNetwork/QtNetwork>
#include <QtCore/QtCore>
#endif

View File

@@ -0,0 +1 @@
#include "qtsslserverversion.h"

View File

@@ -0,0 +1,6 @@
SYNCQT.HEADER_FILES = qsslserver.h qtsslserverglobal.h
SYNCQT.GENERATED_HEADER_FILES = QSslServer qtsslserverversion.h QtSslServerVersion QtSslServer
SYNCQT.PRIVATE_HEADER_FILES = qsslserver_p.h
SYNCQT.QPA_HEADER_FILES =
SYNCQT.CLEAN_HEADER_FILES = qsslserver.h qtsslserverglobal.h
SYNCQT.INJECTIONS =

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/sslserver/qsslserver.h"

View File

@@ -0,0 +1 @@
#include "../../../qthttpserver/src/sslserver/qtsslserverglobal.h"

View File

@@ -0,0 +1,9 @@
/* This file was generated by syncqt. */
#ifndef QT_QTSSLSERVER_VERSION_H
#define QT_QTSSLSERVER_VERSION_H
#define QTSSLSERVER_VERSION_STR "5.12.0"
#define QTSSLSERVER_VERSION 0x050C00
#endif // QT_QTSSLSERVER_VERSION_H

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
QMAKE_PRL_BUILD_DIR = D:/Dati/GoogleDrive/cpp/build-qthttpserver-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug/src/httpserver
QMAKE_PRO_INPUT = httpserver.pro
QMAKE_PRL_TARGET = Qt5HttpServer.lib
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_plugins import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on release link_prl flat debug_and_release precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared shared release no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 compile_examples f16c force_debug_info largefile precompile_header rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions release ReleaseBuild Release build_pass c++11 win32-msvc2015 qml_debug release ReleaseBuild Release build_pass relative_qt_rpath git_build target_qt c++11 strict_c++ qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext release ReleaseBuild Release build_pass have_target dll exclusive_builds debug_info no_autoqmake thread moc resources
QMAKE_PRL_VERSION = 5.12.0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
QMAKE_PRL_BUILD_DIR = D:/Dati/GoogleDrive/cpp/build-qthttpserver-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug/src/httpserver
QMAKE_PRO_INPUT = httpserver.pro
QMAKE_PRL_TARGET = Qt5HttpServerd.lib
QMAKE_PRL_CONFIG = lex yacc debug depend_includepath testcase_targets import_plugins import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on link_prl flat debug_and_release precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared shared no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 compile_examples f16c force_debug_info largefile precompile_header rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions debug DebugBuild Debug build_pass c++11 win32-msvc2015 debug qml_debug debug DebugBuild Debug build_pass relative_qt_rpath git_build target_qt c++11 strict_c++ qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext debug DebugBuild Debug build_pass have_target dll no_plist exclusive_builds debug_info no_autoqmake thread moc resources
QMAKE_PRL_VERSION = 5.12.0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
QMAKE_PRL_BUILD_DIR = D:/Dati/GoogleDrive/cpp/build-qthttpserver-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug/src/sslserver
QMAKE_PRO_INPUT = sslserver.pro
QMAKE_PRL_TARGET = Qt5SslServer.lib
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_plugins import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on release link_prl flat debug_and_release autogen_precompile_source embed_manifest_dll embed_manifest_exe shared shared release no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 compile_examples f16c force_debug_info largefile rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions release ReleaseBuild Release build_pass c++11 win32-msvc2015 qml_debug release ReleaseBuild Release build_pass relative_qt_rpath git_build target_qt c++11 strict_c++ qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext release ReleaseBuild Release build_pass have_target dll exclusive_builds debug_info no_autoqmake thread moc resources
QMAKE_PRL_VERSION = 5.12.0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More