Compare commits
361 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e78830c5b5 | ||
|
|
31d9af07a5 | ||
|
|
1c388aa3ca | ||
|
|
030d33e8b6 | ||
|
|
fdff25facc | ||
|
|
ca7d3f2d3a | ||
|
|
c110e899c0 | ||
|
|
7e599050db | ||
|
|
37272be0b9 | ||
|
|
e1b8e59d5e | ||
|
|
784bb15f3c | ||
|
|
4e6e4dbaae | ||
|
|
932699df6e | ||
|
|
bede6301e9 | ||
|
|
e597e13f8c | ||
|
|
bcadec84d7 | ||
|
|
d65b4286e8 | ||
|
|
7cca39e2b4 | ||
|
|
95c30726f4 | ||
|
|
7a55640fdc | ||
|
|
56e09db023 | ||
|
|
e142b67368 | ||
|
|
089fd43b5d | ||
|
|
771f1c4b9c | ||
|
|
480115bef1 | ||
|
|
37aeed51a6 | ||
|
|
aff43e083a | ||
|
|
3291faf003 | ||
|
|
770ba1bc75 | ||
|
|
e584bc4f1e | ||
|
|
f203da8690 | ||
|
|
9e54e85173 | ||
|
|
8ca2a4fc07 | ||
|
|
67ef89463d | ||
|
|
b91e9c6f69 | ||
|
|
a7b45a1bff | ||
|
|
370f79b6f0 | ||
|
|
eb23778142 | ||
|
|
cc88b7b8eb | ||
|
|
b11899b6ce | ||
|
|
d989e5e00d | ||
|
|
e31e9ce5a5 | ||
|
|
95b705a37a | ||
|
|
c1c67585ba | ||
|
|
da2e6d80ba | ||
|
|
23c9ae490c | ||
|
|
ad123cdfc1 | ||
|
|
174f5bfefa | ||
|
|
77f8c48040 | ||
|
|
ed67fbadc6 | ||
|
|
b2c6356685 | ||
|
|
2624c61775 | ||
|
|
7fbd678957 | ||
|
|
399116476d | ||
|
|
8aca057474 | ||
|
|
53d375def2 | ||
|
|
00062428de | ||
|
|
37b2e13b0c | ||
|
|
23089c4b1f | ||
|
|
4d475b13e3 | ||
|
|
73f8de5037 | ||
|
|
cf0bf8a4b3 | ||
|
|
275deb5542 | ||
|
|
632e817e1d | ||
|
|
25adc74a61 | ||
|
|
7a3e1c9fb6 | ||
|
|
0fd2370d1b | ||
|
|
df4c4977de | ||
|
|
f5dcec7c34 | ||
|
|
338f63aa40 | ||
|
|
d475877d6b | ||
|
|
1d39c434a7 | ||
|
|
21078aa9b2 | ||
|
|
efc8e71ff7 | ||
|
|
4acb97c93c | ||
|
|
4c91fd95d0 | ||
|
|
c50eb06abd | ||
|
|
eb909723de | ||
|
|
f648c3ae91 | ||
|
|
8148376558 | ||
|
|
2476f77c44 | ||
|
|
9c9972adde | ||
|
|
8d36b32aea | ||
|
|
bcc831cac8 | ||
|
|
c8970442af | ||
|
|
d9c2d7217e | ||
|
|
468a543c90 | ||
|
|
2762452e7b | ||
|
|
c03996560d | ||
|
|
43ed26e822 | ||
|
|
78356ecf4b | ||
|
|
136896ea53 | ||
|
|
6a8512e623 | ||
|
|
20dad1b0f1 | ||
|
|
062f405601 | ||
|
|
5339afa449 | ||
|
|
d7f7dc9de6 | ||
|
|
073772d14c | ||
|
|
b4ea3a2fa6 | ||
|
|
93200fc9a8 | ||
|
|
f964763bc1 | ||
|
|
374fef75e2 | ||
|
|
afbb8db8f4 | ||
|
|
99cb6315ec | ||
|
|
9dfd192e15 | ||
|
|
13a4f65ccb | ||
|
|
2b10dd445e | ||
|
|
bd8b7462f9 | ||
|
|
92cc332008 | ||
|
|
a03d1bf690 | ||
|
|
8310aa2017 | ||
|
|
881bc6e9a5 | ||
|
|
2441d2908a | ||
|
|
bf4ab9571d | ||
|
|
30921940e6 | ||
|
|
dcb4d3971d | ||
|
|
df0a0c98d2 | ||
|
|
78ca3c35f3 | ||
|
|
3618f5c986 | ||
|
|
4bdcf9a5fd | ||
|
|
bfe4c450c4 | ||
|
|
094ba4a0f7 | ||
|
|
b5c7846550 | ||
|
|
83889cf0ae | ||
|
|
045d3d3336 | ||
|
|
ac937f6f16 | ||
|
|
6f49d0e490 | ||
|
|
e309c39f93 | ||
|
|
f4e1d61980 | ||
|
|
59344f74a8 | ||
|
|
986d9a7d55 | ||
|
|
2e26d40c47 | ||
|
|
8f23c6a471 | ||
|
|
45c1d6ff0a | ||
|
|
c3d6affd93 | ||
|
|
0f6646321a | ||
|
|
7de5bf533f | ||
|
|
b608755230 | ||
|
|
c484ac50f8 | ||
|
|
625d022ca6 | ||
|
|
532420bb5b | ||
|
|
e627cae245 | ||
|
|
32a4609740 | ||
|
|
b09299c23d | ||
|
|
671c27f7ba | ||
|
|
4196b99b8c | ||
|
|
27858ccc95 | ||
|
|
1fcec6a9e1 | ||
|
|
dc5159e608 | ||
|
|
ae73026ee0 | ||
|
|
5401d84c2a | ||
|
|
d99098cf0f | ||
|
|
4cb9e434d8 | ||
|
|
1302ecf56e | ||
|
|
36c3f039ef | ||
|
|
e38f0073a1 | ||
|
|
4200cea55a | ||
|
|
36ae5b1732 | ||
|
|
9a19203426 | ||
|
|
4111c5af2b | ||
|
|
f937565ebd | ||
|
|
b668f0e1e5 | ||
|
|
89d5154d26 | ||
|
|
d6c9e84fe9 | ||
|
|
4eb15236f2 | ||
|
|
4e4e551f59 | ||
|
|
8296c1f380 | ||
|
|
e27b1529d1 | ||
|
|
afc7cf9cc9 | ||
|
|
cebdd8120a | ||
|
|
a4524a60ad | ||
|
|
2b23478216 | ||
|
|
c91b87d9cf | ||
|
|
ce5e99f2c8 | ||
|
|
283d6eada2 | ||
|
|
6d48e05927 | ||
|
|
789d8f9c12 | ||
|
|
bd40dc2a78 | ||
|
|
106b648273 | ||
|
|
3afab888e5 | ||
|
|
eff45e53d0 | ||
|
|
f3352edf88 | ||
|
|
27b0352e45 | ||
|
|
0e9dee1b03 | ||
|
|
fa3d1c425a | ||
|
|
5ec0133a35 | ||
|
|
a969fc277d | ||
|
|
0f9a0519e9 | ||
|
|
395f5939b6 | ||
|
|
b1de9c958a | ||
|
|
865da62c8d | ||
|
|
ba0f46da61 | ||
|
|
4e94a6b3e9 | ||
|
|
2ea73d79b3 | ||
|
|
7c29822153 | ||
|
|
df7926692b | ||
|
|
0dabe17ed3 | ||
|
|
17443e34ca | ||
|
|
0cd76a1c73 | ||
|
|
de670c6742 | ||
|
|
c6661a8b6e | ||
|
|
69c143cad2 | ||
|
|
32df14937c | ||
|
|
1bcbdccf2c | ||
|
|
3e5af0313c | ||
|
|
f81ab2cb04 | ||
|
|
fe6caca5de | ||
|
|
5c493fe2a7 | ||
|
|
50850479fd | ||
|
|
6922eb20f9 | ||
|
|
ab692b674a | ||
|
|
ef66ecbc38 | ||
|
|
dc283acc0a | ||
|
|
7fb578f66e | ||
|
|
f9c9fd156c | ||
|
|
bfc80125c1 | ||
|
|
e005fe804d | ||
|
|
e1bc9f707b | ||
|
|
c2fb05617c | ||
|
|
03cdfe35eb | ||
|
|
77a1981da9 | ||
|
|
5ae2fbef45 | ||
|
|
93db34cf38 | ||
|
|
889a57ed7b | ||
|
|
25eb9b0990 | ||
|
|
9bf3cab830 | ||
|
|
d53af5ce90 | ||
|
|
688cafd3d6 | ||
|
|
b4d2197fd4 | ||
|
|
0a8ecbe4b6 | ||
|
|
cf9bc0696e | ||
|
|
944f2c5f1d | ||
|
|
2db2de48dc | ||
|
|
8641efb7a2 | ||
|
|
e5507e5202 | ||
|
|
b3f6d57696 | ||
|
|
a613473a05 | ||
|
|
3ece71e60b | ||
|
|
7b69d00451 | ||
|
|
e0c78d5a10 | ||
|
|
3e26693e2a | ||
|
|
a9e45008e0 | ||
|
|
e3251d0091 | ||
|
|
620f62e9f3 | ||
|
|
b07e7255db | ||
|
|
9dd797587b | ||
|
|
f36deaca13 | ||
|
|
4e201675f6 | ||
|
|
35c0f32787 | ||
|
|
44ce147e1a | ||
|
|
79b0018c11 | ||
|
|
9cc4e7dda8 | ||
|
|
a5ae6e17de | ||
|
|
00737a9252 | ||
|
|
31b461b3e6 | ||
|
|
e30bb3fc84 | ||
|
|
2a711ce5a6 | ||
|
|
e41a88edbc | ||
|
|
f9b1627aaa | ||
|
|
12656af6e0 | ||
|
|
a812be8cd0 | ||
|
|
fa15fbfe3a | ||
|
|
2da3bb145f | ||
|
|
12359dc9f7 | ||
|
|
c058da7eaf | ||
|
|
235748cd68 | ||
|
|
e6af34a095 | ||
|
|
ca06203d88 | ||
|
|
7aec2104b6 | ||
|
|
3b489fda3f | ||
|
|
8ebe1b9d81 | ||
|
|
52d1ba5914 | ||
|
|
dfebfc41ef | ||
|
|
8a99d76736 | ||
|
|
363a4d0860 | ||
|
|
299ec399e2 | ||
|
|
2949162e12 | ||
|
|
dddb76fba0 | ||
|
|
187535d68a | ||
|
|
6a134255de | ||
|
|
20558196f7 | ||
|
|
4049b31636 | ||
|
|
7b45aef29c | ||
|
|
945b7eec76 | ||
|
|
b3e16e1290 | ||
|
|
da6fadbb1e | ||
|
|
80c53bfe45 | ||
|
|
005e6fba99 | ||
|
|
d59a862b76 | ||
|
|
c8f89d27ae | ||
|
|
0eaa352cd0 | ||
|
|
8b7593fe53 | ||
|
|
91ff0fbada | ||
|
|
dd21ed2635 | ||
|
|
481e256621 | ||
|
|
2e94a16889 | ||
|
|
b4c4b194b2 | ||
|
|
5da8440086 | ||
|
|
d5424a38fa | ||
|
|
1947473b2c | ||
|
|
1b38c1f400 | ||
|
|
51f7580d06 | ||
|
|
e6b2a17bee | ||
|
|
95338bb35e | ||
|
|
f4138820cf | ||
|
|
f446dac1db | ||
|
|
2967fc1ab4 | ||
|
|
ed3ab8b0f1 | ||
|
|
884b9a9a8c | ||
|
|
aac169b834 | ||
|
|
601d9cb20e | ||
|
|
90034c3746 | ||
|
|
97a2e7d8c9 | ||
|
|
bccd5522d1 | ||
|
|
07c5dc247a | ||
|
|
005834588a | ||
|
|
a2fa9a4843 | ||
|
|
1d8f473e4c | ||
|
|
4dc48fca2b | ||
|
|
7eb0176e0c | ||
|
|
974396672a | ||
|
|
1758255399 | ||
|
|
1506839f54 | ||
|
|
636c4c8185 | ||
|
|
9d0fd94a23 | ||
|
|
251c00cefb | ||
|
|
4949e8d816 | ||
|
|
e57b0834c6 | ||
|
|
bb3f9d0bb4 | ||
|
|
2a8b8d6584 | ||
|
|
ea58b92fed | ||
|
|
d6f5ce405e | ||
|
|
34ffafb55f | ||
|
|
e6d9f5d847 | ||
|
|
c3bfaffcf1 | ||
|
|
f5eac6d6a1 | ||
|
|
19c3a90bf4 | ||
|
|
705baaa37c | ||
|
|
e302e90066 | ||
|
|
9d9800d4e6 | ||
|
|
5c00a959f4 | ||
|
|
54501760d3 | ||
|
|
2f4b76014f | ||
|
|
7de4bac932 | ||
|
|
d992959792 | ||
|
|
1ce77629ff | ||
|
|
908c1536f6 | ||
|
|
b8948c6d8f | ||
|
|
1ab448f7cc | ||
|
|
38ea3f5c80 | ||
|
|
a87e818d9a | ||
|
|
d852bd44fe | ||
|
|
5f7d7e01b8 | ||
|
|
548fa9d8d6 | ||
|
|
3a725d71b5 | ||
|
|
a304963dc5 | ||
|
|
bf9fb4537b | ||
|
|
838fe8c96e | ||
|
|
77b204d9fd | ||
|
|
8a6e8e9c9d | ||
|
|
123df9db6b |
36
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
assignees: cagnulein
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
76
.github/workflows/main.yml
vendored
@@ -19,19 +19,19 @@ jobs:
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
- name: Cache Qt Linux Desktop
|
||||
id: cache-qt-linux-desktop
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: '${{ github.workspace }}/output/linux-desktop/'
|
||||
key: ${{ runner.os }}-QtCache-Linux-Desktop
|
||||
# - name: Cache Qt Linux Desktop
|
||||
# id: cache-qt-linux-desktop
|
||||
# uses: actions/cache@v1
|
||||
# with:
|
||||
# path: '${{ github.workspace }}/output/linux-desktop/'
|
||||
# key: ${{ runner.os }}-QtCache-Linux-Desktop
|
||||
|
||||
- name: Cache Qt Linux Android
|
||||
id: cache-qt-android
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: '${{ github.workspace }}/output/android/'
|
||||
key: ${{ runner.os }}-QtCache-Android
|
||||
# - name: Cache Qt Linux Android
|
||||
# id: cache-qt-android
|
||||
# uses: actions/cache@v1
|
||||
# with:
|
||||
# path: '${{ github.workspace }}/output/android/'
|
||||
# key: ${{ runner.os }}-QtCache-Android
|
||||
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- uses: actions/checkout@v2
|
||||
@@ -43,9 +43,9 @@ jobs:
|
||||
version: '5.12.9'
|
||||
host: 'linux'
|
||||
target: 'desktop'
|
||||
modules: 'qtcharts debug_info'
|
||||
modules: 'qtcharts debug_info qtnetworkauth'
|
||||
dir: '${{ github.workspace }}/output/linux-desktop/'
|
||||
cached: ${{ steps.cache-qt-linux-desktop.outputs.cache-hit }}
|
||||
# cached: ${{ steps.cache-qt-linux-desktop.outputs.cache-hit }}
|
||||
|
||||
- name: Compile Linux Desktop
|
||||
run: cd src; qmake; make -j4
|
||||
@@ -56,39 +56,39 @@ jobs:
|
||||
name: linux-desktop-binary
|
||||
path: src/qdomyos-zwift
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: nttld/setup-ndk
|
||||
path: setup-ndk
|
||||
# - uses: actions/checkout@v2
|
||||
# with:
|
||||
# repository: nttld/setup-ndk
|
||||
# path: setup-ndk
|
||||
# The packages.json in nttld/setup-ndk has already been updated,
|
||||
# https://github.com/nttld/setup-ndk/commit/831db5b02a0f0cab80614619efe461a3dcc140e6
|
||||
# but `dist/*` has not been rebuilt yet. Build it.
|
||||
# https://github.com/nttld/setup-ndk/tree/main/dist
|
||||
- name: Locally rebuilt setup-ndk
|
||||
run: |
|
||||
npm -prefix ./setup-ndk install
|
||||
npm -prefix ./setup-ndk run all
|
||||
# - name: Locally rebuilt setup-ndk
|
||||
# run: |
|
||||
# npm -prefix ./setup-ndk install
|
||||
# npm -prefix ./setup-ndk run all
|
||||
# Install using locally rebuilt setup-ndk
|
||||
- name: Setup Android NDK r21d
|
||||
uses: ./setup-ndk
|
||||
# - name: Setup Android NDK r21d
|
||||
# uses: ./setup-ndk
|
||||
#- uses: nttld/setup-ndk@v1
|
||||
with:
|
||||
ndk-version: r21d
|
||||
# with:
|
||||
# ndk-version: r21d
|
||||
|
||||
# waiting github.com/jurplel/install-qt-action/issues/63
|
||||
- name: Install Qt Android
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: '5.12.9'
|
||||
host: 'linux'
|
||||
target: 'android'
|
||||
arch: 'android_armv7'
|
||||
modules: 'qtcharts debug_info'
|
||||
dir: '${{ github.workspace }}/output/android/'
|
||||
cached: ${{ steps.cache-qt-android.outputs.cache-hit }}
|
||||
# - name: Install Qt Android
|
||||
# uses: jurplel/install-qt-action@v2
|
||||
# with:
|
||||
# version: '5.12.9'
|
||||
# host: 'linux'
|
||||
# target: 'android'
|
||||
# arch: 'android_armv7'
|
||||
# modules: 'qtcharts debug_info'
|
||||
# dir: '${{ github.workspace }}/output/android/'
|
||||
# cached: ${{ steps.cache-qt-android.outputs.cache-hit }}
|
||||
|
||||
- name: Compile Android
|
||||
run: cd src; qmake; make -j4
|
||||
# - name: Compile Android
|
||||
# run: cd src; qmake; make -j4
|
||||
|
||||
# - name: Install Qt MacOS
|
||||
# uses: jurplel/install-qt-action@v2
|
||||
|
||||
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "android_openssl"]
|
||||
path = android_openssl
|
||||
url = https://github.com/KDAB/android_openssl.git
|
||||
21
README.md
@@ -1,10 +1,14 @@
|
||||
# qdomyos-zwift
|
||||
Zwift bridge for Treadmills and Bike!
|
||||
|
||||
[<img src="docs/google_play.png">](https://play.google.com/store/apps/details?id=org.cagnulen.qdomyoszwift&fbclid=IwAR3CVoYb0scvGf7gb0Y20VFh5Na5fDWwe7VACk-2c45Tm0x5s8sXpIGhGyw)
|
||||
[<img src="docs/app_store.png">](https://apps.apple.com/app/id1543684531?fbclid=IwAR10H6y3mEgwkTlGJON3e8voYOh2wt3kLFOpFzoIXaYZ_N0y0pDvKxHMUaM)
|
||||
<a href="https://www.buymeacoffee.com/cagnulein" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
|
||||
|
||||

|
||||
|
||||
[](https://www.youtube.com/watch?v=GgG3dMhmo2Y)
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -17,12 +21,13 @@ UI on MacOS
|
||||
### Features
|
||||
|
||||
1. Domyos compatible
|
||||
2. Toorx TRX Route Key comaptible
|
||||
3. Zwift compatible
|
||||
4. Create, load and save train programs
|
||||
5. Measure distance, elevation gain and watts
|
||||
6. Gpx import (with difficulty slider)
|
||||
7. Realtime Charts
|
||||
2. Toorx TRX Route Key compatible
|
||||
3. Echelon Connect Sport compatible
|
||||
4. Zwift compatible
|
||||
5. Create, load and save train programs
|
||||
6. Measure distance, elevation gain and watts
|
||||
7. Gpx import (with difficulty slider)
|
||||
8. Realtime Charts
|
||||
|
||||

|
||||
|
||||
@@ -30,7 +35,7 @@ UI on MacOS
|
||||
|
||||
$ sudo apt update && sudo apt upgrade # this is very important on raspberry pi: you need the bluetooth firmware updated!
|
||||
|
||||
$ sudo apt install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-default
|
||||
$ sudo apt install git libqt5bluetooth5 libqt5widgets5 libqt5positioning5 libqt5xml5 qtconnectivity5-dev qtpositioning5-dev libqt5charts5-dev libqt5charts5 qt5-default libqt5networkauth5-dev
|
||||
|
||||
$ git clone https://github.com/cagnulein/qdomyos-zwift.git
|
||||
|
||||
@@ -59,6 +64,8 @@ Download and install http://download.qt.io/official_releases/qt/5.12/5.12.9/qt-o
|
||||
|
||||
- Raspberry 3b+ and Toorx TRX Route Key
|
||||
|
||||
- Android Pixel 2 and Echelon Connect Sport
|
||||
|
||||
|
||||
### Your machine is not compatible?
|
||||
|
||||
|
||||
1
android_openssl
Submodule
BIN
btlogs/carnielli.cfa
Normal file
BIN
btlogs/carnielli_i-running.jpg
Normal file
|
After Width: | Height: | Size: 118 KiB |
@@ -0,0 +1,4 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="EHf-IW-A2E">
|
||||
<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="375" height="667"/>
|
||||
<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="626.5" width="375" height="20.5"/>
|
||||
<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>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="qdomyoszwift" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
|
||||
<rect key="frame" x="0.0" y="202" width="375" height="43"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" 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="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
|
||||
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="SfN-ll-jLj"/>
|
||||
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
|
||||
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
|
||||
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="x7j-FC-K8j"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="53" y="375"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildLocationStyle</key>
|
||||
<string>UseTargetSettings</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,632 @@
|
||||
#############################################################################
|
||||
# Makefile for building: qdomyoszwift.app/Contents/MacOS/qdomyoszwift
|
||||
# Generated by qmake (3.1) (Qt 5.15.2)
|
||||
# Project: ../src/qdomyos-zwift.pro
|
||||
# Template: app
|
||||
# Command: /Users/cagnulein/Qt/5.15.2/ios/bin/qmake -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
|
||||
#############################################################################
|
||||
|
||||
MAKEFILE = project.pbxproj
|
||||
|
||||
EQ = =
|
||||
|
||||
QMAKE = /Users/cagnulein/Qt/5.15.2/ios/bin/qmake
|
||||
qdomyoszwift.xcodeproj/project.pbxproj: ../src/qdomyos-zwift.pro ../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf ../../Qt/5.15.2/ios/mkspecs/features/spec_pre.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/qdevice.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/device_config.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/unix.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/mac.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/ios.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/sanitize.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/gcc-base.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/gcc-base-mac.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/clang.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/clang-mac.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit/clang.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit/qmake.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/qconfig.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_accessibility_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_clipboard_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_edid_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fb_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_graphics_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_packetprotocol_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldebug_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldevtools_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickparticles_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickshapes_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_theme_support_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uiplugin.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_zlib_private.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_darwingamepad.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_defaultgeometryloader.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfgeometryloader.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneexport.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneimport.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_openglrenderer.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfcamera.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfmediaplayer.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgenericbearer.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgif.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qicns.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qico.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qios.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qiosnsphotolibrarysupport.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qjpeg.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacheif.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacjp2.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qminimal.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_debugger.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_inspector.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_local.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_messages.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_native.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_nativedebugger.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_preview.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_profiler.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_quickprofiler.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_server.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_tcp.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qoffscreen.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsqlite.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvg.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvgicon.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtexttospeech_speechios.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtga.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_esri.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_itemsoverlay.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapbox.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapboxgl.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_nokia.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_osm.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtiff.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_cl.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_ios.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtwebview_darwin.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwbmp.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebp.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt_config.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-xcode/qmake.conf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/spec_post.prf \
|
||||
.qmake.stash \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/exclusive_builds.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/sdk.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/sdk.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/toolchain.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/toolchain.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/default_pre.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/default_pre.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_pre.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resolve_config.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/resolve_config.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/default_post.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/default_post.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_post.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/features/default_post.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/objective_c.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qml_debug.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/warn_on.prf \
|
||||
../../Qt/5.15.2/ios/plugins/platforms/libqios_debug.prl \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/qt.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/gc_binaries.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resources_functions.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resources.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/moc.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/unix/opengl.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uic.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/unix/thread.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qmake_use.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/file_copies.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/rez.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resolve_target.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/asset_catalogs.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/testcase_targets.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/testcase_targets.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/exceptions.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/yacc.prf \
|
||||
../../Qt/5.15.2/ios/mkspecs/features/lex.prf \
|
||||
../src/qdomyos-zwift.pro \
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/Default-568h@2x.png \
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/LaunchScreen.storyboard \
|
||||
../src/icons.qrc \
|
||||
../src/qml.qrc \
|
||||
../../Qt/5.15.2/ios/lib/libQt5FontDatabaseSupport_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libqtfreetype_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5GraphicsSupport_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5ClipboardSupport_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Gui_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libqtlibpng_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libqtharfbuzz_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Core_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libqtpcre2_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqgif_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqjpeg_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqmacheif_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqmacjp2_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqtga_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqtiff_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqwbmp_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqwebp_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/position/libqtposition_cl_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/position/libqtposition_positionpoll_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_debugger_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_inspector_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_local_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_messages_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_native_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_nativedebugger_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_preview_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_profiler_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_quickprofiler_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_server_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_tcp_debug.prl \
|
||||
../../Qt/5.15.2/ios/plugins/bearer/libqgenericbearer_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Widgets_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Quick_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Bluetooth_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Xml_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Positioning_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5QmlModels_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Qml_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5NetworkAuth_debug.prl \
|
||||
../../Qt/5.15.2/ios/lib/libQt5Network_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/libqtquickcontrols2plugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQml/libqmlplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Templates.2/libqtquicktemplates2plugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQml/Models.2/libmodelsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQml/WorkerScript.2/libworkerscriptplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls/libqtquickcontrolsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets/libwidgetsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin_debug.prl \
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin_debug.prl
|
||||
$(QMAKE) -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
|
||||
@echo 'warning: Xcode project has been regenerated, custom settings have been lost. Use CONFIG+=no_autoqmake to prevent this behavior in the future, at the cost of requiring manual project change tracking.'
|
||||
../../Qt/5.15.2/ios/mkspecs/features/spec_pre.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/qdevice.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/device_config.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/unix.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/mac.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/ios.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/sanitize.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/gcc-base.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/gcc-base-mac.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/clang.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/clang-mac.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit/clang.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/common/uikit/qmake.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/qconfig.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3danimation_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dcore_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dextras_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dinput_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dlogic_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquick_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickextras_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickinput_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickrender_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_3drender_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_accessibility_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bluetooth_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_bootstrap_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_clipboard_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_concurrent_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_core_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_edid_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fb_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gamepad_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_graphics_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_gui_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_help_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_location_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_macextras_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimedia_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_network_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_networkauth_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_nfc_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_opengl_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_openglextensions_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_packetprotocol_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioning_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_positioningquick_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qml_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldebug_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmldevtools_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlmodels_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmltest_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quick_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickparticles_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickshapes_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_quickwidgets_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_remoteobjects_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_repparser_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_scxml_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sensors_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_sql_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_svg_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_testlib_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_texttospeech_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_theme_support_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uiplugin.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_uitools_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webchannel_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_websockets_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_webview_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_widgets_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xml_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_lib_zlib_private.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_darwingamepad.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_defaultgeometryloader.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfgeometryloader.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneexport.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_gltfsceneimport.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_openglrenderer.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfcamera.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qavfmediaplayer.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgenericbearer.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qgif.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qicns.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qico.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qios.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qiosnsphotolibrarysupport.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qjpeg.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacheif.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmacjp2.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qminimal.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_debugger.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_inspector.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_local.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_messages.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_native.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_nativedebugger.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_preview.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_profiler.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_quickprofiler.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_server.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qmldbg_tcp.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qoffscreen.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsqlite.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvg.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qsvgicon.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtexttospeech_speechios.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtga.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_esri.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_itemsoverlay.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapbox.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_mapboxgl.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_nokia.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtgeoservices_osm.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtiff.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_cl.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_generic.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtsensors_ios.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qtwebview_darwin.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwbmp.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_qwebp.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/modules/qt_plugin_scene2d.pri:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt_functions.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt_config.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/qmake.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-xcode/qmake.conf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/spec_post.prf:
|
||||
.qmake.stash:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/exclusive_builds.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/sdk.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/sdk.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/toolchain.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/toolchain.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/default_pre.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/default_pre.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_pre.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resolve_config.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/resolve_config.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/default_post.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/default_post.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/default_post.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/features/default_post.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/objective_c.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qml_debug.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/mac.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/bitcode.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/warn_on.prf:
|
||||
../../Qt/5.15.2/ios/plugins/platforms/libqios_debug.prl:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qt.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/qt.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/gc_binaries.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resources_functions.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resources.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/moc.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/unix/opengl.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uic.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/unix/thread.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/qmake_use.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/file_copies.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/rez.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/resolve_target.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/mac/asset_catalogs.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/testcase_targets.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/uikit/testcase_targets.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/exceptions.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/yacc.prf:
|
||||
../../Qt/5.15.2/ios/mkspecs/features/lex.prf:
|
||||
../src/qdomyos-zwift.pro:
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/Default-568h@2x.png:
|
||||
../../Qt/5.15.2/ios/mkspecs/macx-ios-clang/LaunchScreen.storyboard:
|
||||
../src/icons.qrc:
|
||||
../src/qml.qrc:
|
||||
../../Qt/5.15.2/ios/lib/libQt5FontDatabaseSupport_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libqtfreetype_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5GraphicsSupport_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5ClipboardSupport_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Gui_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libqtlibpng_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libqtharfbuzz_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Core_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libqtpcre2_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqgif_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqicns_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqico_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqjpeg_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqmacheif_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqmacjp2_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqtga_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqtiff_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqwbmp_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/imageformats/libqwebp_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/position/libqtposition_cl_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/position/libqtposition_positionpoll_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_debugger_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_inspector_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_local_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_messages_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_native_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_nativedebugger_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_preview_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_profiler_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_quickprofiler_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_server_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/qmltooling/libqmldbg_tcp_debug.prl:
|
||||
../../Qt/5.15.2/ios/plugins/bearer/libqgenericbearer_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Widgets_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Quick_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Bluetooth_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Xml_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Positioning_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5QmlModels_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Qml_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5NetworkAuth_debug.prl:
|
||||
../../Qt/5.15.2/ios/lib/libQt5Network_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick.2/libqtquick2plugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/libqtquickcontrols2plugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Window.2/libwindowplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQml/libqmlplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Templates.2/libqtquicktemplates2plugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQml/Models.2/libmodelsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQml/WorkerScript.2/libworkerscriptplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/libdialogplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/Qt/labs/settings/libqmlsettingsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls/libqtquickcontrolsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/PrivateWidgets/libwidgetsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Layouts/libqquicklayoutsplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin_debug.prl:
|
||||
../../Qt/5.15.2/ios/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin_debug.prl:
|
||||
qmake: FORCE
|
||||
@$(QMAKE) -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
|
||||
|
||||
qmake_all: FORCE
|
||||
|
||||
@@ -0,0 +1,515 @@
|
||||
#############################################################################
|
||||
# Makefile for building: qdomyoszwift.app/Contents/MacOS/qdomyoszwift
|
||||
# Generated by qmake (3.1) (Qt 5.15.2)
|
||||
# Project: ../src/qdomyos-zwift.pro
|
||||
# Template: app
|
||||
# Command: /Users/cagnulein/Qt/5.15.2/ios/bin/qmake -o qdomyoszwift.xcodeproj/project.pbxproj ../src/qdomyos-zwift.pro -spec macx-xcode CONFIG+=iphoneos CONFIG+=device CONFIG+=qml_debug -after
|
||||
#############################################################################
|
||||
|
||||
MAKEFILE = project.pbxproj
|
||||
|
||||
EQ = =
|
||||
|
||||
MOC = /Users/cagnulein/Qt/5.15.2/ios/bin/moc
|
||||
UIC = /Users/cagnulein/Qt/5.15.2/ios/bin/uic
|
||||
LEX = flex
|
||||
LEXFLAGS =
|
||||
YACC = yacc
|
||||
YACCFLAGS = -d
|
||||
DEFINES = -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_NETWORK_LIB -DQT_CORE_LIB
|
||||
INCPATH = -I../src -I. -I../../Qt/5.15.2/ios/mkspecs/common/uikit -I../src/fit-sdk -I../../Qt/5.15.2/ios/include -I../../Qt/5.15.2/ios/include/QtWidgets -I../../Qt/5.15.2/ios/include/QtQuick -I../../Qt/5.15.2/ios/include/QtGui -I../../Qt/5.15.2/ios/include/QtBluetooth -I../../Qt/5.15.2/ios/include/QtXml -I../../Qt/5.15.2/ios/include/QtPositioning -I../../Qt/5.15.2/ios/include/QtQmlModels -I../../Qt/5.15.2/ios/include/QtQml -I../../Qt/5.15.2/ios/include/QtNetwork -I../../Qt/5.15.2/ios/include/QtCore -I. -I../../Qt/5.15.2/ios/mkspecs/macx-ios-clang
|
||||
DEL_FILE = rm -f
|
||||
MOVE = mv -f
|
||||
|
||||
preprocess: compilers
|
||||
clean preprocess_clean: compiler_clean
|
||||
|
||||
mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
|
||||
|
||||
mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
|
||||
|
||||
check: first
|
||||
|
||||
benchmark: first
|
||||
|
||||
compilers: qrc_icons.cpp qrc_qml.cpp moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp\
|
||||
moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp\
|
||||
moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp\
|
||||
moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp\
|
||||
moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp\
|
||||
moc_domyosbike.cpp
|
||||
compiler_rcc_make_all: qrc_icons.cpp qrc_qml.cpp
|
||||
compiler_rcc_clean:
|
||||
-$(DEL_FILE) qrc_icons.cpp qrc_qml.cpp
|
||||
qrc_icons.cpp: ../src/icons.qrc \
|
||||
../../Qt/5.15.2/ios/bin/rcc \
|
||||
../src/icons/signal-0.png \
|
||||
../src/icons/speed.png \
|
||||
../src/icons/signal-1.png \
|
||||
../src/icons/inclination.png \
|
||||
../src/icons/signal-2.png \
|
||||
../src/icons/signal-3.png \
|
||||
../src/icons/watt.png \
|
||||
../src/icons/heart_red.png \
|
||||
../src/icons/weight.png \
|
||||
../src/icons/start.png \
|
||||
../src/icons/icon.png \
|
||||
../src/icons/zwift-on.png \
|
||||
../src/icons/kcal.png \
|
||||
../src/icons/chart.png \
|
||||
../src/icons/joul.png \
|
||||
../src/icons/bluetooth-icon.png \
|
||||
../src/icons/resistance.png \
|
||||
../src/icons/odometer.png \
|
||||
../src/icons/clock.png \
|
||||
../src/icons/cadence.png \
|
||||
../src/icons/fan.png \
|
||||
../src/icons/elevationgain.png \
|
||||
../src/icons/stop.png \
|
||||
../src/icons/pace.png
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/rcc -name icons ../src/icons.qrc -o qrc_icons.cpp
|
||||
|
||||
qrc_qml.cpp: ../src/qml.qrc \
|
||||
../../Qt/5.15.2/ios/bin/rcc \
|
||||
../src/Page1Form.ui.qml \
|
||||
../src/Page2Form.ui.qml \
|
||||
../src/HomeForm.ui.qml \
|
||||
../src/qtquickcontrols2.conf \
|
||||
../src/main.qml \
|
||||
../src/Home.qml \
|
||||
../src/settings.qml
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/rcc -name qml ../src/qml.qrc -o qrc_qml.cpp
|
||||
|
||||
compiler_moc_header_make_all: moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp moc_domyosbike.cpp
|
||||
compiler_moc_header_clean:
|
||||
-$(DEL_FILE) moc_bike.cpp moc_bluetooth.cpp moc_bluetoothdevice.cpp moc_domyostreadmill.cpp moc_echelonconnectsport.cpp moc_homeform.cpp moc_qfit.cpp moc_toorxtreadmill.cpp moc_gpx.cpp moc_treadmill.cpp moc_mainwindow.cpp moc_trainprogram.cpp moc_trxappgateusbtreadmill.cpp moc_virtualbike.cpp moc_virtualtreadmill.cpp moc_domyosbike.cpp
|
||||
moc_bike.cpp: ../src/bike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bike.h -o moc_bike.cpp
|
||||
|
||||
moc_bluetooth.cpp: ../src/bluetooth.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../src/domyostreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../src/domyosbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../src/virtualbike.h \
|
||||
../src/bike.h \
|
||||
../src/trxappgateusbtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../src/toorxtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
|
||||
../src/echelonconnectsport.h \
|
||||
../src/signalhandler.h \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bluetooth.h -o moc_bluetooth.cpp
|
||||
|
||||
moc_bluetoothdevice.cpp: ../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/bluetoothdevice.h -o moc_bluetoothdevice.cpp
|
||||
|
||||
moc_domyostreadmill.cpp: ../src/domyostreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/domyostreadmill.h -o moc_domyostreadmill.cpp
|
||||
|
||||
moc_echelonconnectsport.cpp: ../src/echelonconnectsport.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../src/bike.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/echelonconnectsport.h -o moc_echelonconnectsport.cpp
|
||||
|
||||
moc_homeform.cpp: ../src/homeform.h \
|
||||
../../Qt/5.15.2/ios/include/QtQuick/QQuickItem \
|
||||
../../Qt/5.15.2/ios/include/QtQml/QQmlApplicationEngine \
|
||||
../src/bluetooth.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../src/domyostreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../src/domyosbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../src/virtualbike.h \
|
||||
../src/bike.h \
|
||||
../src/trxappgateusbtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../src/toorxtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
|
||||
../src/echelonconnectsport.h \
|
||||
../src/signalhandler.h \
|
||||
../src/sessionline.h \
|
||||
../src/trainprogram.h \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/homeform.h -o moc_homeform.cpp
|
||||
|
||||
moc_qfit.cpp: ../src/qfit.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../../Qt/5.15.2/ios/include/QtPositioning/QGeoCoordinate \
|
||||
../src/sessionline.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/qfit.h -o moc_qfit.cpp
|
||||
|
||||
moc_toorxtreadmill.cpp: ../src/toorxtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../src/virtualtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/toorxtreadmill.h -o moc_toorxtreadmill.cpp
|
||||
|
||||
moc_gpx.cpp: ../src/gpx.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../../Qt/5.15.2/ios/include/QtPositioning/QGeoCoordinate \
|
||||
../src/sessionline.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/gpx.h -o moc_gpx.cpp
|
||||
|
||||
moc_treadmill.cpp: ../src/treadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/treadmill.h -o moc_treadmill.cpp
|
||||
|
||||
moc_mainwindow.cpp: ../src/mainwindow.h \
|
||||
../../Qt/5.15.2/ios/include/QtWidgets/QDialog \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDebug \
|
||||
../../Qt/5.15.2/ios/include/QtWidgets/QTableWidgetItem \
|
||||
../src/trainprogram.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../src/bluetooth.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../src/domyostreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../src/domyosbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../src/virtualbike.h \
|
||||
../src/bike.h \
|
||||
../src/trxappgateusbtreadmill.h \
|
||||
../src/toorxtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
|
||||
../src/echelonconnectsport.h \
|
||||
../src/signalhandler.h \
|
||||
../src/sessionline.h \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/mainwindow.h -o moc_mainwindow.cpp
|
||||
|
||||
moc_trainprogram.cpp: ../src/trainprogram.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../src/bluetooth.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QFile \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../src/domyostreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../src/domyosbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../src/virtualbike.h \
|
||||
../src/bike.h \
|
||||
../src/trxappgateusbtreadmill.h \
|
||||
../src/toorxtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothServiceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothSocket \
|
||||
../src/echelonconnectsport.h \
|
||||
../src/signalhandler.h \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/trainprogram.h -o moc_trainprogram.cpp
|
||||
|
||||
moc_trxappgateusbtreadmill.cpp: ../src/trxappgateusbtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTime \
|
||||
../src/virtualtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/trxappgateusbtreadmill.h -o moc_trxappgateusbtreadmill.cpp
|
||||
|
||||
moc_virtualbike.cpp: ../src/virtualbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../src/bike.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/virtualbike.h -o moc_virtualbike.cpp
|
||||
|
||||
moc_virtualtreadmill.cpp: ../src/virtualtreadmill.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../src/treadmill.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/virtualtreadmill.h -o moc_virtualtreadmill.cpp
|
||||
|
||||
moc_domyosbike.cpp: ../src/domyosbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyadvertisingparameters.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristic.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycharacteristicdata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergydescriptordata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergycontroller.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservice.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/qlowenergyservicedata.h \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceDiscoveryAgent \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qbytearray.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qcoreapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtGui/qguiapplication.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qlist.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qscopedpointer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qtimer.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qmutex.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QObject \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QString \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QDateTime \
|
||||
../src/virtualbike.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/qloggingcategory.h \
|
||||
../src/bike.h \
|
||||
../src/bluetoothdevice.h \
|
||||
../../Qt/5.15.2/ios/include/QtCore/QTimer \
|
||||
../../Qt/5.15.2/ios/include/QtBluetooth/QBluetoothDeviceInfo \
|
||||
../../Qt/5.15.2/ios/bin/moc
|
||||
/Users/cagnulein/Qt/5.15.2/ios/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -D__APPLE_CC__ -D__cplusplus=199711L -D__APPLE_CC__=6000 -D__clang__ -D__clang_major__=12 -D__clang_minor__=0 -D__clang_patchlevel__=0 -D__GNUC__=4 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/macx-ios-clang -I/Users/cagnulein/qdomyos-zwift/src -I/Users/cagnulein/Qt/5.15.2/ios/mkspecs/common/uikit -I/Users/cagnulein/qdomyos-zwift/src/fit-sdk -I/Users/cagnulein/Qt/5.15.2/ios/include -I/Users/cagnulein/Qt/5.15.2/ios/include/QtWidgets -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQuick -I/Users/cagnulein/Qt/5.15.2/ios/include/QtGui -I/Users/cagnulein/Qt/5.15.2/ios/include/QtBluetooth -I/Users/cagnulein/Qt/5.15.2/ios/include/QtXml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtPositioning -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQmlModels -I/Users/cagnulein/Qt/5.15.2/ios/include/QtQml -I/Users/cagnulein/Qt/5.15.2/ios/include/QtNetwork -I/Users/cagnulein/Qt/5.15.2/ios/include/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include ../src/domyosbike.h -o moc_domyosbike.cpp
|
||||
|
||||
compiler_moc_objc_header_make_all:
|
||||
compiler_moc_objc_header_clean:
|
||||
compiler_moc_source_make_all:
|
||||
compiler_moc_source_clean:
|
||||
compiler_uic_make_all:
|
||||
compiler_uic_clean:
|
||||
compiler_rez_source_make_all:
|
||||
compiler_rez_source_clean:
|
||||
compiler_yacc_decl_make_all:
|
||||
compiler_yacc_decl_clean:
|
||||
compiler_yacc_impl_make_all:
|
||||
compiler_yacc_impl_clean:
|
||||
compiler_lex_make_all:
|
||||
compiler_lex_clean:
|
||||
compiler_clean: compiler_rcc_clean compiler_moc_header_clean
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0610"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
|
||||
BuildableName = "qdomyoszwift.app"
|
||||
BlueprintName = "qdomyoszwift"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "NO"
|
||||
disableMainThreadChecker = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
|
||||
BuildableName = "qdomyoszwift.app"
|
||||
BlueprintName = "qdomyoszwift"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "$(TESTARGS)"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9E73BA301EF4580BE706E2EC"
|
||||
BuildableName = "Qt Test"
|
||||
BlueprintName = "Qt Test"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
disableMainThreadChecker = "YES"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "NO"
|
||||
debugServiceExtension = "internal"
|
||||
enableGPUFrameCaptureMode = "3"
|
||||
enableGPUValidationMode = "1"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
|
||||
BuildableName = "qdomyoszwift.app"
|
||||
BlueprintName = "qdomyoszwift"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "DYLD_IMAGE_SUFFIX"
|
||||
value = "$(QT_LIBRARY_SUFFIX)"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
</EnvironmentVariables>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "NO">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
|
||||
BuildableName = "qdomyoszwift.app"
|
||||
BlueprintName = "qdomyoszwift"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1220"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "876E4E102594747F00BD5714"
|
||||
BuildableName = "watchkit.app"
|
||||
BlueprintName = "watchkit"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "799833E5566DEFFC37E4BF1E"
|
||||
BuildableName = "qdomyoszwift.app"
|
||||
BlueprintName = "qdomyoszwift"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/qdomyoszwift">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "876E4E102594747F00BD5714"
|
||||
BuildableName = "watchkit.app"
|
||||
BlueprintName = "watchkit"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.Carousel"
|
||||
RemotePath = "/qdomyoszwift">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "876E4E102594747F00BD5714"
|
||||
BuildableName = "watchkit.app"
|
||||
BlueprintName = "watchkit"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "876E4E102594747F00BD5714"
|
||||
BuildableName = "watchkit.app"
|
||||
BlueprintName = "watchkit"
|
||||
ReferencedContainer = "container:qdomyoszwift.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,631 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Bucket
|
||||
uuid = "6397C888-2938-4ABC-BC07-73BACD8E46BA"
|
||||
type = "1"
|
||||
version = "2.0">
|
||||
<Breakpoints>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "50EB432C-A681-4A19-8144-54461AAFBC5A"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/main.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "163"
|
||||
endingLineNumber = "163"
|
||||
landmarkName = "createApplication(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "721796D3-13DB-421B-86C2-5E2328FA9E38"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/main.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "161"
|
||||
endingLineNumber = "161"
|
||||
landmarkName = "createApplication(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E1BF66E4-BB4F-4936-9D45-AB7A82D14FDE"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/main.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "159"
|
||||
endingLineNumber = "159"
|
||||
landmarkName = "createApplication(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "80103083-98C3-439A-85EF-582852EACE58"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/WatchKitConnection.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "102"
|
||||
endingLineNumber = "102"
|
||||
landmarkName = "session(_:didReceiveMessage:replyHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "3DD3927F-A606-4B89-B21F-832D2076D23D"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/WatchKitConnection.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "96"
|
||||
endingLineNumber = "96"
|
||||
landmarkName = "session(_:didReceiveMessage:replyHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "7070D0F5-BD79-43DC-AE17-7B4D43FC5637"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "watchkit Extension/MainController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "56"
|
||||
endingLineNumber = "56"
|
||||
landmarkName = "didReceiveHealthKitHeartRate(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "watchkit Extension/WatchWorkoutTracking.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
landmarkName = "handleSendStatisticsData(_:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
<Location
|
||||
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -> ()"
|
||||
moduleName = "watchkit Extension"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
offsetFromSymbolStart = "260">
|
||||
</Location>
|
||||
<Location
|
||||
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -> ()"
|
||||
moduleName = "watchkit Extension"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
offsetFromSymbolStart = "321">
|
||||
</Location>
|
||||
<Location
|
||||
uuid = "329EF26B-A7BA-4771-A121-BA4060E60201 - 7dd9506ded50816f"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "watchkit_Extension.WorkoutTracking.(handleSendStatisticsData in _D3E6F9F3FAAAA099E0A09AA45CD92075)(__C.HKStatistics) -> ()"
|
||||
moduleName = "watchkit Extension"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/cagnulein/qdomyos-zwift/build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit%20Extension/WatchWorkoutTracking.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
offsetFromSymbolStart = "1477">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "0F197A10-7E1F-458D-9DC1-A0B21E9F6E8A"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "48"
|
||||
endingLineNumber = "48"
|
||||
landmarkName = "BLEPeripheralManager"
|
||||
landmarkType = "3">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "16D24B27-D0FB-4EC3-BAE8-56101FE7949B"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "57"
|
||||
endingLineNumber = "57"
|
||||
landmarkName = "BLEPeripheralManager"
|
||||
landmarkType = "3">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "6073E105-CED1-4C4B-B002-D650F7F70E32"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "78"
|
||||
endingLineNumber = "78"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "AB0DB5FF-979B-4DC7-A83B-AE2053909675"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "101"
|
||||
endingLineNumber = "101"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "45607ECF-89AE-45D1-B0FD-CE94793C160D"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "92"
|
||||
endingLineNumber = "92"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "167ADF3B-EFCD-475C-9373-8CE22DDE0BDA"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "110"
|
||||
endingLineNumber = "110"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "0264A627-97AD-4A72-83E4-AD224F128C57"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "114"
|
||||
endingLineNumber = "114"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "98E0B050-6B1A-452C-B36D-FF3B539B1DD6"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "119"
|
||||
endingLineNumber = "119"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "A080A38F-4140-4C2A-A0CF-9DD6BB41CBBA"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "123"
|
||||
endingLineNumber = "123"
|
||||
landmarkName = "peripheralManagerDidUpdateState(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "7067E1E1-E0C5-43B9-B9A6-0654990324F3"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "130"
|
||||
endingLineNumber = "130"
|
||||
landmarkName = "peripheralManager(_:didAdd:error:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "4503166F-EDC7-4ED3-AC2F-584ADF0E3FA5"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/lockscreen.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "38"
|
||||
endingLineNumber = "38"
|
||||
landmarkName = "lockscreen::virtualbike_setHeartRate(heartRate)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "FE5697FF-F44C-43C2-A98D-C400EE56F047"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/lockscreen.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "44"
|
||||
endingLineNumber = "44"
|
||||
landmarkName = "lockscreen::virtualbike_setCadence(crankRevolutions, lastCrankEventTime)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E8938847-29A7-4789-B7F5-B65386A6C6A0"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/lockscreen.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
landmarkName = "lockscreen::virtualbike_setHeartRate(heartRate)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "3DBE0495-050A-4979-85D4-28B78676F212"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/lockscreen.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "43"
|
||||
endingLineNumber = "43"
|
||||
landmarkName = "lockscreen::virtualbike_setCadence(crankRevolutions, lastCrankEventTime)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "F3A2C1ED-B1A6-4772-913E-09143C997B67"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/lockscreen.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "32"
|
||||
endingLineNumber = "32"
|
||||
landmarkName = "lockscreen::virtualbike_ios()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
landmarkName = "updateHeartRate(HeartRate:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
<Location
|
||||
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3 - 7d1f106582667437"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "qdomyoszwift.virtualbike_ios_swift.updateHeartRate(HeartRate: Swift.UInt8) -> ()"
|
||||
moduleName = "qdomyoszwift"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/cagnulein/qdomyos-zwift/src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
offsetFromSymbolStart = "22">
|
||||
</Location>
|
||||
<Location
|
||||
uuid = "18F27065-9FB2-44A2-99D0-7D41061141A3 - 4daffae51fb2d733"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "@objc qdomyoszwift.virtualbike_ios_swift.updateHeartRate(HeartRate: Swift.UInt8) -> ()"
|
||||
moduleName = "qdomyoszwift"
|
||||
usesParentBreakpointCondition = "Yes"
|
||||
urlString = "file:///Users/cagnulein/qdomyos-zwift/src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
offsetFromSymbolStart = "28">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "1BED435D-636C-4FD8-9F5E-AB4351DAEC8F"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
landmarkName = "updateCadence(CrankRevolutions:LastCrankEventTime:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "AD1E4F54-E0A3-464A-A052-1102A8B5B78B"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "178"
|
||||
endingLineNumber = "178"
|
||||
landmarkName = "startSendingDataToSubscribers()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "F9205200-7498-4DFA-8FBC-5FC639A5CFB2"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/main.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "298"
|
||||
endingLineNumber = "298"
|
||||
landmarkName = "main(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "C5748784-E678-46D9-B468-4FF24FC6C730"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "203"
|
||||
endingLineNumber = "203"
|
||||
landmarkName = "updateSubscribers()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "5A7118FF-F9B1-415F-974F-695C9F9913ED"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "188"
|
||||
endingLineNumber = "188"
|
||||
landmarkName = "calculateHeartRate()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "98876BA3-9A90-4900-B574-32EB7D5E72CE"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "197"
|
||||
endingLineNumber = "197"
|
||||
landmarkName = "calculateCadence()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "48566803-1327-43D7-9C71-F2DAAC4785FA"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "196"
|
||||
endingLineNumber = "196"
|
||||
landmarkName = "calculateCadence()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "468E0408-A96A-4030-BFEE-D78B82F16296"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "13"
|
||||
endingLineNumber = "13"
|
||||
landmarkName = "unknown"
|
||||
landmarkType = "0">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "DEB74A74-1486-45AC-83DD-258153AFE711"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "179"
|
||||
endingLineNumber = "179"
|
||||
landmarkName = "startSendingDataToSubscribers()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "C594A173-6845-4E66-8F36-DD7CD3689752"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/ios/BLEPeripheralManager.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "68"
|
||||
endingLineNumber = "68"
|
||||
landmarkName = "init()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "6CCF9CEA-E010-4E21-8D36-DB6058B91998"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../src/main.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "299"
|
||||
endingLineNumber = "299"
|
||||
landmarkName = "main(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : "<=145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"assets" : [
|
||||
{
|
||||
"filename" : "Circular.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "circular"
|
||||
},
|
||||
{
|
||||
"filename" : "Extra Large.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "extra-large"
|
||||
},
|
||||
{
|
||||
"filename" : "Graphic Bezel.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "graphic-bezel"
|
||||
},
|
||||
{
|
||||
"filename" : "Graphic Circular.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "graphic-circular"
|
||||
},
|
||||
{
|
||||
"filename" : "Graphic Corner.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "graphic-corner"
|
||||
},
|
||||
{
|
||||
"filename" : "Graphic Extra Large.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "graphic-extra-large"
|
||||
},
|
||||
{
|
||||
"filename" : "Graphic Large Rectangular.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "graphic-large-rectangular"
|
||||
},
|
||||
{
|
||||
"filename" : "Modular.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "modular"
|
||||
},
|
||||
{
|
||||
"filename" : "Utilitarian.imageset",
|
||||
"idiom" : "watch",
|
||||
"role" : "utilitarian"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : "<=145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : "<=145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : "<=145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : "<=145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">161"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">145"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"screen-width" : ">183"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ComplicationController.swift
|
||||
// ElecDemo WatchKit Extension
|
||||
//
|
||||
// Created by NhatHM on 8/9/19.
|
||||
// Copyright © 2019 GST.PID. All rights reserved.
|
||||
//
|
||||
|
||||
import ClockKit
|
||||
|
||||
|
||||
class ComplicationController: NSObject, CLKComplicationDataSource {
|
||||
|
||||
// MARK: - Timeline Configuration
|
||||
|
||||
func getSupportedTimeTravelDirections(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimeTravelDirections) -> Void) {
|
||||
handler([.forward, .backward])
|
||||
}
|
||||
|
||||
func getTimelineStartDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) {
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) {
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) {
|
||||
handler(.showOnLockScreen)
|
||||
}
|
||||
|
||||
// MARK: - Timeline Population
|
||||
|
||||
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
|
||||
// Call the handler with the current timeline entry
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
func getTimelineEntries(for complication: CLKComplication, before date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) {
|
||||
// Call the handler with the timeline entries prior to the given date
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) {
|
||||
// Call the handler with the timeline entries after to the given date
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
// MARK: - Placeholder Templates
|
||||
|
||||
func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
|
||||
// This method will be called once per supported complication, and the results will be cached
|
||||
handler(nil)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ExtensionDelegate.swift
|
||||
// ElecDemo WatchKit Extension
|
||||
//
|
||||
// Created by NhatHM on 8/9/19.
|
||||
// Copyright © 2019 GST.PID. All rights reserved.
|
||||
//
|
||||
|
||||
import WatchKit
|
||||
|
||||
class ExtensionDelegate: NSObject, WKExtensionDelegate {
|
||||
|
||||
func applicationDidFinishLaunching() {
|
||||
// Perform any final initialization of your application.
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive() {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
func applicationWillResignActive() {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, etc.
|
||||
}
|
||||
|
||||
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
|
||||
// Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one.
|
||||
for task in backgroundTasks {
|
||||
// Use a switch statement to check the task type
|
||||
switch task {
|
||||
case let backgroundTask as WKApplicationRefreshBackgroundTask:
|
||||
// Be sure to complete the background task once you’re done.
|
||||
backgroundTask.setTaskCompletedWithSnapshot(false)
|
||||
case let snapshotTask as WKSnapshotRefreshBackgroundTask:
|
||||
// Snapshot tasks have a unique completion call, make sure to set your expiration date
|
||||
snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil)
|
||||
case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask:
|
||||
// Be sure to complete the connectivity task once you’re done.
|
||||
connectivityTask.setTaskCompletedWithSnapshot(false)
|
||||
case let urlSessionTask as WKURLSessionRefreshBackgroundTask:
|
||||
// Be sure to complete the URL session task once you’re done.
|
||||
urlSessionTask.setTaskCompletedWithSnapshot(false)
|
||||
case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask:
|
||||
// Be sure to complete the relevant-shortcut task once you're done.
|
||||
relevantShortcutTask.setTaskCompletedWithSnapshot(false)
|
||||
case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask:
|
||||
// Be sure to complete the intent-did-run task once you're done.
|
||||
intentDidRunTask.setTaskCompletedWithSnapshot(false)
|
||||
default:
|
||||
// make sure to complete unhandled task types
|
||||
task.setTaskCompletedWithSnapshot(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>watchkit Extension</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>CLKComplicationPrincipalClass</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).ComplicationController</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionAttributes</key>
|
||||
<dict>
|
||||
<key>WKAppBundleIdentifier</key>
|
||||
<string>org.cagnulein.qdomyoszwift.watchkitapp</string>
|
||||
</dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.watchkit</string>
|
||||
</dict>
|
||||
<key>NSHealthShareUsageDescription</key>
|
||||
<string>access to heartbeat in order to show it in the application</string>
|
||||
<key>NSHealthUpdateUsageDescription</key>
|
||||
<string>access to heartbeat in order to show it in the application</string>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array/>
|
||||
<key>WKBackgroundModes</key>
|
||||
<array>
|
||||
<string>self-care</string>
|
||||
<string>workout-processing</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,70 @@
|
||||
//
|
||||
// MainController.swift
|
||||
// ElecDemo WatchKit Extension
|
||||
//
|
||||
// Created by NhatHM on 8/12/19.
|
||||
// Copyright © 2019 GST.PID. All rights reserved.
|
||||
//
|
||||
|
||||
import WatchKit
|
||||
import HealthKit
|
||||
|
||||
class MainController: WKInterfaceController {
|
||||
@IBOutlet weak var userNameLabel: WKInterfaceLabel!
|
||||
@IBOutlet weak var stepCountsLabel: WKInterfaceLabel!
|
||||
@IBOutlet weak var heartRateLabel: WKInterfaceLabel!
|
||||
|
||||
override func awake(withContext context: Any?) {
|
||||
super.awake(withContext: context)
|
||||
|
||||
// Configure interface objects here.
|
||||
print("AWAKE")
|
||||
WorkoutTracking.authorizeHealthKit()
|
||||
WorkoutTracking.shared.startWorkOut()
|
||||
WorkoutTracking.shared.delegate = self
|
||||
|
||||
WatchKitConnection.shared.delegate = self
|
||||
WatchKitConnection.shared.startSession()
|
||||
}
|
||||
|
||||
override func willActivate() {
|
||||
// This method is called when watch view controller is about to be visible to user
|
||||
super.willActivate()
|
||||
print("WILL ACTIVE")
|
||||
WorkoutTracking.shared.fetchStepCounts()
|
||||
}
|
||||
|
||||
override func didDeactivate() {
|
||||
// This method is called when watch view controller is no longer visible
|
||||
super.didDeactivate()
|
||||
print("DID DEACTIVE")
|
||||
}
|
||||
}
|
||||
|
||||
extension MainController {
|
||||
@IBAction func startWorkout() {
|
||||
WorkoutTracking.shared.startWorkOut()
|
||||
}
|
||||
|
||||
@IBAction func stopWorkout() {
|
||||
WorkoutTracking.shared.stopWorkOut()
|
||||
}
|
||||
}
|
||||
|
||||
extension MainController: WorkoutTrackingDelegate {
|
||||
func didReceiveHealthKitHeartRate(_ heartRate: Double) {
|
||||
heartRateLabel.setText("\(heartRate) BPM")
|
||||
WatchKitConnection.shared.sendMessage(message: ["heartRate":
|
||||
"\(heartRate)" as AnyObject])
|
||||
}
|
||||
|
||||
func didReceiveHealthKitStepCounts(_ stepCounts: Double) {
|
||||
stepCountsLabel.setText("\(stepCounts) STEPS")
|
||||
}
|
||||
}
|
||||
|
||||
extension MainController: WatchKitConnectionDelegate {
|
||||
func didReceiveUserName(_ userName: String) {
|
||||
userNameLabel.setText(userName)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// NotificationController.swift
|
||||
// ElecDemo WatchKit Extension
|
||||
//
|
||||
// Created by NhatHM on 8/9/19.
|
||||
// Copyright © 2019 GST.PID. All rights reserved.
|
||||
//
|
||||
|
||||
import WatchKit
|
||||
import Foundation
|
||||
import UserNotifications
|
||||
|
||||
|
||||
class NotificationController: WKUserNotificationInterfaceController {
|
||||
|
||||
override init() {
|
||||
// Initialize variables here.
|
||||
super.init()
|
||||
|
||||
// Configure interface objects here.
|
||||
}
|
||||
|
||||
override func willActivate() {
|
||||
// This method is called when watch view controller is about to be visible to user
|
||||
super.willActivate()
|
||||
}
|
||||
|
||||
override func didDeactivate() {
|
||||
// This method is called when watch view controller is no longer visible
|
||||
super.didDeactivate()
|
||||
}
|
||||
|
||||
override func didReceive(_ notification: UNNotification) {
|
||||
// This method is called when a notification needs to be presented.
|
||||
// Implement it if you use a dynamic notification interface.
|
||||
// Populate your dynamic notification interface as quickly as possible.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"aps": {
|
||||
"alert": {
|
||||
"body": "Test message",
|
||||
"title": "Optional title",
|
||||
"subtitle": "Optional subtitle"
|
||||
},
|
||||
"category": "myCategory",
|
||||
"thread-id": "5280"
|
||||
},
|
||||
|
||||
"WatchKit Simulator Actions": [
|
||||
{
|
||||
"title": "First Button",
|
||||
"identifier": "firstButtonAction"
|
||||
}
|
||||
],
|
||||
|
||||
"customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.developer.healthkit</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// WatchKitConnection.swift
|
||||
// ElecDemo
|
||||
//
|
||||
// Created by NhatHM on 8/12/19.
|
||||
// Copyright © 2019 GST.PID. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import WatchConnectivity
|
||||
|
||||
protocol WatchKitConnectionDelegate: class {
|
||||
func didReceiveUserName(_ userName: String)
|
||||
}
|
||||
|
||||
protocol WatchKitConnectionProtocol {
|
||||
func startSession()
|
||||
func sendMessage(message: [String : AnyObject], replyHandler: (([String : AnyObject]) -> Void)?, errorHandler: ((NSError) -> Void)?)
|
||||
|
||||
}
|
||||
|
||||
class WatchKitConnection: NSObject {
|
||||
static let shared = WatchKitConnection()
|
||||
weak var delegate: WatchKitConnectionDelegate?
|
||||
|
||||
private override init() {
|
||||
super.init()
|
||||
}
|
||||
|
||||
private let session: WCSession? = WCSession.isSupported() ? WCSession.default : nil
|
||||
|
||||
private var validSession: WCSession? {
|
||||
#if os(iOS)
|
||||
if let session = session, session.isPaired, session.isWatchAppInstalled {
|
||||
return session
|
||||
}
|
||||
#elseif os(watchOS)
|
||||
return session
|
||||
#endif
|
||||
}
|
||||
|
||||
private var validReachableSession: WCSession? {
|
||||
if let session = validSession, session.isReachable {
|
||||
return session
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
extension WatchKitConnection: WatchKitConnectionProtocol {
|
||||
func startSession() {
|
||||
session?.delegate = self
|
||||
session?.activate()
|
||||
}
|
||||
|
||||
func sendMessage(message: [String : AnyObject],
|
||||
replyHandler: (([String : AnyObject]) -> Void)? = nil,
|
||||
errorHandler: ((NSError) -> Void)? = nil)
|
||||
{
|
||||
validReachableSession?.sendMessage(message, replyHandler: { (result) in
|
||||
print(result)
|
||||
}, errorHandler: { (error) in
|
||||
print(error)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
extension WatchKitConnection: WCSessionDelegate {
|
||||
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
|
||||
print("activationDidCompleteWith")
|
||||
}
|
||||
|
||||
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
|
||||
guard let userName = message.values.first as? String else {
|
||||
return
|
||||
}
|
||||
|
||||
delegate?.didReceiveUserName(userName)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
//
|
||||
// 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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// qdomyoszwiftApp.swift
|
||||
// watchkit Extension
|
||||
//
|
||||
// Created by Roberto Viola on 24/12/2020.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
/*
|
||||
@main
|
||||
struct qdomyoszwiftApp: App {
|
||||
@SceneBuilder var body: some Scene {
|
||||
WindowGroup {
|
||||
NavigationView {
|
||||
ContentView()
|
||||
}
|
||||
}
|
||||
|
||||
WKNotificationScene(controller: NotificationController.self, category: "myCategory")
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,4 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "24x24",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "27.5x27.5",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "44x44",
|
||||
"subtype" : "40mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "50x50",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "86x86",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "98x98",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "108x108",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit/Images.xcassets/.DS_Store
vendored
Normal file
BIN
build-qdomyos-zwift-Qt_5_15_2_for_iOS-Debug/watchkit/Images.xcassets/AppIcon.appiconset/.DS_Store
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,200 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-20x20@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-29x29@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-40x40@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-60x60@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-60x60@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-20x20@1x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-20x20@2x-1.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-29x29@2x-1.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-40x40@1x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-40x40@2x-1.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-76x76@1x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-76x76@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"filename" : "ItunesArtwork@2x.png",
|
||||
"idiom" : "ios-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename" : "48.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "24x24",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "55.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "27.5x27.5",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"filename" : "58.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "87.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "80.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "88.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "44x44",
|
||||
"subtype" : "40mm"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon100.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "50x50",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"filename" : "172.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "86x86",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "196.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "98x98",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"filename" : "216.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "108x108",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon1024.png",
|
||||
"idiom" : "watch-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 990 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 341 KiB |
|
After Width: | Height: | Size: 258 KiB |
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>qdomyoszwift</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
</array>
|
||||
<key>WKCompanionAppBundleIdentifier</key>
|
||||
<string>org.cagnulein.qdomyoszwift</string>
|
||||
<key>WKWatchKitApp</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="17506" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Tpn-rd-UUX">
|
||||
<device id="watch38"/>
|
||||
<dependencies>
|
||||
<deployment identifier="watchOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="17500"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Main-->
|
||||
<scene sceneID="2gh-qF-IkA">
|
||||
<objects>
|
||||
<controller identifier="Main" hidesWhenLoading="NO" id="Tpn-rd-UUX" customClass="MainController" customModule="watchkit_Extension">
|
||||
<items>
|
||||
<label width="136" alignment="left" text="qdomyos-zwift" textAlignment="center" id="SlU-M7-WGB"/>
|
||||
<label width="136" alignment="left" text="Heart Rate" id="Nda-m1-XRw"/>
|
||||
<label width="136" alignment="left" text="Step Counts" id="HpA-e9-6YV"/>
|
||||
<button width="1" alignment="left" title="Start" id="vZg-X8-uY5">
|
||||
<connections>
|
||||
<action selector="startWorkout" destination="Tpn-rd-UUX" id="UaW-pR-tn6"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="1" alignment="left" title="Stop" id="mVg-K9-PI9">
|
||||
<connections>
|
||||
<action selector="stopWorkout" destination="Tpn-rd-UUX" id="Jy7-gN-USZ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="heartRateLabel" destination="Nda-m1-XRw" id="1la-8R-3jG"/>
|
||||
<outlet property="stepCountsLabel" destination="HpA-e9-6YV" id="Z88-ej-6oG"/>
|
||||
<outlet property="userNameLabel" destination="SlU-M7-WGB" id="Y2O-Lg-bDx"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="220" y="345"/>
|
||||
</scene>
|
||||
<!--Static Notification Interface Controller-->
|
||||
<scene sceneID="AEw-b0-oYE">
|
||||
<objects>
|
||||
<notificationController id="YCC-NB-fut">
|
||||
<items>
|
||||
<label alignment="left" text="Alert Label" numberOfLines="0" id="IdU-wH-bcW"/>
|
||||
</items>
|
||||
<notificationCategory key="notificationCategory" identifier="myCategory" id="JfB-70-Muf"/>
|
||||
<connections>
|
||||
<outlet property="notificationAlertLabel" destination="IdU-wH-bcW" id="JKC-fr-R95"/>
|
||||
<segue destination="4sK-HA-Art" kind="relationship" relationship="dynamicNotificationInterface" id="kXh-Jw-8B1"/>
|
||||
<segue destination="eXb-UN-Cd0" kind="relationship" relationship="dynamicInteractiveNotificationInterface" id="mpB-YA-K8N"/>
|
||||
</connections>
|
||||
</notificationController>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="220" y="643"/>
|
||||
</scene>
|
||||
<!--Notification Controller-->
|
||||
<scene sceneID="ZPc-GJ-vnh">
|
||||
<objects>
|
||||
<controller id="4sK-HA-Art" customClass="NotificationController" customModule="watchkit" customModuleProvider="target"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="468" y="643"/>
|
||||
</scene>
|
||||
<!--Notification Controller-->
|
||||
<scene sceneID="Niz-AI-uX2">
|
||||
<objects>
|
||||
<controller id="eXb-UN-Cd0" customClass="NotificationController" customModule="watchkit" customModuleProvider="target"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="468" y="345"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
BIN
docs/app_store.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
docs/ex1_echelon_nrfconnect_1.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
docs/google_play.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
69
docs/org.bluetooth.characteristic.csc_measurement.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--Copyright 2011 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="CSC Measurement" type="org.bluetooth.characteristic.csc_measurement" uuid="2A5B" last-modified="2012-04-12" approved="Yes">
|
||||
<InformativeText>
|
||||
<Summary>
|
||||
The CSC Measurement characteristic (CSC refers to Cycling Speed and Cadence) is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain one or more additional fields as shown in the tables below.
|
||||
</Summary>
|
||||
</InformativeText>
|
||||
<Value>
|
||||
<Field name="Flags">
|
||||
<InformativeText>These flags define which data fields are present in the Characteristic value.</InformativeText>
|
||||
<Requirement>Mandatory</Requirement>
|
||||
<Format>8bit</Format>
|
||||
<BitField>
|
||||
<Bit index="0" size="1" name="Wheel Revolution Data Present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C1" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="1" size="1" name="Crank Revolution Data Present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C2" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<ReservedForFutureUse index="2" size="6" />
|
||||
</BitField>
|
||||
</Field>
|
||||
<Field name="Cumulative Wheel Revolutions">
|
||||
<InformativeText>
|
||||
C1: Field exists if the key of bit 0 of the Flags field is set to 1.
|
||||
</InformativeText>
|
||||
<Requirement>C1</Requirement>
|
||||
<Format>uint32</Format>
|
||||
<Unit>org.bluetooth.unit.unitless</Unit>
|
||||
</Field>
|
||||
<Field name="Last Wheel Event Time">
|
||||
<InformativeText>
|
||||
Unit has a resolution of 1/1024s.
|
||||
<br>C1: Field exists if the key of bit 0 of the Flags field is set to 1.</br>
|
||||
</InformativeText>
|
||||
<Requirement>C1</Requirement>
|
||||
<Format>uint16</Format>
|
||||
<Unit>org.bluetooth.unit.time.second</Unit>
|
||||
<BinaryExponent>-10</BinaryExponent>
|
||||
</Field>
|
||||
<Field name="Cumulative Crank Revolutions">
|
||||
<InformativeText>
|
||||
C2: Field exists if the key of bit 1 of the Flags field is set to 1.
|
||||
</InformativeText>
|
||||
<Requirement>C2</Requirement>
|
||||
<Format>uint16</Format>
|
||||
<Unit>org.bluetooth.unit.unitless</Unit>
|
||||
</Field>
|
||||
<Field name="Last Crank Event Time">
|
||||
<InformativeText>C2: Field exists if the key of bit 1 of the Flags field is set to 1.
|
||||
<br>Unit has a resolution of 1/1024s.</br>
|
||||
</InformativeText>
|
||||
<Requirement>C2</Requirement>
|
||||
<Format>uint16</Format>
|
||||
<Unit>org.bluetooth.unit.time.second</Unit>
|
||||
<BinaryExponent>-10</BinaryExponent>
|
||||
</Field>
|
||||
</Value>
|
||||
<Note>
|
||||
The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.
|
||||
</Note>
|
||||
</Characteristic>
|
||||
@@ -1,14 +1,8 @@
|
||||
<?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="Indoor Bike Data"
|
||||
type="org.bluetooth.characteristic.indoor_bike_data" uuid="2AD2"
|
||||
last-modified="2017-02-14" approved="Yes">
|
||||
<Characteristic xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/characteristic.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Indoor Bike Data" type="org.bluetooth.characteristic.indoor_bike_data" uuid="2AD2" last-modified="2017-02-14" approved="Yes">
|
||||
<InformativeText>
|
||||
<Summary>The Indoor Bike Data characteristic is used to send
|
||||
training-related data to the Client from an indoor bike
|
||||
(Server).</Summary>
|
||||
<Summary>The Indoor Bike Data characteristic is used to send training-related data to the Client from an indoor bike (Server).</Summary>
|
||||
</InformativeText>
|
||||
<Value>
|
||||
<Field name="Flags">
|
||||
@@ -17,203 +11,200 @@ last-modified="2017-02-14" approved="Yes">
|
||||
<BitField>
|
||||
<Bit index="0" size="1" name="More Data">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" requires="C1" />
|
||||
<Enumeration key="0" value="False" requires="C1"/>
|
||||
<Enumeration key="1" value="True" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="1" size="1"
|
||||
name="Instantaneous Cadence present">
|
||||
<Bit index="1" size="1" name="Average Speed present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C2" />
|
||||
<Enumeration key="1" value="True" requires="C2" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="2" size="1" name="Average Speed present">
|
||||
<Bit index="2" size="1" name="Instantaneous Cadence present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C3" />
|
||||
<Enumeration key="1" value="True" requires="C3"/>
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="3" size="1" name="Average Candence present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C4" />
|
||||
<Enumeration key="1" value="True" requires="C4" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="4" size="1" name="Total Distance Present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C5" />
|
||||
<Enumeration key="1" value="True" requires="C5" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
|
||||
<Bit index="5" size="1" name="Resistance Level present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C6" />
|
||||
<Enumeration key="1" value="True" requires="C6" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="6" size="1" name="Instantaneous Power present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C7" />
|
||||
<Enumeration key="1" value="True" requires="C7" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="7" size="1" name="Average Power present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C8" />
|
||||
<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" />
|
||||
<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" />
|
||||
<Enumeration key="1" value="True" requires="C10" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<Bit index="10" size="1"
|
||||
name="Metabolic Equivalent present">
|
||||
<Bit index="10" size="1" name="Metabolic Equivalent present">
|
||||
<Enumerations>
|
||||
<Enumeration key="0" value="False" />
|
||||
<Enumeration key="1" value="True" requires="C11" />
|
||||
<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" />
|
||||
<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" />
|
||||
<Enumeration key="1" value="True" requires="C13" />
|
||||
</Enumerations>
|
||||
</Bit>
|
||||
<ReservedForFutureUse index="13" size="3" />
|
||||
</BitField>
|
||||
</Field>
|
||||
|
||||
<Field name="Instantaneous Speed">
|
||||
<InformativeText>Kilometer per hour with a resolution of
|
||||
0.01</InformativeText>
|
||||
<InformativeText>Kilometer per hour with a resolution of 0.01</InformativeText>
|
||||
<Requirement>C1</Requirement>
|
||||
<Format>uint16</Format>
|
||||
<DecimalExponent>-2</DecimalExponent>
|
||||
<Unit>org.bluetooth.unit.velocity.kilometre_per_hour</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Average Speed">
|
||||
<InformativeText>Kilometer per hour with a resolution of
|
||||
0.01</InformativeText>
|
||||
<InformativeText>Kilometer per hour with a resolution of 0.01</InformativeText>
|
||||
<Requirement>C2</Requirement>
|
||||
<Format>uint16</Format>
|
||||
<DecimalExponent>-2</DecimalExponent>
|
||||
<Unit>org.bluetooth.unit.velocity.kilometre_per_hour</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Instantaneous Cadence">
|
||||
<InformativeText>1/minute with a resolution of
|
||||
0.5</InformativeText>
|
||||
<InformativeText>1/minute with a resolution of 0.5</InformativeText>
|
||||
<Requirement>C3</Requirement>
|
||||
<BinaryExponent>-1</BinaryExponent>
|
||||
<Format>uint16</Format>
|
||||
<Unit>
|
||||
org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
|
||||
<Unit>org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Average Cadence">
|
||||
<InformativeText>1/minute with a resolution of
|
||||
0.5</InformativeText>
|
||||
<InformativeText>1/minute with a resolution of 0.5</InformativeText>
|
||||
<Requirement>C4</Requirement>
|
||||
<BinaryExponent>-1</BinaryExponent>
|
||||
<Format>uint16</Format>
|
||||
<Unit>
|
||||
org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
|
||||
<Unit>org.bluetooth.unit.angular_velocity.revolution_per_minute</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Total Distance">
|
||||
<InformativeText>Meters with a resolution of
|
||||
1</InformativeText>
|
||||
<InformativeText>Meters with a resolution of 1</InformativeText>
|
||||
<Requirement>C5</Requirement>
|
||||
<Format>uint24</Format>
|
||||
<Unit>org.bluetooth.unit.length.metre</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Resistance Level">
|
||||
<InformativeText>Unitless with a resolution of
|
||||
1</InformativeText>
|
||||
<InformativeText>Unitless with a resolution of 1</InformativeText>
|
||||
<Requirement>C6</Requirement>
|
||||
<Format>sint16</Format>
|
||||
<Unit>org.bluetooth.unit.unitless</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Instantaneous Power">
|
||||
<InformativeText>Watts with a resolution of
|
||||
1</InformativeText>
|
||||
<InformativeText>Watts with a resolution of 1</InformativeText>
|
||||
<Requirement>C7</Requirement>
|
||||
<Format>sint16</Format>
|
||||
<Unit>org.bluetooth.unit.power.watt</Unit>
|
||||
</Field>
|
||||
|
||||
<Field name="Average Power">
|
||||
<InformativeText>Watts with a resolution of
|
||||
1</InformativeText>
|
||||
<InformativeText>Watts with a resolution of 1</InformativeText>
|
||||
<Requirement>C8</Requirement>
|
||||
<Format>sint16</Format>
|
||||
<Unit>org.bluetooth.unit.power.watt</Unit>
|
||||
</Field>
|
||||
</Field>
|
||||
|
||||
<Field name="Total Energy">
|
||||
<InformativeText>Kilo Calorie with a resolution of
|
||||
1</InformativeText>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
|
||||
123
docs/org.bluetooth.service.cycling_speed_and_cadence.xml
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2011 Bluetooth SIG, Inc. All rights reserved. -->
|
||||
<Service xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/service.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Cycling Speed and Cadence" type="org.bluetooth.service.cycling_speed_and_cadence" uuid="1816" last-modified="2012-04-05" approved="Yes">
|
||||
<InformativeText>
|
||||
<Abstract>
|
||||
This service exposes speed-related and cadence-related data from a Cycling Speed and Cadence sensor intended for fitness applications.
|
||||
</Abstract>
|
||||
<Summary>
|
||||
The Cycling Speed and Cadence (CSC) Service exposes speed-related data and/or cadence-related data while using the Cycling Speed and Cadence sensor (Server).
|
||||
</Summary>
|
||||
</InformativeText>
|
||||
<Dependencies>
|
||||
<Dependency>This service is not dependent upon any other services.</Dependency>
|
||||
</Dependencies>
|
||||
<GATTRequirements>
|
||||
<Requirement subProcedure="Write Characteristic Values">C1</Requirement>
|
||||
<Requirement subProcedure="Notifications">Mandatory</Requirement>
|
||||
<Requirement subProcedure="Indications">C1</Requirement>
|
||||
<Requirement subProcedure="Read Characteristic Descriptors">Mandatory</Requirement>
|
||||
<Requirement subProcedure="Write Characteristic Descriptors">Mandatory</Requirement>
|
||||
</GATTRequirements>
|
||||
<Note>C1: Mandatory if the SC Control Point characteristic is supported, otherwise excluded for this service.</Note>
|
||||
<Transports>
|
||||
<Classic>true</Classic>
|
||||
<LowEnergy>true</LowEnergy>
|
||||
</Transports>
|
||||
<ErrorCodes>
|
||||
<ErrorCode name="Procedure Already in Progress" code="0x80">A SC Control Point request cannot be serviced because a previously triggered SC Control Point operation is still in progress.</ErrorCode>
|
||||
<ErrorCode name="Client Characteristic Configuration descriptor improperly configured" code="0x81">The Client Characteristic Configuration descriptor is not configured according to the requirements of the service.</ErrorCode>
|
||||
</ErrorCodes>
|
||||
<Characteristics>
|
||||
<Characteristic name="CSC Measurement" type="org.bluetooth.characteristic.csc_measurement">
|
||||
<InformativeText>
|
||||
The CSC Measurement characteristic is used to send speed-related data and/or cadence-related data.
|
||||
</InformativeText>
|
||||
<Requirement>Mandatory</Requirement>
|
||||
<Properties>
|
||||
<Read>Excluded</Read>
|
||||
<Write>Excluded</Write>
|
||||
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
|
||||
<SignedWrite>Excluded</SignedWrite>
|
||||
<ReliableWrite>Excluded</ReliableWrite>
|
||||
<Notify>Mandatory</Notify>
|
||||
<Indicate>Excluded</Indicate>
|
||||
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
|
||||
<Broadcast>Excluded</Broadcast>
|
||||
</Properties>
|
||||
<Descriptors>
|
||||
<Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
|
||||
<Requirement>Mandatory</Requirement>
|
||||
<Properties>
|
||||
<Read>Mandatory</Read>
|
||||
<Write>Mandatory</Write>
|
||||
</Properties>
|
||||
</Descriptor>
|
||||
</Descriptors>
|
||||
</Characteristic>
|
||||
<Characteristic name="CSC Feature" type="org.bluetooth.characteristic.csc_feature">
|
||||
<InformativeText>
|
||||
The CSC Feature characteristic is used to describe the supported features of the Server. Reserved for Future Use (RFU) bits in the CSC Feature characteristic value are set to 0.
|
||||
</InformativeText>
|
||||
<Requirement>Mandatory</Requirement>
|
||||
<Properties>
|
||||
<Read>Mandatory</Read>
|
||||
<Write>Excluded</Write>
|
||||
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
|
||||
<SignedWrite>Excluded</SignedWrite>
|
||||
<ReliableWrite>Excluded</ReliableWrite>
|
||||
<Notify>Excluded</Notify>
|
||||
<Indicate>Excluded</Indicate>
|
||||
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
|
||||
<Broadcast>Excluded</Broadcast>
|
||||
</Properties>
|
||||
</Characteristic>
|
||||
<Characteristic name="Sensor Location" type="org.bluetooth.characteristic.sensor_location">
|
||||
<InformativeText>
|
||||
<p>The Sensor Location characteristic of the device is used to describe the physical location of the Server when correctly fitted.</p>
|
||||
<p><b>C1:</b> Mandatory if the Multiple Sensor Location feature is supported, otherwise optional.</p>
|
||||
</InformativeText>
|
||||
<Requirement>C1</Requirement>
|
||||
<Properties>
|
||||
<Read>Mandatory</Read>
|
||||
<Write>Excluded</Write>
|
||||
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
|
||||
<SignedWrite>Excluded</SignedWrite>
|
||||
<ReliableWrite>Excluded</ReliableWrite>
|
||||
<Notify>Excluded</Notify>
|
||||
<Indicate>Excluded</Indicate>
|
||||
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
|
||||
<Broadcast>Excluded</Broadcast>
|
||||
</Properties>
|
||||
</Characteristic>
|
||||
<Characteristic name="SC Control Point" type="org.bluetooth.characteristic.sc_control_point">
|
||||
<InformativeText>
|
||||
<p>If the SC Control Point is supported, profiles utilizing this service are required to ensure that the Client configures the SC Control Point characteristic for indications (i.e. via the Client Characteristic Configuration descriptor) at the first connection.</p>
|
||||
<p>Support for this characteristic is mandatory if the Server supports Wheel Revolution Data or Multiple Sensor Locations features, otherwise it is excluded.</p>
|
||||
<p><b>C2:</b> Mandatory if at least one SC Control Point procedure is supported, otherwise excluded.</p>
|
||||
</InformativeText>
|
||||
<Requirement>C2</Requirement>
|
||||
<Properties>
|
||||
<Read>Excluded</Read>
|
||||
<Write>Mandatory</Write>
|
||||
<WriteWithoutResponse>Excluded</WriteWithoutResponse>
|
||||
<SignedWrite>Excluded</SignedWrite>
|
||||
<ReliableWrite>Excluded</ReliableWrite>
|
||||
<Notify>Excluded</Notify>
|
||||
<Indicate>Mandatory</Indicate>
|
||||
<WritableAuxiliaries>Excluded</WritableAuxiliaries>
|
||||
<Broadcast>Excluded</Broadcast>
|
||||
</Properties>
|
||||
|
||||
<Descriptors>
|
||||
<Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
|
||||
<Requirement>if_characteristic_supported</Requirement>
|
||||
<Properties>
|
||||
<Read>Mandatory</Read>
|
||||
<Write>Mandatory</Write>
|
||||
</Properties>
|
||||
</Descriptor>
|
||||
</Descriptors>
|
||||
</Characteristic>
|
||||
</Characteristics>
|
||||
</Service>
|
||||
54
src/Home.qml
@@ -2,6 +2,7 @@ import QtQuick 2.12
|
||||
import QtQuick.Controls 2.5
|
||||
import QtQuick.Controls.Material 2.12
|
||||
import QtGraphicalEffects 1.12
|
||||
import QtQuick.Window 2.12
|
||||
|
||||
HomeForm{
|
||||
objectName: "home"
|
||||
@@ -13,19 +14,25 @@ HomeForm{
|
||||
start.onClicked: { start_clicked(); }
|
||||
stop.onClicked: { stop_clicked(); }
|
||||
|
||||
Component.onCompleted: { console.log("completed"); }
|
||||
Component.onCompleted: { console.log("completed"); }
|
||||
|
||||
GridView {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.fill: parent
|
||||
cellWidth: 175
|
||||
cellHeight: 125
|
||||
cellHeight: 130
|
||||
focus: true
|
||||
model: appModel
|
||||
leftMargin: { (parent.width % 175) / 2; }
|
||||
anchors.topMargin: 150
|
||||
leftMargin: { (parent.width % cellWidth) / 2 }
|
||||
anchors.topMargin: rootItem.topBarHeight + 30
|
||||
id: gridView
|
||||
objectName: "gridview"
|
||||
onMovementEnded: { headerToolbar.visible = (contentY == 0); }
|
||||
onWidthChanged: gridView.leftMargin = (parent.width % cellWidth) / 2;
|
||||
Screen.orientationUpdateMask: Qt.LandscapeOrientation | Qt.PortraitOrientation
|
||||
Screen.onPrimaryOrientationChanged:{
|
||||
gridView.leftMargin = (parent.width % cellWidth) / 2;
|
||||
}
|
||||
|
||||
// highlight: Rectangle {
|
||||
// width: 150
|
||||
@@ -34,24 +41,38 @@ HomeForm{
|
||||
// }
|
||||
delegate: Item {
|
||||
id: id1
|
||||
width: 175
|
||||
width: 170
|
||||
height: 125
|
||||
|
||||
visible: visibleItem
|
||||
Component.onCompleted: console.log("completed " + objectName)
|
||||
|
||||
Rectangle {
|
||||
width: 173
|
||||
width: 168
|
||||
height: 123
|
||||
radius: 3
|
||||
border.width: 1
|
||||
border.color: "purple"
|
||||
color: Material.backgroundColor
|
||||
id: rect
|
||||
}
|
||||
|
||||
DropShadow {
|
||||
anchors.fill: rect
|
||||
cached: true
|
||||
horizontalOffset: 3
|
||||
verticalOffset: 3
|
||||
radius: 8.0
|
||||
samples: 16
|
||||
color: Material.color(Material.Purple)
|
||||
source: rect
|
||||
}
|
||||
|
||||
Image {
|
||||
id: myIcon
|
||||
x: 5
|
||||
anchors {
|
||||
top: myValue.bottom
|
||||
bottom: id1.bottom
|
||||
}
|
||||
width: 48
|
||||
height: 48
|
||||
@@ -60,22 +81,37 @@ HomeForm{
|
||||
Text {
|
||||
objectName: "value"
|
||||
id: myValue
|
||||
color: Material.textSelectionColor
|
||||
color: valueFontColor
|
||||
y: 0
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
text: value
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pointSize: 48
|
||||
font.pointSize: valueFontSize
|
||||
font.bold: true
|
||||
}
|
||||
Text {
|
||||
objectName: "secondLine"
|
||||
id: secondLineText
|
||||
color: "white"
|
||||
y: myValue.bottom
|
||||
anchors {
|
||||
top: myValue.bottom
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
text: secondLine
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pointSize: 8
|
||||
font.bold: false
|
||||
}
|
||||
Text {
|
||||
id: myText
|
||||
anchors {
|
||||
top: myIcon.top
|
||||
}
|
||||
font.bold: true
|
||||
font.pointSize: labelFontSize
|
||||
color: "white"
|
||||
text: name
|
||||
anchors.left: parent.left
|
||||
|
||||
@@ -14,78 +14,115 @@ Page {
|
||||
|
||||
Item {
|
||||
width: parent.width
|
||||
height: 120
|
||||
height: rootItem.topBarHeight
|
||||
id: topBar
|
||||
|
||||
Row {
|
||||
id: row
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
height: 100
|
||||
height: topBar.height - 20
|
||||
spacing: 5
|
||||
padding: 5
|
||||
|
||||
Rectangle {
|
||||
width: 50
|
||||
height: 100
|
||||
height: row.height
|
||||
color: Material.backgroundColor
|
||||
Image {
|
||||
Column {
|
||||
id: column
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
id: treadmill_connection
|
||||
width: 48
|
||||
height: 48
|
||||
source: "icons/icons/bluetooth-icon.png"
|
||||
enabled: rootItem.device
|
||||
smooth: true
|
||||
}
|
||||
ColorOverlay {
|
||||
anchors.fill: treadmill_connection
|
||||
source: treadmill_connection
|
||||
color: treadmill_connection.enabled ? "#00000000" : "#B0D3d3d3"
|
||||
width: parent.width
|
||||
height: row.height
|
||||
spacing: 0
|
||||
padding: 0
|
||||
Rectangle {
|
||||
width: 50
|
||||
height: row.height
|
||||
color: Material.backgroundColor
|
||||
|
||||
Image {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
id: treadmill_connection
|
||||
width: 48
|
||||
height: row.height - 52
|
||||
source: "icons/icons/bluetooth-icon.png"
|
||||
enabled: rootItem.device
|
||||
smooth: true
|
||||
}
|
||||
ColorOverlay {
|
||||
anchors.fill: treadmill_connection
|
||||
source: treadmill_connection
|
||||
color: treadmill_connection.enabled ? "#00000000" : "#B0D3d3d3"
|
||||
}
|
||||
}
|
||||
Image {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
id: treadmill_signal
|
||||
width: 24
|
||||
height: row.height - 76
|
||||
source: rootItem.signal
|
||||
smooth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 120
|
||||
height: 100
|
||||
height: row.height
|
||||
color: Material.backgroundColor
|
||||
RoundButton {
|
||||
icon.source: "icons/icons/start.png"
|
||||
icon.height: 46
|
||||
icon.source: rootItem.startIcon
|
||||
icon.height: row.height - 54
|
||||
icon.width: 46
|
||||
text: "Start"
|
||||
text: rootItem.startText
|
||||
enabled: true
|
||||
id: start
|
||||
width: 120
|
||||
height: 96
|
||||
height: row.height - 4
|
||||
}
|
||||
ColorOverlay {
|
||||
anchors.fill: start
|
||||
source: start
|
||||
color: rootItem.startColor
|
||||
enabled: rootItem.startColor === "red" ? true : false
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 120
|
||||
height: 100
|
||||
height: row.height
|
||||
color: Material.backgroundColor
|
||||
|
||||
RoundButton {
|
||||
icon.source: "icons/icons/stop.png"
|
||||
icon.height: 46
|
||||
icon.source: rootItem.stopIcon
|
||||
icon.height: row.height - 54
|
||||
icon.width: 46
|
||||
text: "Stop"
|
||||
text: rootItem.stopText
|
||||
enabled: true
|
||||
id: stop
|
||||
width: 120
|
||||
height: 96
|
||||
height: row.height - 4
|
||||
}
|
||||
ColorOverlay {
|
||||
anchors.fill: stop
|
||||
source: stop
|
||||
color: rootItem.stopColor
|
||||
enabled: rootItem.stopColor === "red" ? true : false
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: item2
|
||||
width: 50
|
||||
height: 100
|
||||
height: row.height
|
||||
color: Material.backgroundColor
|
||||
Image {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
id: zwift_connection
|
||||
width: 48
|
||||
height: 48
|
||||
height: row.height - 52
|
||||
source: "icons/icons/zwift-on.png"
|
||||
enabled: rootItem.zwift
|
||||
smooth: true
|
||||
@@ -106,9 +143,20 @@ Page {
|
||||
|
||||
Label {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: rootItem.info
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
id: lblHelp
|
||||
width: parent.width
|
||||
anchors.top: row1.bottom
|
||||
anchors.topMargin: 30
|
||||
text: "This app should automatically connects to your bike/treadmill. <b>If it doesn't, please check</b>:<br>1) your Echelon/Domyos App MUST be closed while qdomyos-zwift is running;<br>2) bluetooth and bluetooth permission MUST be on<br>3) your bike/treadmill should be turned on BEFORE starting this app<br>4) try to restart your device<br><br>If your bike/treadmill disconnects every 30 seconds try to disable the 'virtual device' setting on the left bar.<br><br>In case of issue, please, feel free to contact me to roberto.viola83@gmail.com.<br><br><b>Have a nice ride!</b><br>Roberto Viola"
|
||||
wrapMode: Label.WordWrap
|
||||
visible: rootItem.labelHelp
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<manifest package="org.cagnulen.qdomyoszwift" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
|
||||
<manifest package="org.cagnulen.qdomyoszwift" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.3.7" android:versionCode="63" android:installLocation="auto">
|
||||
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
||||
Remove the comment if you do not require these default permissions. -->
|
||||
<!-- %%INSERT_PERMISSIONS -->
|
||||
@@ -9,7 +9,7 @@
|
||||
<!-- %%INSERT_FEATURES -->
|
||||
|
||||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
||||
<application android:hardwareAccelerated="true" android:debuggable="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="qdomyos-zwift" android:extractNativeLibs="true" android:icon="@drawable/icon">
|
||||
<application android:requestLegacyExternalStorage="true" 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"/>
|
||||
@@ -54,7 +54,7 @@
|
||||
application still try to draw after
|
||||
"applicationStateChanged(Qt::ApplicationSuspended)"
|
||||
signal is sent! -->
|
||||
<meta-data android:name="android.app.background_running" android:value="false"/>
|
||||
<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"/>
|
||||
@@ -69,11 +69,14 @@
|
||||
<meta-data android:name="android.app.extract_android_style" android:value="default"/>
|
||||
<!-- extract android style -->
|
||||
</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.WRITE_EXTERNAL_STORAGE"/>
|
||||
<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"/>
|
||||
</manifest>
|
||||
|
||||
@@ -36,7 +36,7 @@ android {
|
||||
|
||||
compileSdkVersion androidCompileSdkVersion.toInteger()
|
||||
|
||||
buildToolsVersion '28.0.3'
|
||||
buildToolsVersion '29.0.2'
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
@@ -53,6 +53,7 @@ android {
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
checkReleaseBuilds false
|
||||
}
|
||||
|
||||
// Do not compress Qt binary resources file
|
||||
@@ -62,7 +63,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
resConfig "en"
|
||||
minSdkVersion = qtMinSdkVersion
|
||||
targetSdkVersion = qtTargetSdkVersion
|
||||
minSdkVersion = 21
|
||||
targetSdkVersion = 29
|
||||
}
|
||||
}
|
||||
|
||||
BIN
src/android/libs/android_antlib_4-14-0.jar
Normal file
BIN
src/android/res/drawable-hdpi/icon.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
src/android/res/drawable-ldpi/icon.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
src/android/res/drawable-mdpi/icon.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
262
src/android/src/ChannelService.java
Normal file
@@ -0,0 +1,262 @@
|
||||
/*
|
||||
* Copyright 2012 Dynastream Innovations Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package org.cagnulen.qdomyoszwift;
|
||||
|
||||
import com.dsi.ant.AntService;
|
||||
import com.dsi.ant.channel.AntChannel;
|
||||
import com.dsi.ant.channel.AntChannelProvider;
|
||||
import com.dsi.ant.channel.ChannelNotAvailableException;
|
||||
import com.dsi.ant.channel.PredefinedNetwork;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.ServiceConnection;
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ChannelService extends Service {
|
||||
private static final String TAG = "ChannelService";
|
||||
|
||||
private boolean mAntRadioServiceBound;
|
||||
private AntService mAntRadioService = null;
|
||||
private AntChannelProvider mAntChannelProvider = null;
|
||||
private boolean mAllowAddChannel = false;
|
||||
PowerChannelController powerChannelController = null;
|
||||
SpeedChannelController speedChannelController = null;
|
||||
|
||||
private ServiceConnection mAntRadioServiceConnection = new ServiceConnection() {
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
// Must pass in the received IBinder object to correctly construct an AntService object
|
||||
mAntRadioService = new AntService(service);
|
||||
|
||||
try {
|
||||
// Getting a channel provider in order to acquire channels
|
||||
mAntChannelProvider = mAntRadioService.getChannelProvider();
|
||||
|
||||
// Initial check for number of channels available
|
||||
boolean mChannelAvailable = mAntChannelProvider.getNumChannelsAvailable() > 0;
|
||||
// Initial check for if legacy interface is in use. If the
|
||||
// legacy interface is in use, applications can free the ANT
|
||||
// radio by attempting to acquire a channel.
|
||||
boolean legacyInterfaceInUse = mAntChannelProvider.isLegacyInterfaceInUse();
|
||||
|
||||
// If there are channels OR legacy interface in use, allow adding channels
|
||||
if (mChannelAvailable || legacyInterfaceInUse) {
|
||||
mAllowAddChannel = true;
|
||||
} else {
|
||||
// If no channels available AND legacy interface is not in use, disallow adding channels
|
||||
mAllowAddChannel = false;
|
||||
}
|
||||
|
||||
|
||||
} catch (RemoteException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
die("Binder Died");
|
||||
|
||||
mAntChannelProvider = null;
|
||||
mAntRadioService = null;
|
||||
|
||||
mAllowAddChannel = false;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* The interface used to communicate with the ChannelService
|
||||
*/
|
||||
public class ChannelServiceComm extends Binder {
|
||||
|
||||
void setSpeed(double speed) {
|
||||
if (null != speedChannelController) {
|
||||
speedChannelController.speed = speed;
|
||||
}
|
||||
}
|
||||
|
||||
void setPower(int power) {
|
||||
if (null != powerChannelController) {
|
||||
powerChannelController.power = power;
|
||||
}
|
||||
}
|
||||
|
||||
void setCadence(int cadence) {
|
||||
if (null != powerChannelController) {
|
||||
powerChannelController.cadence = cadence;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes all channels currently added.
|
||||
*/
|
||||
void clearAllChannels() {
|
||||
closeAllChannels();
|
||||
}
|
||||
}
|
||||
|
||||
public void openAllChannels() throws ChannelNotAvailableException {
|
||||
powerChannelController = new PowerChannelController(acquireChannel());
|
||||
speedChannelController = new SpeedChannelController(acquireChannel());
|
||||
}
|
||||
|
||||
private void closeAllChannels() {
|
||||
powerChannelController.close();
|
||||
speedChannelController.close();
|
||||
powerChannelController = null;
|
||||
speedChannelController = null;
|
||||
}
|
||||
|
||||
AntChannel acquireChannel() throws ChannelNotAvailableException {
|
||||
AntChannel mAntChannel = null;
|
||||
if (null != mAntChannelProvider) {
|
||||
try {
|
||||
/*
|
||||
* If applications require a channel with specific capabilities
|
||||
* (event buffering, background scanning etc.), a Capabilities
|
||||
* object should be created and then the specific capabilities
|
||||
* required set to true. Applications can specify both required
|
||||
* and desired Capabilities with both being passed in
|
||||
* acquireChannel(context, PredefinedNetwork,
|
||||
* requiredCapabilities, desiredCapabilities).
|
||||
*/
|
||||
mAntChannel = mAntChannelProvider.acquireChannel(this, PredefinedNetwork.ANT_PLUS_1);
|
||||
/*
|
||||
NetworkKey mNK = new NetworkKey(new byte[] { (byte)0xb9, (byte)0xa5, (byte)0x21, (byte)0xfb,
|
||||
(byte)0xbd, (byte)0x72, (byte)0xc3, (byte)0x45 });
|
||||
Log.v(TAG, mNK.toString());
|
||||
mAntChannel = mAntChannelProvider.acquireChannelOnPrivateNetwork(this, mNK);
|
||||
*/
|
||||
} catch (RemoteException e) {
|
||||
die("ACP Remote Ex");
|
||||
}
|
||||
}
|
||||
return mAntChannel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent arg0) {
|
||||
return new ChannelServiceComm();
|
||||
}
|
||||
|
||||
/**
|
||||
* Receives AntChannelProvider state changes being sent from ANT Radio Service
|
||||
*/
|
||||
private final BroadcastReceiver mChannelProviderStateChangedReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (AntChannelProvider.ACTION_CHANNEL_PROVIDER_STATE_CHANGED.equals(intent.getAction())) {
|
||||
boolean update = false;
|
||||
// Retrieving the data contained in the intent
|
||||
int numChannels = intent.getIntExtra(AntChannelProvider.NUM_CHANNELS_AVAILABLE, 0);
|
||||
boolean legacyInterfaceInUse = intent.getBooleanExtra(AntChannelProvider.LEGACY_INTERFACE_IN_USE, false);
|
||||
|
||||
if (mAllowAddChannel) {
|
||||
// Was a acquire channel allowed
|
||||
// If no channels available AND legacy interface is not in use, disallow acquiring of channels
|
||||
if (0 == numChannels && !legacyInterfaceInUse) {
|
||||
mAllowAddChannel = false;
|
||||
update = true;
|
||||
closeAllChannels();
|
||||
}
|
||||
} else {
|
||||
// Acquire channels not allowed
|
||||
// If there are channels OR legacy interface in use, allow acquiring of channels
|
||||
if (numChannels > 0 || legacyInterfaceInUse) {
|
||||
mAllowAddChannel = true;
|
||||
update = true;
|
||||
try {
|
||||
openAllChannels();
|
||||
} catch (ChannelNotAvailableException exception) {
|
||||
Log.e(TAG, "Channel not available!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void doBindAntRadioService() {
|
||||
if (BuildConfig.DEBUG) Log.v(TAG, "doBindAntRadioService");
|
||||
|
||||
// Start listing for channel available intents
|
||||
registerReceiver(mChannelProviderStateChangedReceiver, new IntentFilter(AntChannelProvider.ACTION_CHANNEL_PROVIDER_STATE_CHANGED));
|
||||
|
||||
// Creating the intent and calling context.bindService() is handled by
|
||||
// the static bindService() method in AntService
|
||||
mAntRadioServiceBound = AntService.bindService(this, mAntRadioServiceConnection);
|
||||
}
|
||||
|
||||
private void doUnbindAntRadioService() {
|
||||
if (BuildConfig.DEBUG) Log.v(TAG, "doUnbindAntRadioService");
|
||||
|
||||
// Stop listing for channel available intents
|
||||
try {
|
||||
unregisterReceiver(mChannelProviderStateChangedReceiver);
|
||||
} catch (IllegalArgumentException exception) {
|
||||
if (BuildConfig.DEBUG)
|
||||
Log.d(TAG, "Attempting to unregister a never registered Channel Provider State Changed receiver.");
|
||||
}
|
||||
|
||||
if (mAntRadioServiceBound) {
|
||||
try {
|
||||
unbindService(mAntRadioServiceConnection);
|
||||
} catch (IllegalArgumentException e) {
|
||||
// Not bound, that's what we want anyway
|
||||
}
|
||||
|
||||
mAntRadioServiceBound = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
mAntRadioServiceBound = false;
|
||||
|
||||
doBindAntRadioService();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
closeAllChannels();
|
||||
|
||||
doUnbindAntRadioService();
|
||||
mAntChannelProvider = null;
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
static void die(String error) {
|
||||
Log.e(TAG, "DIE: " + error);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,114 @@
|
||||
package org.cagnulen.qdomyoszwift;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActionBar;
|
||||
import android.app.Activity;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.Message;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.util.Log;
|
||||
import android.content.Intent;
|
||||
|
||||
public class MyActivity extends org.qtproject.qt5.android.bindings.QtActivity {
|
||||
|
||||
private static ChannelService.ChannelServiceComm mChannelService;
|
||||
private static boolean mChannelServiceBound = false;
|
||||
private static final String TAG = "MyActivity";
|
||||
|
||||
|
||||
private static MyActivity activity_;
|
||||
|
||||
public MyActivity()
|
||||
{
|
||||
activity_ = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(android.os.Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
this.getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
|
||||
public static void antStart() {
|
||||
if(!mChannelServiceBound) doBindChannelService();
|
||||
}
|
||||
|
||||
private static ServiceConnection mChannelServiceConnection = new ServiceConnection()
|
||||
{
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder serviceBinder)
|
||||
{
|
||||
Log.v(TAG, "mChannelServiceConnection.onServiceConnected...");
|
||||
|
||||
mChannelService = (ChannelService.ChannelServiceComm) serviceBinder;
|
||||
|
||||
|
||||
Log.v(TAG, "...mChannelServiceConnection.onServiceConnected");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName arg0)
|
||||
{
|
||||
Log.v(TAG, "mChannelServiceConnection.onServiceDisconnected...");
|
||||
|
||||
// Clearing and disabling when disconnecting from ChannelService
|
||||
mChannelService = null;
|
||||
|
||||
Log.v(TAG, "...mChannelServiceConnection.onServiceDisconnected");
|
||||
}
|
||||
};
|
||||
|
||||
private static void doBindChannelService()
|
||||
{
|
||||
Log.v(TAG, "doBindChannelService...");
|
||||
|
||||
// Binds to ChannelService. ChannelService binds and manages connection between the
|
||||
// app and the ANT Radio Service
|
||||
mChannelServiceBound = activity_.bindService(new Intent(activity_, ChannelService.class), mChannelServiceConnection , Context.BIND_AUTO_CREATE);
|
||||
|
||||
if(!mChannelServiceBound) //If the bind returns false, run the unbind method to update the GUI
|
||||
doUnbindChannelService();
|
||||
|
||||
Log.i(TAG, " Channel Service binding = "+ mChannelServiceBound);
|
||||
|
||||
Log.v(TAG, "...doBindChannelService");
|
||||
}
|
||||
|
||||
private static void doUnbindChannelService()
|
||||
{
|
||||
Log.v(TAG, "doUnbindChannelService...");
|
||||
|
||||
if(mChannelServiceBound)
|
||||
{
|
||||
activity_.unbindService(mChannelServiceConnection);
|
||||
|
||||
mChannelServiceBound = false;
|
||||
}
|
||||
|
||||
Log.v(TAG, "...doUnbindChannelService");
|
||||
}
|
||||
|
||||
public static void setCadenceSpeedPower(float speed, int power, int cadence)
|
||||
{
|
||||
mChannelService.setSpeed(speed / 10.0);
|
||||
mChannelService.setPower(power / 10);
|
||||
mChannelService.setCadence(cadence);
|
||||
}
|
||||
}
|
||||
|
||||
293
src/android/src/PowerChannelController.java
Normal file
@@ -0,0 +1,293 @@
|
||||
/*
|
||||
* Copyright 2012 Dynastream Innovations Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package org.cagnulen.qdomyoszwift;
|
||||
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
import com.dsi.ant.channel.AntChannel;
|
||||
import com.dsi.ant.channel.AntCommandFailedException;
|
||||
import com.dsi.ant.channel.IAntChannelEventHandler;
|
||||
import com.dsi.ant.message.ChannelId;
|
||||
import com.dsi.ant.message.ChannelType;
|
||||
import com.dsi.ant.message.EventCode;
|
||||
import com.dsi.ant.message.fromant.AcknowledgedDataMessage;
|
||||
import com.dsi.ant.message.fromant.ChannelEventMessage;
|
||||
import com.dsi.ant.message.fromant.MessageFromAntType;
|
||||
import com.dsi.ant.message.ipc.AntMessageParcel;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class PowerChannelController {
|
||||
public static final int POWER_SENSOR_ID = 0x9e3d4b66;
|
||||
// The device type and transmission type to be part of the channel ID message
|
||||
private static final int CHANNEL_POWER_DEVICE_TYPE = 0x0B;
|
||||
private static final int CHANNEL_POWER_TRANSMISSION_TYPE = 5;
|
||||
// The period and frequency values the channel will be configured to
|
||||
private static final int CHANNEL_POWER_PERIOD = 8182; // 1 Hz
|
||||
private static final int CHANNEL_POWER_FREQUENCY = 57;
|
||||
private static final String TAG = PowerChannelController.class.getSimpleName();
|
||||
private static Random randGen = new Random();
|
||||
int power = 0;
|
||||
int cadence = 0;
|
||||
private AntChannel mAntChannel;
|
||||
private ChannelEventCallback mChannelEventCallback = new ChannelEventCallback();
|
||||
private boolean mIsOpen;
|
||||
|
||||
public PowerChannelController(AntChannel antChannel) {
|
||||
mAntChannel = antChannel;
|
||||
openChannel();
|
||||
}
|
||||
|
||||
boolean openChannel() {
|
||||
if (null != mAntChannel) {
|
||||
if (mIsOpen) {
|
||||
Log.w(TAG, "Channel was already open");
|
||||
} else {
|
||||
// Channel ID message contains device number, type and transmission type. In
|
||||
// order for master (TX) channels and slave (RX) channels to connect, they
|
||||
// must have the same channel ID, or wildcard (0) is used.
|
||||
ChannelId channelId = new ChannelId(POWER_SENSOR_ID & 0xFFFF,
|
||||
CHANNEL_POWER_DEVICE_TYPE, CHANNEL_POWER_TRANSMISSION_TYPE);
|
||||
|
||||
try {
|
||||
// Setting the channel event handler so that we can receive messages from ANT
|
||||
mAntChannel.setChannelEventHandler(mChannelEventCallback);
|
||||
|
||||
// Performs channel assignment by assigning the type to the channel. Additional
|
||||
// features (such as, background scanning and frequency agility) can be enabled
|
||||
// by passing an ExtendedAssignment object to assign(ChannelType, ExtendedAssignment).
|
||||
mAntChannel.assign(ChannelType.BIDIRECTIONAL_MASTER);
|
||||
|
||||
/*
|
||||
* Configures the channel ID, messaging period and rf frequency after assigning,
|
||||
* then opening the channel.
|
||||
*
|
||||
* For any additional ANT features such as proximity search or background scanning, refer to
|
||||
* the ANT Protocol Doc found at:
|
||||
* http://www.thisisant.com/resources/ant-message-protocol-and-usage/
|
||||
*/
|
||||
mAntChannel.setChannelId(channelId);
|
||||
mAntChannel.setPeriod(CHANNEL_POWER_PERIOD);
|
||||
mAntChannel.setRfFrequency(CHANNEL_POWER_FREQUENCY);
|
||||
mAntChannel.open();
|
||||
mIsOpen = true;
|
||||
|
||||
Log.d(TAG, "Opened channel with device number: " + POWER_SENSOR_ID);
|
||||
} catch (RemoteException e) {
|
||||
channelError(e);
|
||||
} catch (AntCommandFailedException e) {
|
||||
// This will release, and therefore unassign if required
|
||||
channelError("Open failed", e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "No channel available");
|
||||
}
|
||||
|
||||
return mIsOpen;
|
||||
}
|
||||
|
||||
|
||||
void channelError(RemoteException e) {
|
||||
String logString = "Remote service communication failed.";
|
||||
|
||||
Log.e(TAG, logString);
|
||||
|
||||
}
|
||||
|
||||
void channelError(String error, AntCommandFailedException e) {
|
||||
StringBuilder logString;
|
||||
|
||||
if (e.getResponseMessage() != null) {
|
||||
String initiatingMessageId = "0x" + Integer.toHexString(
|
||||
e.getResponseMessage().getInitiatingMessageId());
|
||||
String rawResponseCode = "0x" + Integer.toHexString(
|
||||
e.getResponseMessage().getRawResponseCode());
|
||||
|
||||
logString = new StringBuilder(error)
|
||||
.append(". Command ")
|
||||
.append(initiatingMessageId)
|
||||
.append(" failed with code ")
|
||||
.append(rawResponseCode);
|
||||
} else {
|
||||
String attemptedMessageId = "0x" + Integer.toHexString(
|
||||
e.getAttemptedMessageType().getMessageId());
|
||||
String failureReason = e.getFailureReason().toString();
|
||||
|
||||
logString = new StringBuilder(error)
|
||||
.append(". Command ")
|
||||
.append(attemptedMessageId)
|
||||
.append(" failed with reason ")
|
||||
.append(failureReason);
|
||||
}
|
||||
|
||||
Log.e(TAG, logString.toString());
|
||||
|
||||
mAntChannel.release();
|
||||
}
|
||||
|
||||
public void close() {
|
||||
// TODO kill all our resources
|
||||
if (null != mAntChannel) {
|
||||
mIsOpen = false;
|
||||
|
||||
// Releasing the channel to make it available for others.
|
||||
// After releasing, the AntChannel instance cannot be reused.
|
||||
mAntChannel.release();
|
||||
mAntChannel = null;
|
||||
}
|
||||
|
||||
Log.e(TAG, "Channel Closed");
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements the Channel Event Handler Interface so that messages can be
|
||||
* received and channel death events can be handled.
|
||||
*/
|
||||
public class ChannelEventCallback implements IAntChannelEventHandler {
|
||||
|
||||
int cnt = 0;
|
||||
int eventCount = 0;
|
||||
int cumulativePower = 0;
|
||||
|
||||
@Override
|
||||
public void onChannelDeath() {
|
||||
// Display channel death message when channel dies
|
||||
Log.e(TAG, "Channel Death");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveMessage(MessageFromAntType messageType, AntMessageParcel antParcel) {
|
||||
Log.d(TAG, "Rx: " + antParcel);
|
||||
Log.d(TAG, "Message Type: " + messageType);
|
||||
byte[] payload = new byte[8];
|
||||
|
||||
// Switching on message type to handle different types of messages
|
||||
switch (messageType) {
|
||||
// If data message, construct from parcel and update channel data
|
||||
case BROADCAST_DATA:
|
||||
// Rx Data
|
||||
//updateData(new BroadcastDataMessage(antParcel).getPayload());
|
||||
break;
|
||||
case ACKNOWLEDGED_DATA:
|
||||
// Rx Data
|
||||
//updateData(new AcknowledgedDataMessage(antParcel).getPayload());
|
||||
payload = new AcknowledgedDataMessage(antParcel).getPayload();
|
||||
Log.d(TAG, "AcknowledgedDataMessage: " + payload);
|
||||
|
||||
if ((payload[0] == 0) && (payload[1] == 1) && (payload[2] == (byte)0xAA)) {
|
||||
payload[0] = (byte) 0x01;
|
||||
payload[1] = (byte) 0xAC;
|
||||
payload[2] = (byte) 0xFF;
|
||||
payload[3] = (byte) 0xFF;
|
||||
payload[4] = (byte) 0xFF;
|
||||
payload[5] = (byte) 0xFF;
|
||||
payload[6] = (byte) 0x00;
|
||||
payload[7] = (byte) 0x00;
|
||||
try {
|
||||
// Setting the data to be broadcast on the next channel period
|
||||
mAntChannel.setBroadcastData(payload);
|
||||
} catch (RemoteException e) {
|
||||
channelError(e);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHANNEL_EVENT:
|
||||
// Constructing channel event message from parcel
|
||||
ChannelEventMessage eventMessage = new ChannelEventMessage(antParcel);
|
||||
EventCode code = eventMessage.getEventCode();
|
||||
Log.d(TAG, "Event Code: " + code);
|
||||
|
||||
// Switching on event code to handle the different types of channel events
|
||||
switch (code) {
|
||||
case TX:
|
||||
cnt += 1;
|
||||
|
||||
if (cnt % 61 == 15) {
|
||||
payload[0] = (byte) 0x50;
|
||||
payload[1] = (byte) 0xFF;
|
||||
payload[2] = (byte) 0xFF;
|
||||
payload[3] = (byte) 0x01;
|
||||
payload[4] = (byte) 0xFF;
|
||||
payload[5] = (byte) 0x00;
|
||||
payload[6] = (byte) 0x01;
|
||||
payload[7] = (byte) 0x00;
|
||||
} else if (cnt % 61 == 30) {
|
||||
payload[0] = (byte) 0x51;
|
||||
payload[1] = (byte) 0xFF;
|
||||
payload[2] = (byte) 0xFF;
|
||||
payload[3] = (byte) 0x01;
|
||||
payload[4] = (byte) ((POWER_SENSOR_ID) & 0xFF);
|
||||
payload[5] = (byte) ((POWER_SENSOR_ID >> 8) & 0xFF);
|
||||
payload[6] = (byte) ((POWER_SENSOR_ID >> 16) & 0xFF);
|
||||
payload[7] = (byte) ((POWER_SENSOR_ID >> 24) & 0xFF);
|
||||
} else {
|
||||
eventCount = (eventCount + 1) & 0xFF;
|
||||
cumulativePower = (cumulativePower + power) & 0xFFFF;
|
||||
payload[0] = (byte) 0x10;
|
||||
payload[1] = (byte) eventCount;
|
||||
payload[2] = (byte) 0xFF;
|
||||
payload[3] = (byte) cadence;
|
||||
payload[4] = (byte) ((cumulativePower) & 0xFF);
|
||||
payload[5] = (byte) ((cumulativePower >> 8) & 0xFF);
|
||||
payload[6] = (byte) ((power) & 0xFF);
|
||||
payload[7] = (byte) ((power >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
if (mIsOpen) {
|
||||
try {
|
||||
// Setting the data to be broadcast on the next channel period
|
||||
mAntChannel.setBroadcastData(payload);
|
||||
} catch (RemoteException e) {
|
||||
channelError(e);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHANNEL_COLLISION:
|
||||
cnt += 1;
|
||||
break;
|
||||
case RX_SEARCH_TIMEOUT:
|
||||
// TODO May want to keep searching
|
||||
Log.e(TAG, "No Device Found");
|
||||
break;
|
||||
case CHANNEL_CLOSED:
|
||||
case RX_FAIL:
|
||||
case RX_FAIL_GO_TO_SEARCH:
|
||||
case TRANSFER_RX_FAILED:
|
||||
case TRANSFER_TX_COMPLETED:
|
||||
case TRANSFER_TX_FAILED:
|
||||
case TRANSFER_TX_START:
|
||||
case UNKNOWN:
|
||||
// TODO More complex communication will need to handle these events
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ANT_VERSION:
|
||||
case BURST_TRANSFER_DATA:
|
||||
case CAPABILITIES:
|
||||
case CHANNEL_ID:
|
||||
case CHANNEL_RESPONSE:
|
||||
case CHANNEL_STATUS:
|
||||
case SERIAL_NUMBER:
|
||||
case OTHER:
|
||||
// TODO More complex communication will need to handle these message types
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
306
src/android/src/SpeedChannelController.java
Normal file
@@ -0,0 +1,306 @@
|
||||
/*
|
||||
* Copyright 2012 Dynastream Innovations Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package org.cagnulen.qdomyoszwift;
|
||||
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
import com.dsi.ant.channel.AntChannel;
|
||||
import com.dsi.ant.channel.AntCommandFailedException;
|
||||
import com.dsi.ant.channel.IAntChannelEventHandler;
|
||||
import com.dsi.ant.message.ChannelId;
|
||||
import com.dsi.ant.message.ChannelType;
|
||||
import com.dsi.ant.message.EventCode;
|
||||
import com.dsi.ant.message.fromant.ChannelEventMessage;
|
||||
import com.dsi.ant.message.fromant.MessageFromAntType;
|
||||
import com.dsi.ant.message.ipc.AntMessageParcel;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class SpeedChannelController {
|
||||
// The device type and transmission type to be part of the channel ID message
|
||||
private static final int CHANNEL_SPEED_DEVICE_TYPE = 0x7B;
|
||||
private static final int CHANNEL_SPEED_TRANSMISSION_TYPE = 1;
|
||||
|
||||
// The period and frequency values the channel will be configured to
|
||||
private static final int CHANNEL_SPEED_PERIOD = 8118; // 1 Hz
|
||||
private static final int CHANNEL_SPEED_FREQUENCY = 57;
|
||||
|
||||
private static final String TAG = SpeedChannelController.class.getSimpleName();
|
||||
public static final int SPEED_SENSOR_ID = 0x9e3d4b65;
|
||||
|
||||
private static Random randGen = new Random();
|
||||
|
||||
private AntChannel mAntChannel;
|
||||
|
||||
private ChannelEventCallback mChannelEventCallback = new ChannelEventCallback();
|
||||
|
||||
|
||||
private boolean mIsOpen;
|
||||
double speed = 0.0;
|
||||
|
||||
public SpeedChannelController(AntChannel antChannel) {
|
||||
mAntChannel = antChannel;
|
||||
openChannel();
|
||||
}
|
||||
|
||||
boolean openChannel() {
|
||||
if (null != mAntChannel) {
|
||||
if (mIsOpen) {
|
||||
Log.w(TAG, "Channel was already open");
|
||||
} else {
|
||||
// Channel ID message contains device number, type and transmission type. In
|
||||
// order for master (TX) channels and slave (RX) channels to connect, they
|
||||
// must have the same channel ID, or wildcard (0) is used.
|
||||
ChannelId channelId = new ChannelId(SPEED_SENSOR_ID & 0xFFFF,
|
||||
CHANNEL_SPEED_DEVICE_TYPE, CHANNEL_SPEED_TRANSMISSION_TYPE);
|
||||
|
||||
try {
|
||||
// Setting the channel event handler so that we can receive messages from ANT
|
||||
mAntChannel.setChannelEventHandler(mChannelEventCallback);
|
||||
|
||||
// Performs channel assignment by assigning the type to the channel. Additional
|
||||
// features (such as, background scanning and frequency agility) can be enabled
|
||||
// by passing an ExtendedAssignment object to assign(ChannelType, ExtendedAssignment).
|
||||
mAntChannel.assign(ChannelType.BIDIRECTIONAL_MASTER);
|
||||
|
||||
/*
|
||||
* Configures the channel ID, messaging period and rf frequency after assigning,
|
||||
* then opening the channel.
|
||||
*
|
||||
* For any additional ANT features such as proximity search or background scanning, refer to
|
||||
* the ANT Protocol Doc found at:
|
||||
* http://www.thisisant.com/resources/ant-message-protocol-and-usage/
|
||||
*/
|
||||
mAntChannel.setChannelId(channelId);
|
||||
mAntChannel.setPeriod(CHANNEL_SPEED_PERIOD);
|
||||
mAntChannel.setRfFrequency(CHANNEL_SPEED_FREQUENCY);
|
||||
mAntChannel.open();
|
||||
mIsOpen = true;
|
||||
|
||||
Log.d(TAG, "Opened channel with device number: " + SPEED_SENSOR_ID);
|
||||
} catch (RemoteException e) {
|
||||
channelError(e);
|
||||
} catch (AntCommandFailedException e) {
|
||||
// This will release, and therefore unassign if required
|
||||
channelError("Open failed", e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "No channel available");
|
||||
}
|
||||
|
||||
return mIsOpen;
|
||||
}
|
||||
|
||||
void channelError(RemoteException e) {
|
||||
String logString = "Remote service communication failed.";
|
||||
|
||||
Log.e(TAG, logString);
|
||||
}
|
||||
|
||||
void channelError(String error, AntCommandFailedException e) {
|
||||
StringBuilder logString;
|
||||
|
||||
if (e.getResponseMessage() != null) {
|
||||
String initiatingMessageId = "0x" + Integer.toHexString(
|
||||
e.getResponseMessage().getInitiatingMessageId());
|
||||
String rawResponseCode = "0x" + Integer.toHexString(
|
||||
e.getResponseMessage().getRawResponseCode());
|
||||
|
||||
logString = new StringBuilder(error)
|
||||
.append(". Command ")
|
||||
.append(initiatingMessageId)
|
||||
.append(" failed with code ")
|
||||
.append(rawResponseCode);
|
||||
} else {
|
||||
String attemptedMessageId = "0x" + Integer.toHexString(
|
||||
e.getAttemptedMessageType().getMessageId());
|
||||
String failureReason = e.getFailureReason().toString();
|
||||
|
||||
logString = new StringBuilder(error)
|
||||
.append(". Command ")
|
||||
.append(attemptedMessageId)
|
||||
.append(" failed with reason ")
|
||||
.append(failureReason);
|
||||
}
|
||||
|
||||
Log.e(TAG, logString.toString());
|
||||
|
||||
mAntChannel.release();
|
||||
|
||||
Log.e(TAG, "ANT Command Failed");
|
||||
}
|
||||
|
||||
public void close() {
|
||||
// TODO kill all our resources
|
||||
if (null != mAntChannel) {
|
||||
mIsOpen = false;
|
||||
|
||||
// Releasing the channel to make it available for others.
|
||||
// After releasing, the AntChannel instance cannot be reused.
|
||||
mAntChannel.release();
|
||||
mAntChannel = null;
|
||||
}
|
||||
|
||||
Log.e(TAG, "Channel Closed");
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements the Channel Event Handler Interface so that messages can be
|
||||
* received and channel death events can be handled.
|
||||
*/
|
||||
public class ChannelEventCallback implements IAntChannelEventHandler {
|
||||
int revCounts = 0;
|
||||
int ucMessageCount = 0;
|
||||
byte ucPageChange = 0;
|
||||
byte ucExtMesgType = 1;
|
||||
long lastTime = 0;
|
||||
double way;
|
||||
int rev;
|
||||
double remWay;
|
||||
double wheel = 0.1;
|
||||
|
||||
@Override
|
||||
public void onChannelDeath() {
|
||||
// Display channel death message when channel dies
|
||||
Log.e(TAG, "Channel Death");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveMessage(MessageFromAntType messageType, AntMessageParcel antParcel) {
|
||||
Log.d(TAG, "Rx: " + antParcel);
|
||||
Log.d(TAG, "Message Type: " + messageType);
|
||||
|
||||
// Switching on message type to handle different types of messages
|
||||
switch (messageType) {
|
||||
// If data message, construct from parcel and update channel data
|
||||
case BROADCAST_DATA:
|
||||
// Rx Data
|
||||
//updateData(new BroadcastDataMessage(antParcel).getPayload());
|
||||
break;
|
||||
case ACKNOWLEDGED_DATA:
|
||||
// Rx Data
|
||||
//updateData(new AcknowledgedDataMessage(antParcel).getPayload());
|
||||
break;
|
||||
case CHANNEL_EVENT:
|
||||
// Constructing channel event message from parcel
|
||||
ChannelEventMessage eventMessage = new ChannelEventMessage(antParcel);
|
||||
EventCode code = eventMessage.getEventCode();
|
||||
Log.d(TAG, "Event Code: " + code);
|
||||
|
||||
// Switching on event code to handle the different types of channel events
|
||||
switch (code) {
|
||||
case TX:
|
||||
long unixTime = System.currentTimeMillis() / 1000L;
|
||||
|
||||
if (lastTime != 0) {
|
||||
way = speed * (unixTime - lastTime) / 3.6 + remWay;
|
||||
rev = (int)(way / wheel + 0.5);
|
||||
remWay = way - rev * wheel;
|
||||
revCounts += rev;
|
||||
}
|
||||
lastTime = unixTime;
|
||||
|
||||
ucPageChange += 0x20;
|
||||
ucPageChange &= 0xF0;
|
||||
ucMessageCount += 1;
|
||||
byte[] payload = new byte[8];
|
||||
|
||||
if (ucMessageCount >= 65) {
|
||||
if (ucExtMesgType >= 4)
|
||||
ucExtMesgType = 1;
|
||||
|
||||
if (ucExtMesgType == 1) {
|
||||
int halfunixTime = (int) (unixTime / 2L);
|
||||
payload[0] = (byte) ((byte) 0x01 | (byte) (ucPageChange & (byte) 0x80));
|
||||
payload[1] = (byte) (halfunixTime & 0xFF);
|
||||
payload[2] = (byte) ((halfunixTime >> 8) & 0xFF);
|
||||
payload[3] = (byte) ((halfunixTime >> 16) & 0xFF);
|
||||
}
|
||||
else if (ucExtMesgType == 2) {
|
||||
payload[0] = (byte) ((byte) 0x02 | (byte) (ucPageChange & (byte) 0x80));
|
||||
payload[1] = (byte) 0xFF;
|
||||
payload[2] = (byte) ((SPEED_SENSOR_ID >> 16) & 0xFF);
|
||||
payload[3] = (byte) ((SPEED_SENSOR_ID >> 24) & 0xFF);
|
||||
}
|
||||
else if (ucExtMesgType == 3) {
|
||||
payload[0] = (byte) ((byte) 0x03 | (byte) (ucPageChange & (byte) 0x80));
|
||||
payload[1] = (byte) 0x01;
|
||||
payload[2] = (byte) 0x01;
|
||||
payload[3] = (byte) 0x01;
|
||||
}
|
||||
if (ucMessageCount >= 68) {
|
||||
ucMessageCount = 0;
|
||||
ucExtMesgType += 1;
|
||||
}
|
||||
} else {
|
||||
payload[0] = (byte) (ucPageChange & 0x80);
|
||||
payload[1] = (byte) 0xFF;
|
||||
payload[2] = (byte) 0xFF;
|
||||
payload[3] = (byte) 0xFF;
|
||||
}
|
||||
|
||||
int unixTime1024 = (int) (unixTime * 1024);
|
||||
payload[4] = (byte) (unixTime1024 & 0xFF);
|
||||
payload[5] = (byte) ((unixTime1024 >> 8) & 0xFF);
|
||||
payload[6] = (byte) (revCounts & 0xFF);
|
||||
payload[7] = (byte) ((revCounts >> 8) & 0xFF);
|
||||
|
||||
if (mIsOpen) {
|
||||
try {
|
||||
// Setting the data to be broadcast on the next channel period
|
||||
mAntChannel.setBroadcastData(payload);
|
||||
} catch (RemoteException e) {
|
||||
channelError(e);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHANNEL_COLLISION:
|
||||
ucPageChange += 0x20;
|
||||
ucPageChange &= 0xF0;
|
||||
ucMessageCount += 1;
|
||||
break;
|
||||
case RX_SEARCH_TIMEOUT:
|
||||
// TODO May want to keep searching
|
||||
Log.e(TAG, "No Device Found");
|
||||
break;
|
||||
case CHANNEL_CLOSED:
|
||||
case RX_FAIL:
|
||||
case RX_FAIL_GO_TO_SEARCH:
|
||||
case TRANSFER_RX_FAILED:
|
||||
case TRANSFER_TX_COMPLETED:
|
||||
case TRANSFER_TX_FAILED:
|
||||
case TRANSFER_TX_START:
|
||||
case UNKNOWN:
|
||||
// TODO More complex communication will need to handle these events
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ANT_VERSION:
|
||||
case BURST_TRANSFER_DATA:
|
||||
case CAPABILITIES:
|
||||
case CHANNEL_ID:
|
||||
case CHANNEL_RESPONSE:
|
||||
case CHANNEL_STATUS:
|
||||
case SERIAL_NUMBER:
|
||||
case OTHER:
|
||||
// TODO More complex communication will need to handle these message types
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
40
src/android/src/com/dsi/ant/channel/PredefinedNetwork.java
Normal file
@@ -0,0 +1,40 @@
|
||||
package com.dsi.ant.channel;
|
||||
|
||||
/**
|
||||
* Created by harald on 24.04.17.
|
||||
*/
|
||||
|
||||
public enum PredefinedNetwork {
|
||||
INVALID(-1),
|
||||
PUBLIC(0),
|
||||
ANT_PLUS_1(1),
|
||||
ANT_FS(2);
|
||||
|
||||
private final int mRawValue;
|
||||
private static final PredefinedNetwork[] sValues = values();
|
||||
|
||||
private PredefinedNetwork(int rawValue) {
|
||||
this.mRawValue = rawValue;
|
||||
}
|
||||
|
||||
int getRawValue() {
|
||||
return this.mRawValue;
|
||||
}
|
||||
|
||||
private boolean equals(int rawValue) {
|
||||
return rawValue == this.mRawValue;
|
||||
}
|
||||
|
||||
static PredefinedNetwork create(int rawValue) {
|
||||
PredefinedNetwork code = INVALID;
|
||||
|
||||
for(int i = 0; i < sValues.length; ++i) {
|
||||
if(sValues[i].equals(rawValue)) {
|
||||
code = sValues[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
}
|
||||