- feed integral for roll->left stick motion control

- feat: roll->left stick motion control multi-level sensitivity
This commit is contained in:
TrueZhuanjia committed 2025-11-04 16:01:21 +08:00
1 parent 6eca97b4aa
commit df8c273cb9
14 files changed
+166 -31

No files matched your search

+33 -11
View File
@@ -1380,16 +1380,16 @@
</constraints> </constraints>
</stackView> </stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Oyk-L5-WTt" userLabel="singleTapSensitivityStack"> <stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Oyk-L5-WTt" userLabel="singleTapSensitivityStack">
<rect key="frame" x="440" y="307" width="708" height="55.5"/> <rect key="frame" x="440" y="307" width="712" height="55.5"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SuN-S2-8hj"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SuN-S2-8hj">
<rect key="frame" x="0.0" y="0.0" width="708" height="20.5"/> <rect key="frame" x="0.0" y="0.0" width="712" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="j4n-De-TRX" userLabel="Single Tap Sensitivity Slider"> <slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="j4n-De-TRX" userLabel="Single Tap Sensitivity Slider">
<rect key="frame" x="-2" y="25.5" width="712" height="31"/> <rect key="frame" x="-2" y="25.5" width="716" height="31"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="30" id="qOF-42-hPO"/> <constraint firstAttribute="height" constant="30" id="qOF-42-hPO"/>
</constraints> </constraints>
@@ -1966,7 +1966,7 @@
</constraints> </constraints>
</view> </view>
<stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="z5Q-bW-WQ8" userLabel="widgetPanelStack" customClass="WidgetPanelStackView"> <stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="z5Q-bW-WQ8" userLabel="widgetPanelStack" customClass="WidgetPanelStackView">
<rect key="frame" x="325" y="156" width="650" height="623"/> <rect key="frame" x="325" y="156" width="650" height="658"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Profile:" textAlignment="center" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iel-xl-xd9"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Profile:" textAlignment="center" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iel-xl-xd9">
<rect key="frame" x="0.0" y="0.0" width="650" height="37"/> <rect key="frame" x="0.0" y="0.0" width="650" height="37"/>
@@ -2191,8 +2191,27 @@
</slider> </slider>
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KXB-uJ-onx" userLabel="decelerationRateStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zqk-Xa-Dku">
<rect key="frame" x="0.0" y="521" width="650" height="30"/> <rect key="frame" x="0.0" y="521" width="650" height="30"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Roll factor" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x9i-JN-FSn">
<rect key="frame" x="0.0" y="0.0" width="160" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="160" id="rEg-Gf-yGy"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<slider verifyAmbiguity="off" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" minValue="0.0" maxValue="8" translatesAutoresizingMaskIntoConstraints="NO" id="ELy-jP-cY6">
<rect key="frame" x="158" y="0.0" width="494" height="31"/>
<color key="tintColor" red="0.18823529410000001" green="0.69019607839999997" blue="0.78039215689999997" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<color key="maximumTrackTintColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</slider>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KXB-uJ-onx" userLabel="decelerationRateStack">
<rect key="frame" x="0.0" y="556" width="650" height="30"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DecelerationRate" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Pbt-Tw-dnV" userLabel="decelerationRateLabel"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DecelerationRate" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Pbt-Tw-dnV" userLabel="decelerationRateLabel">
<rect key="frame" x="0.0" y="0.0" width="160" height="30"/> <rect key="frame" x="0.0" y="0.0" width="160" height="30"/>
@@ -2211,7 +2230,7 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GMQ-EQ-Hum" userLabel="mouseDownButtonStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GMQ-EQ-Hum" userLabel="mouseDownButtonStack">
<rect key="frame" x="0.0" y="556" width="650" height="31"/> <rect key="frame" x="0.0" y="591" width="650" height="31"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Down button" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c1r-Hf-b7t" userLabel="mouseDownButtonLabel"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Down button" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c1r-Hf-b7t" userLabel="mouseDownButtonLabel">
<rect key="frame" x="0.0" y="0.0" width="130" height="31"/> <rect key="frame" x="0.0" y="0.0" width="130" height="31"/>
@@ -2238,7 +2257,7 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LGW-oJ-5Zf" userLabel="triggerModeStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LGW-oJ-5Zf" userLabel="triggerModeStack">
<rect key="frame" x="0.0" y="592" width="650" height="31"/> <rect key="frame" x="0.0" y="627" width="650" height="31"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qNQ-fB-jhY" userLabel="uiLabel"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qNQ-fB-jhY" userLabel="uiLabel">
<rect key="frame" x="0.0" y="0.0" width="130" height="31"/> <rect key="frame" x="0.0" y="0.0" width="130" height="31"/>
@@ -2312,6 +2331,9 @@
<outlet property="pitchFactorLabel" destination="fq3-ie-8by" id="dpT-7M-rIg"/> <outlet property="pitchFactorLabel" destination="fq3-ie-8by" id="dpT-7M-rIg"/>
<outlet property="pitchFactorSlider" destination="4NQ-cL-QH0" id="VxC-yb-L1u"/> <outlet property="pitchFactorSlider" destination="4NQ-cL-QH0" id="VxC-yb-L1u"/>
<outlet property="pitchFactorStack" destination="JNt-eT-HCs" id="iHx-Nk-Oko"/> <outlet property="pitchFactorStack" destination="JNt-eT-HCs" id="iHx-Nk-Oko"/>
<outlet property="rollFactorLabel" destination="x9i-JN-FSn" id="Z6N-It-yAL"/>
<outlet property="rollFactorSlider" destination="ELy-jP-cY6" id="6aX-c5-0po"/>
<outlet property="rollFactorStack" destination="zqk-Xa-Dku" id="PNE-l7-JwX"/>
<outlet property="saveButton" destination="uda-zt-xrG" id="FyB-WY-rri"/> <outlet property="saveButton" destination="uda-zt-xrG" id="FyB-WY-rri"/>
<outlet property="sensitivityXLabel" destination="vJs-pg-hHe" id="RRw-Zq-LUa"/> <outlet property="sensitivityXLabel" destination="vJs-pg-hHe" id="RRw-Zq-LUa"/>
<outlet property="sensitivityXSlider" destination="DiG-XX-r8c" id="fz5-Et-1WV"/> <outlet property="sensitivityXSlider" destination="DiG-XX-r8c" id="fz5-Et-1WV"/>
@@ -2443,7 +2465,7 @@
<image name="tray.full.fill" catalog="system" width="128" height="88"/> <image name="tray.full.fill" catalog="system" width="128" height="88"/>
<image name="video.and.waveform" catalog="system" width="128" height="94"/> <image name="video.and.waveform" catalog="system" width="128" height="94"/>
<systemColor name="linkColor"> <systemColor name="linkColor">
<color red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color red="0.0" green="0.47843137254901963" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor> </systemColor>
<systemColor name="secondarySystemGroupedBackgroundColor"> <systemColor name="secondarySystemGroupedBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@@ -2452,13 +2474,13 @@
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor> </systemColor>
<systemColor name="systemBrownColor"> <systemColor name="systemBrownColor">
<color red="0.63529411759999999" green="0.51764705879999995" blue="0.36862745099999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color red="0.63529411764705879" green="0.51764705882352946" blue="0.36862745098039218" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor> </systemColor>
<systemColor name="systemGray3Color"> <systemColor name="systemGray3Color">
<color red="0.78039215689999997" green="0.78039215689999997" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color red="0.7803921568627451" green="0.7803921568627451" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor> </systemColor>
<systemColor name="systemTealColor"> <systemColor name="systemTealColor">
<color red="0.18823529410000001" green="0.69019607839999997" blue="0.78039215689999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color red="0.18823529411764706" green="0.69019607843137254" blue="0.7803921568627451" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor> </systemColor>
</resources> </resources>
</document> </document>
+33 -8
View File
@@ -315,7 +315,7 @@
</constraints> </constraints>
</view> </view>
<stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="7" translatesAutoresizingMaskIntoConstraints="NO" id="BVp-3O-vZ7" userLabel="widgetPanelStack" customClass="WidgetPanelStackView"> <stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="7" translatesAutoresizingMaskIntoConstraints="NO" id="BVp-3O-vZ7" userLabel="widgetPanelStack" customClass="WidgetPanelStackView">
<rect key="frame" x="375" y="132" width="550" height="651"/> <rect key="frame" x="375" y="132" width="550" height="678"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Profile:" textAlignment="center" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f46-Pt-0Pv"> <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Profile:" textAlignment="center" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f46-Pt-0Pv">
<rect key="frame" x="0.0" y="0.0" width="550" height="28"/> <rect key="frame" x="0.0" y="0.0" width="550" height="28"/>
@@ -567,8 +567,30 @@
<constraint firstAttribute="height" constant="20" id="Zq1-ux-ep3"/> <constraint firstAttribute="height" constant="20" id="Zq1-ux-ep3"/>
</constraints> </constraints>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Bf-uN-nLa"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7G4-Ms-mkR">
<rect key="frame" x="0.0" y="550" width="550" height="20"/> <rect key="frame" x="0.0" y="550" width="550" height="20"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Roll factor" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BNN-vq-Pve">
<rect key="frame" x="0.0" y="0.0" width="160" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="160" id="0eJ-2k-yRX"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<slider clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" minValue="0.0" maxValue="8" translatesAutoresizingMaskIntoConstraints="NO" id="Ple-mD-zK4">
<rect key="frame" x="158" y="0.0" width="394" height="21"/>
<color key="tintColor" red="0.18823529410000001" green="0.69019607839999997" blue="0.78039215689999997" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<color key="maximumTrackTintColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</slider>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="20" id="J4D-gH-7HY"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Bf-uN-nLa">
<rect key="frame" x="0.0" y="577" width="550" height="20"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DecelerationRate" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="znE-Lv-uWV"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DecelerationRate" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="znE-Lv-uWV">
<rect key="frame" x="0.0" y="0.0" width="160" height="20"/> <rect key="frame" x="0.0" y="0.0" width="160" height="20"/>
@@ -590,7 +612,7 @@
</constraints> </constraints>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gsG-6n-BAb" userLabel="vibrationStyleStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gsG-6n-BAb" userLabel="vibrationStyleStack">
<rect key="frame" x="0.0" y="577" width="550" height="20"/> <rect key="frame" x="0.0" y="604" width="550" height="20"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Vibration style" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3w-Se-xzH" userLabel="sensitivityFactorLabel"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Vibration style" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3w-Se-xzH" userLabel="sensitivityFactorLabel">
<rect key="frame" x="0.0" y="0.0" width="130" height="20"/> <rect key="frame" x="0.0" y="0.0" width="130" height="20"/>
@@ -621,7 +643,7 @@
</constraints> </constraints>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lEZ-1a-89J" userLabel="mouseButtonDownStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lEZ-1a-89J" userLabel="mouseButtonDownStack">
<rect key="frame" x="0.0" y="604" width="550" height="20"/> <rect key="frame" x="0.0" y="631" width="550" height="20"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button down" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ozU-7C-qKE" userLabel="uilabel"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button down" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ozU-7C-qKE" userLabel="uilabel">
<rect key="frame" x="0.0" y="0.0" width="120" height="20"/> <rect key="frame" x="0.0" y="0.0" width="120" height="20"/>
@@ -651,7 +673,7 @@
</constraints> </constraints>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jE7-IB-GTS" userLabel="slidableStack"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jE7-IB-GTS" userLabel="slidableStack">
<rect key="frame" x="0.0" y="631" width="550" height="20"/> <rect key="frame" x="0.0" y="658" width="550" height="20"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o9I-Gt-YRd" userLabel="uilabel"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o9I-Gt-YRd" userLabel="uilabel">
<rect key="frame" x="0.0" y="0.0" width="120" height="20"/> <rect key="frame" x="0.0" y="0.0" width="120" height="20"/>
@@ -722,6 +744,9 @@
<outlet property="pitchFactorLabel" destination="dEy-ER-Mb3" id="0or-ME-7P1"/> <outlet property="pitchFactorLabel" destination="dEy-ER-Mb3" id="0or-ME-7P1"/>
<outlet property="pitchFactorSlider" destination="ol0-mA-VxW" id="bmd-0a-O4H"/> <outlet property="pitchFactorSlider" destination="ol0-mA-VxW" id="bmd-0a-O4H"/>
<outlet property="pitchFactorStack" destination="gkc-td-lg4" id="gI0-q7-tO2"/> <outlet property="pitchFactorStack" destination="gkc-td-lg4" id="gI0-q7-tO2"/>
<outlet property="rollFactorLabel" destination="BNN-vq-Pve" id="4mm-f5-d93"/>
<outlet property="rollFactorSlider" destination="Ple-mD-zK4" id="sHy-HC-68W"/>
<outlet property="rollFactorStack" destination="7G4-Ms-mkR" id="EzV-6y-77h"/>
<outlet property="sensitivityXLabel" destination="dJh-Ck-ugh" id="vso-QW-vxX"/> <outlet property="sensitivityXLabel" destination="dJh-Ck-ugh" id="vso-QW-vxX"/>
<outlet property="sensitivityXSlider" destination="Vqk-gH-0xO" id="CVC-XX-0LQ"/> <outlet property="sensitivityXSlider" destination="Vqk-gH-0xO" id="CVC-XX-0LQ"/>
<outlet property="sensitivityXStack" destination="fem-TG-vr3" id="O9M-Ip-ZlT"/> <outlet property="sensitivityXStack" destination="fem-TG-vr3" id="O9M-Ip-ZlT"/>
@@ -2214,16 +2239,16 @@
</constraints> </constraints>
</stackView> </stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="N0i-z6-WgC" userLabel="singleTapSensitivityStack"> <stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="N0i-z6-WgC" userLabel="singleTapSensitivityStack">
<rect key="frame" x="437" y="2383" width="456" height="55.5"/> <rect key="frame" x="437" y="2383" width="464" height="55.5"/>
<subviews> <subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WzD-wo-Wum"> <label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WzD-wo-Wum">
<rect key="frame" x="0.0" y="0.0" width="456" height="20.5"/> <rect key="frame" x="0.0" y="0.0" width="464" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="uCa-Oa-7mv" userLabel="Single Tap Sensitivity Slider"> <slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="uCa-Oa-7mv" userLabel="Single Tap Sensitivity Slider">
<rect key="frame" x="-2" y="25.5" width="460" height="31"/> <rect key="frame" x="-2" y="25.5" width="468" height="31"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="30" id="XXP-GP-uhn"/> <constraint firstAttribute="height" constant="30" id="XXP-GP-uhn"/>
</constraints> </constraints>
@@ -404,6 +404,7 @@ static CGRect layoutViewBounds;
buttonState.sensitivityFactorY = widgetView.sensitivityFactorY; buttonState.sensitivityFactorY = widgetView.sensitivityFactorY;
buttonState.yawFactor = widgetView.yawFactor; buttonState.yawFactor = widgetView.yawFactor;
buttonState.pitchFactor = widgetView.pitchFactor; buttonState.pitchFactor = widgetView.pitchFactor;
buttonState.rollFactor = widgetView.rollFactor;
buttonState.decelerationRate = widgetView.trackballDecelerationRate; buttonState.decelerationRate = widgetView.trackballDecelerationRate;
buttonState.stickIndicatorOffset = widgetView.stickIndicatorOffset; buttonState.stickIndicatorOffset = widgetView.stickIndicatorOffset;
buttonState.widgetShape = widgetView.shape; buttonState.widgetShape = widgetView.shape;
@@ -38,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) CGFloat sensitivityFactorY; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat sensitivityFactorY; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat yawFactor; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat yawFactor; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat pitchFactor; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat pitchFactor; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat rollFactor; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat decelerationRate; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat decelerationRate; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat stickIndicatorOffset; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat stickIndicatorOffset; // for OnScreenWidgetView
@property (nonatomic, assign) CGFloat minStickOffset; // for OnScreenWidgetView @property (nonatomic, assign) CGFloat minStickOffset; // for OnScreenWidgetView
@@ -48,6 +48,7 @@
[encoder encodeFloat:self.sensitivityFactorY forKey:@"sensitivityFactorY"]; [encoder encodeFloat:self.sensitivityFactorY forKey:@"sensitivityFactorY"];
[encoder encodeFloat:self.yawFactor forKey:@"yawFactor"]; [encoder encodeFloat:self.yawFactor forKey:@"yawFactor"];
[encoder encodeFloat:self.pitchFactor forKey:@"pitchFactor"]; [encoder encodeFloat:self.pitchFactor forKey:@"pitchFactor"];
[encoder encodeFloat:self.rollFactor forKey:@"rollFactor"];
[encoder encodeFloat:self.decelerationRate forKey:@"decelerationRate"]; [encoder encodeFloat:self.decelerationRate forKey:@"decelerationRate"];
[encoder encodeFloat:self.stickIndicatorOffset forKey:@"stickIndicatorOffset"]; [encoder encodeFloat:self.stickIndicatorOffset forKey:@"stickIndicatorOffset"];
[encoder encodeFloat:self.oscLayerSizeFactor forKey:@"oscLayerSizeFactor"]; [encoder encodeFloat:self.oscLayerSizeFactor forKey:@"oscLayerSizeFactor"];
@@ -79,6 +80,7 @@
self.sensitivityFactorY = [decoder containsValueForKey:@"sensitivityFactorY"] ? [decoder decodeFloatForKey:@"sensitivityFactorY"] : 1.0; self.sensitivityFactorY = [decoder containsValueForKey:@"sensitivityFactorY"] ? [decoder decodeFloatForKey:@"sensitivityFactorY"] : 1.0;
self.yawFactor = [decoder containsValueForKey:@"yawFactor"] ? [decoder decodeFloatForKey:@"yawFactor"] : 1.0; self.yawFactor = [decoder containsValueForKey:@"yawFactor"] ? [decoder decodeFloatForKey:@"yawFactor"] : 1.0;
self.pitchFactor = [decoder containsValueForKey:@"pitchFactor"] ? [decoder decodeFloatForKey:@"pitchFactor"] : 1.0; self.pitchFactor = [decoder containsValueForKey:@"pitchFactor"] ? [decoder decodeFloatForKey:@"pitchFactor"] : 1.0;
self.rollFactor = [decoder containsValueForKey:@"rollFactor"] ? [decoder decodeFloatForKey:@"rollFactor"] : 1.0;
self.decelerationRate = [decoder decodeFloatForKey:@"decelerationRate"]; self.decelerationRate = [decoder decodeFloatForKey:@"decelerationRate"];
self.stickIndicatorOffset = [decoder decodeFloatForKey:@"stickIndicatorOffset"]; self.stickIndicatorOffset = [decoder decodeFloatForKey:@"stickIndicatorOffset"];
self.oscLayerSizeFactor = [decoder decodeFloatForKey:@"oscLayerSizeFactor"]; self.oscLayerSizeFactor = [decoder decodeFloatForKey:@"oscLayerSizeFactor"];
+15 -8
View File
@@ -22,6 +22,7 @@ import CoreMotion
} }
public func mixLeftStickAndGyroInput(x: CGFloat, y: CGFloat) { public func mixLeftStickAndGyroInput(x: CGFloat, y: CGFloat) {
// rollIntegral = 0
leftStickTouchInputX = x leftStickTouchInputX = x
leftStickTouchInputY = y leftStickTouchInputY = y
} }
@@ -77,6 +78,7 @@ import CoreMotion
private var yaw:Double = 0 private var yaw:Double = 0
private var pitch:Double = 0 private var pitch:Double = 0
private var roll:Double = 0 private var roll:Double = 0
private var rollIntegral:Double = 0
private var isCalibrating: Bool = false private var isCalibrating: Bool = false
private var sumX: Double = 0 private var sumX: Double = 0
@@ -124,6 +126,7 @@ import CoreMotion
self.widgetYawFactor = yawFactor self.widgetYawFactor = yawFactor
self.widgetPitchFactor = pitchFactor self.widgetPitchFactor = pitchFactor
self.widgetRollFactor = rollFactor self.widgetRollFactor = rollFactor
print("self.widgetRollFactor \(self.widgetRollFactor)")
if self.gyroStarter == nil { if self.gyroStarter == nil {
self.gyroStarter = sender self.gyroStarter = sender
if sender.motionControlButtonString != "GYROPAUSE" {self.startGyroUpdate()} if sender.motionControlButtonString != "GYROPAUSE" {self.startGyroUpdate()}
@@ -164,13 +167,13 @@ import CoreMotion
/// 停止更新 /// 停止更新
private var interruptTouchInput:Bool = false private var interruptTouchInput:Bool = false
@objc public func stopGyroUpdate(interruptTouchInput:Bool=false) { @objc public func stopGyroUpdate(interruptTouchInput:Bool=false, resetLeftStick:Bool=false) {
gyroControlStarted = false gyroControlStarted = false
gyroIsWorking = false gyroIsWorking = false
if motionManager.isGyroActive{ if motionManager.isGyroActive{
motionManager.stopGyroUpdates() motionManager.stopGyroUpdates()
} }
self.clearGyroInput(interruptTouchInput: interruptTouchInput) self.clearGyroInput(interruptTouchInput:interruptTouchInput, resetLeftStick:resetLeftStick)
} }
@objc public func stopAccelUpdate() { @objc public func stopAccelUpdate() {
@@ -283,21 +286,25 @@ import CoreMotion
self.onScreenControls.sendRightStickTouchPadEvent(yaw, pitch) self.onScreenControls.sendRightStickTouchPadEvent(yaw, pitch)
} }
if oscProfile.rollToLeftStick { if oscProfile.rollToLeftStick {
roll = leftStickTouchInputX + gyroInputToStickInput(input:rollSource*sensitvityRoll*widgetRollFactor*10) roll = gyroInputToStickInput(input:rollSource*sensitvityRoll*widgetRollFactor*0.2)
roll = self.clampStickInput(input: roll) rollIntegral = rollIntegral + roll
roll = (roll >= 0 ? 1.0 : -1.0) * gyroToStickMinOffset + (self.stickMaxOffset - gyroToStickMinOffset) * (roll/self.stickMaxOffset) var mixedLeftStickOffset = self.clampStickInput(input: rollIntegral+leftStickTouchInputX)
mixedLeftStickOffset = (mixedLeftStickOffset >= 0 ? 1.0 : -1.0) * gyroToStickMinOffset + (self.stickMaxOffset - gyroToStickMinOffset) * (mixedLeftStickOffset/self.stickMaxOffset)
self.onScreenControls.sendLeftStickTouchPadEvent(roll, leftStickTouchInputY) self.onScreenControls.sendLeftStickTouchPadEvent(mixedLeftStickOffset, leftStickTouchInputY)
} }
} }
} }
private func clearGyroInput(interruptTouchInput:Bool){ private func clearGyroInput(interruptTouchInput:Bool, resetLeftStick:Bool=false){
if oscProfile.yawPitchToRightStick{ if oscProfile.yawPitchToRightStick{
self.onScreenControls.sendRightStickTouchPadEvent(rightStickTouchInputX-yawBias, rightStickTouchInputY-pitchBias) self.onScreenControls.sendRightStickTouchPadEvent(rightStickTouchInputX-yawBias, rightStickTouchInputY-pitchBias)
} }
if oscProfile.rollToLeftStick{ if oscProfile.rollToLeftStick{
self.onScreenControls.sendLeftStickTouchPadEvent(leftStickTouchInputX-rollBias, leftStickTouchInputY) if resetLeftStick {
rollIntegral = 0
self.onScreenControls.sendLeftStickTouchPadEvent(leftStickTouchInputX-rollBias, leftStickTouchInputY)
}
} }
if(interruptTouchInput){ if(interruptTouchInput){
self.onScreenControls.clearLeftStickTouchPadFlag() self.onScreenControls.clearLeftStickTouchPadFlag()
+6 -1
View File
@@ -110,6 +110,9 @@ import UIKit
@objc public var hasPitchFactor: Bool = false @objc public var hasPitchFactor: Bool = false
@objc public var pitchFactorMin: CGFloat = 0 @objc public var pitchFactorMin: CGFloat = 0
@objc public var pitchFactorMax: CGFloat = 1 @objc public var pitchFactorMax: CGFloat = 1
@objc public var hasRollFactor: Bool = false
@objc public var rollFactorMin: CGFloat = 0
@objc public var rollFactorMax: CGFloat = 1
@objc public var hasAutoTap: Bool = false @objc public var hasAutoTap: Bool = false
@objc public var isMousePad: Bool = false @objc public var isMousePad: Bool = false
@@ -355,6 +358,8 @@ import UIKit
self.pitchFactorMin = 0 self.pitchFactorMin = 0
self.pitchFactorMax = 1.0 self.pitchFactorMax = 1.0
self.hasRollFactor = self.motionControlButtonString == "GYRO" && (oscProfile.mapGyroTo == MapGyroTo.mapGyroToControllerStick && oscProfile.rollToLeftStick)
self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == "" self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == ""
self.isMousePad = self.touchPadString == "MOUSEPAD" && widgetType == WidgetTypeEnum.touchPad self.isMousePad = self.touchPadString == "MOUSEPAD" && widgetType == WidgetTypeEnum.touchPad
self.hasTrackBall = self.touchPadString == "TRACKBALL" self.hasTrackBall = self.touchPadString == "TRACKBALL"
@@ -1790,7 +1795,7 @@ import UIKit
widget.tapToToggleFlag = !widget.tapToToggleFlag widget.tapToToggleFlag = !widget.tapToToggleFlag
} }
} }
self.motionHandler.stopGyroUpdate(interruptTouchInput: false) self.motionHandler.stopGyroUpdate(interruptTouchInput: false, resetLeftStick: true)
self.motionHandler.gyroStarter = nil self.motionHandler.gyroStarter = nil
} }
else { else {
+1
View File
@@ -565,6 +565,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5;
widgetView.sensitivityFactorY = buttonState.sensitivityFactorY; widgetView.sensitivityFactorY = buttonState.sensitivityFactorY;
widgetView.yawFactor = buttonState.yawFactor; widgetView.yawFactor = buttonState.yawFactor;
widgetView.pitchFactor = buttonState.pitchFactor; widgetView.pitchFactor = buttonState.pitchFactor;
widgetView.rollFactor = buttonState.rollFactor;
widgetView.trackballDecelerationRate = buttonState.decelerationRate; widgetView.trackballDecelerationRate = buttonState.decelerationRate;
widgetView.stickIndicatorOffset = buttonState.stickIndicatorOffset; widgetView.stickIndicatorOffset = buttonState.stickIndicatorOffset;
widgetView.minStickOffset = buttonState.minStickOffset; widgetView.minStickOffset = buttonState.minStickOffset;
@@ -4874,6 +4874,29 @@
} }
} }
}, },
"Roll factor: %.2f" : {
"extractionState" : "manual",
"localizations" : {
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "滚转系数: %.2f"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "滾轉係數: %.2f"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "滾轉係數: %.2f"
}
}
}
},
"Save" : { "Save" : {
"extractionState" : "manual", "extractionState" : "manual",
"localizations" : { "localizations" : {
@@ -84,6 +84,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic) IBOutlet UILabel *pitchFactorLabel; @property (strong, nonatomic) IBOutlet UILabel *pitchFactorLabel;
@property (strong, nonatomic) IBOutlet UISlider *pitchFactorSlider; @property (strong, nonatomic) IBOutlet UISlider *pitchFactorSlider;
@property (strong, nonatomic) IBOutlet UIStackView *pitchFactorStack; @property (strong, nonatomic) IBOutlet UIStackView *pitchFactorStack;
@property (strong, nonatomic) IBOutlet UILabel *rollFactorLabel;
@property (strong, nonatomic) IBOutlet UISlider *rollFactorSlider;
@property (strong, nonatomic) IBOutlet UIStackView *rollFactorStack;
@property (strong, nonatomic) IBOutlet UIStackView *decelerationRateStack; @property (strong, nonatomic) IBOutlet UIStackView *decelerationRateStack;
@@ -155,6 +155,7 @@ typedef NS_ENUM(NSUInteger, BorderWidthSliderMode) {
widgetView.sensitivityFactorY = buttonState.sensitivityFactorY; widgetView.sensitivityFactorY = buttonState.sensitivityFactorY;
widgetView.yawFactor = buttonState.yawFactor; widgetView.yawFactor = buttonState.yawFactor;
widgetView.pitchFactor = buttonState.pitchFactor; widgetView.pitchFactor = buttonState.pitchFactor;
widgetView.rollFactor = buttonState.rollFactor;
widgetView.trackballDecelerationRate = buttonState.decelerationRate; widgetView.trackballDecelerationRate = buttonState.decelerationRate;
widgetView.stickIndicatorOffset = buttonState.stickIndicatorOffset; widgetView.stickIndicatorOffset = buttonState.stickIndicatorOffset;
widgetView.minStickOffset = buttonState.minStickOffset; widgetView.minStickOffset = buttonState.minStickOffset;
@@ -746,6 +747,7 @@ typedef NS_ENUM(NSUInteger, BorderWidthSliderMode) {
newWidget.sensitivityFactorY = widget.sensitivityFactorY; newWidget.sensitivityFactorY = widget.sensitivityFactorY;
newWidget.yawFactor = widget.yawFactor; newWidget.yawFactor = widget.yawFactor;
newWidget.pitchFactor = widget.pitchFactor; newWidget.pitchFactor = widget.pitchFactor;
newWidget.rollFactor = widget.rollFactor;
newWidget.trackballDecelerationRate = widget.trackballDecelerationRate; newWidget.trackballDecelerationRate = widget.trackballDecelerationRate;
newWidget.stickIndicatorOffset = widget.stickIndicatorOffset; newWidget.stickIndicatorOffset = widget.stickIndicatorOffset;
newWidget.minStickOffset = [widgetInitParams[@"minStickOffsetString"] floatValue]; newWidget.minStickOffset = [widgetInitParams[@"minStickOffsetString"] floatValue];
@@ -919,6 +921,15 @@ typedef NS_ENUM(NSUInteger, BorderWidthSliderMode) {
[self autoFitLabel:self.pitchFactorLabel]; [self autoFitLabel:self.pitchFactorLabel];
} }
self.rollFactorStack.hidden = !selectedWidgetView.hasRollFactor;
if(selectedWidgetView.hasRollFactor){
[self.rollFactorSlider setMinimumValue:selectedWidgetView.rollFactorMin];
[self.rollFactorSlider setMaximumValue:selectedWidgetView.rollFactorMax];
[self.rollFactorSlider setValue:self->selectedWidgetView.rollFactor];
[self.rollFactorLabel setText:[LocalizationHelper localizedStringForKey:@"Roll factor: %.2f", self->selectedWidgetView.rollFactor]];
[self autoFitLabel:self.rollFactorLabel];
}
self.stickIndicatorOffsetStack.hidden = !selectedWidgetView.hasStickIndicator; self.stickIndicatorOffsetStack.hidden = !selectedWidgetView.hasStickIndicator;
if(selectedWidgetView.hasStickIndicator){ if(selectedWidgetView.hasStickIndicator){
@@ -1174,6 +1185,12 @@ typedef NS_ENUM(NSUInteger, BorderWidthSliderMode) {
return; return;
} }
- (void)rollFactorSliderMoved:(UISlider* )sender{
[self.rollFactorLabel setText:[LocalizationHelper localizedStringForKey:@"Roll factor: %.2f", sender.value]];
if(self->selectedWidgetView != nil && self->widgetViewSelected) self->selectedWidgetView.rollFactor = sender.value;
return;
}
- (void)decelerationRateSliderMoved:(UISlider* )sender{ - (void)decelerationRateSliderMoved:(UISlider* )sender{
[self.decelerationRateLabel setText:[LocalizationHelper localizedStringForKey:@"Deceleration Rate: %.3f ", sender.value]]; [self.decelerationRateLabel setText:[LocalizationHelper localizedStringForKey:@"Deceleration Rate: %.3f ", sender.value]];
if(self->selectedWidgetView != nil && self->widgetViewSelected) self->selectedWidgetView.trackballDecelerationRate = sender.value; if(self->selectedWidgetView != nil && self->widgetViewSelected) self->selectedWidgetView.trackballDecelerationRate = sender.value;
@@ -1308,13 +1325,17 @@ typedef NS_ENUM(NSUInteger, BorderWidthSliderMode) {
self.sensitivityYStack.hidden = YES; self.sensitivityYStack.hidden = YES;
[self.yawFactorSlider addTarget:self action:@selector(yawFactorSliderMoved:) forControlEvents:(UIControlEventValueChanged)]; [self.yawFactorSlider addTarget:self action:@selector(yawFactorSliderMoved:) forControlEvents:(UIControlEventValueChanged)];
self.yawFactorLabel.text = [LocalizationHelper localizedStringForKey:@"SensitivityYaw"]; self.yawFactorLabel.text = [LocalizationHelper localizedStringForKey:@"Yaw Factor"];
self.yawFactorStack.hidden = YES; self.yawFactorStack.hidden = YES;
[self.pitchFactorSlider addTarget:self action:@selector(pitchFactorSliderMoved:) forControlEvents:(UIControlEventValueChanged)]; [self.pitchFactorSlider addTarget:self action:@selector(pitchFactorSliderMoved:) forControlEvents:(UIControlEventValueChanged)];
self.pitchFactorLabel.text = [LocalizationHelper localizedStringForKey:@"SensitivityPitch"]; self.pitchFactorLabel.text = [LocalizationHelper localizedStringForKey:@"Pitch Factor"];
self.pitchFactorStack.hidden = YES; self.pitchFactorStack.hidden = YES;
[self.rollFactorSlider addTarget:self action:@selector(rollFactorSliderMoved:) forControlEvents:(UIControlEventValueChanged)];
self.rollFactorLabel.text = [LocalizationHelper localizedStringForKey:@"Roll Factor"];
self.rollFactorStack.hidden = YES;
[self.decelerationRateSlider addTarget:self action:@selector(decelerationRateSliderMoved:) forControlEvents:(UIControlEventValueChanged)]; [self.decelerationRateSlider addTarget:self action:@selector(decelerationRateSliderMoved:) forControlEvents:(UIControlEventValueChanged)];
self.decelerationRateLabel.text = [LocalizationHelper localizedStringForKey:@"Deceleration Rate"]; self.decelerationRateLabel.text = [LocalizationHelper localizedStringForKey:@"Deceleration Rate"];
self.decelerationRateStack.hidden = YES; self.decelerationRateStack.hidden = YES;
@@ -1572,7 +1572,7 @@
} }
- (void)stopGyroUpdateWithInterruptTouchInput:(BOOL)interruption{ - (void)stopGyroUpdateWithInterruptTouchInput:(BOOL)interruption{
[_motionHandler stopGyroUpdateWithInterruptTouchInput:interruption]; [_motionHandler stopGyroUpdateWithInterruptTouchInput:interruption resetLeftStick:false];
} }
- (void)stopAccelUpdate{ - (void)stopAccelUpdate{
+12
View File
@@ -4573,6 +4573,18 @@
} }
} }
}, },
"x9i-JN-FSn.text" : {
"comment" : "Class = \"UILabel\"; text = \"Roll factor\"; ObjectID = \"x9i-JN-FSn\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Roll factor"
}
}
}
},
"xfv-K0-1CO.text" : { "xfv-K0-1CO.text" : {
"comment" : "Class = \"UILabel\"; text = \"Tap any widget to load configuration (per widget)\\n\"; ObjectID = \"xfv-K0-1CO\";", "comment" : "Class = \"UILabel\"; text = \"Tap any widget to load configuration (per widget)\\n\"; ObjectID = \"xfv-K0-1CO\";",
"extractionState" : "extracted_with_value", "extractionState" : "extracted_with_value",
+12
View File
@@ -1297,6 +1297,18 @@
} }
} }
}, },
"BNN-vq-Pve.text" : {
"comment" : "Class = \"UILabel\"; text = \"Roll factor\"; ObjectID = \"BNN-vq-Pve\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Roll factor"
}
}
}
},
"bue-hp-CWD.title" : { "bue-hp-CWD.title" : {
"comment" : "Class = \"UIBarButtonItem\"; title = \"Duplicate\"; ObjectID = \"bue-hp-CWD\";", "comment" : "Class = \"UIBarButtonItem\"; title = \"Duplicate\"; ObjectID = \"bue-hp-CWD\";",
"extractionState" : "extracted_with_value", "extractionState" : "extracted_with_value",