diff --git a/Limelight/Base.lproj/iPad.storyboard b/Limelight/Base.lproj/iPad.storyboard
index f648055a..85c41021 100644
--- a/Limelight/Base.lproj/iPad.storyboard
+++ b/Limelight/Base.lproj/iPad.storyboard
@@ -236,14 +236,14 @@
-
+
@@ -327,21 +327,21 @@ ICAgICAgICAgICAgICA
-
+
@@ -351,14 +351,14 @@ ICAgICAgICAgICAgICA
-
+
@@ -370,14 +370,14 @@ ICAgICAgICAgICAgICA
-
+
@@ -387,14 +387,14 @@ ICAgICAgICAgICAgICA
-
+
@@ -404,14 +404,31 @@ ICAgICAgICAgICAgICA
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -421,14 +438,14 @@ ICAgICAgICAgICAgICA
-
+
@@ -438,14 +455,14 @@ ICAgICAgICAgICAgICA
-
+
@@ -455,7 +472,7 @@ ICAgICAgICAgICAgICA
-
+
@@ -517,6 +534,19 @@ ICAgICAgICAgICAgICA
+
+
+
+
+
+
@@ -543,10 +573,13 @@ ICAgICAgICAgICAgICA
+
+
+
@@ -907,7 +940,7 @@ ICAgICAgICAgICAgICA
-
+
diff --git a/Limelight/Base.lproj/iPhone.storyboard b/Limelight/Base.lproj/iPhone.storyboard
index 0e7e10f5..db950dff 100644
--- a/Limelight/Base.lproj/iPhone.storyboard
+++ b/Limelight/Base.lproj/iPhone.storyboard
@@ -83,7 +83,7 @@
-
+
-
+
@@ -560,10 +589,13 @@ ICAgICAgICAgICAgIA
+
+
+
@@ -580,7 +612,7 @@ ICAgICAgICAgICAgIA
-
+
@@ -909,7 +941,7 @@ ICAgICAgICAgICAgIA
-
+
diff --git a/Limelight/Database/DataManager.h b/Limelight/Database/DataManager.h
index d1a5d226..c6e00979 100644
--- a/Limelight/Database/DataManager.h
+++ b/Limelight/Database/DataManager.h
@@ -26,7 +26,9 @@
pointerVelocityModeDivider:(CGFloat)pointerVelocityModeDivider
touchPointerVelocityFactor:(CGFloat)touchPointerVelocityFactor
mousePointerVelocityFactor:(CGFloat)mousePointerVelocityFactor
- largerStickLR1:(BOOL)largerStickLR1
+ oscTapExlusionAreaSize:(CGFloat)oscTapExlusionAreaSize
+ reverseMouseWheelDirection:(BOOL)reverseMouseWheelDirection
+ largerStickLR1:(BOOL)largerStickLR1
liftStreamViewForKeyboard:(BOOL)liftStreamViewForKeyboard
showKeyboardToolbar:(BOOL)showKeyboardToolbar
optimizeGames:(BOOL)optimizeGames
diff --git a/Limelight/Database/DataManager.m b/Limelight/Database/DataManager.m
index 09f78c5b..407194e9 100644
--- a/Limelight/Database/DataManager.m
+++ b/Limelight/Database/DataManager.m
@@ -65,7 +65,9 @@
pointerVelocityModeDivider:(CGFloat)pointerVelocityModeDivider
touchPointerVelocityFactor:(CGFloat)touchPointerVelocityFactor
mousePointerVelocityFactor:(CGFloat)mousePointerVelocityFactor
- largerStickLR1:(BOOL)largerStickLR1
+ oscTapExlusionAreaSize:(CGFloat)oscTapExlusionAreaSize
+ reverseMouseWheelDirection:(BOOL)reverseMouseWheelDirection
+ largerStickLR1:(BOOL)largerStickLR1
liftStreamViewForKeyboard:(BOOL)liftStreamViewForKeyboard
showKeyboardToolbar:(BOOL)showKeyboardToolbar
optimizeGames:(BOOL)optimizeGames
@@ -96,6 +98,8 @@
settingsToSave.pointerVelocityModeDivider = [NSNumber numberWithFloat:pointerVelocityModeDivider];
settingsToSave.touchPointerVelocityFactor = [NSNumber numberWithFloat:touchPointerVelocityFactor];
settingsToSave.mousePointerVelocityFactor = [NSNumber numberWithFloat:mousePointerVelocityFactor];
+ settingsToSave.oscTapExlusionAreaSize = [NSNumber numberWithFloat:oscTapExlusionAreaSize];
+ settingsToSave.reverseMouseWheelDirection = reverseMouseWheelDirection;
settingsToSave.largerStickLR1 = largerStickLR1;
settingsToSave.liftStreamViewForKeyboard = liftStreamViewForKeyboard;
settingsToSave.showKeyboardToolbar = showKeyboardToolbar;
diff --git a/Limelight/Database/TemporarySettings.h b/Limelight/Database/TemporarySettings.h
index c9fed339..7e58f722 100644
--- a/Limelight/Database/TemporarySettings.h
+++ b/Limelight/Database/TemporarySettings.h
@@ -28,6 +28,7 @@
@property (nonatomic, retain) NSNumber * oscLayoutToolFingers;
@property (nonatomic, retain) NSNumber * slideToSettingsScreenEdge;
@property (nonatomic, retain) NSNumber * slideToSettingsDistance;
+@property (nonatomic, retain) NSNumber * oscTapExlusionAreaSize;
@property (nonatomic, retain) NSNumber * touchPointerVelocityFactor;
@property (nonatomic, retain) NSNumber * mousePointerVelocityFactor;
@property (nonatomic, retain) NSNumber * pointerVelocityModeDivider;
@@ -38,6 +39,7 @@
CODEC_PREF_HEVC,
CODEC_PREF_AV1,
} preferredCodec;
+@property (nonatomic) BOOL reverseMouseWheelDirection;
@property (nonatomic) BOOL largerStickLR1;
@property (nonatomic) BOOL useFramePacing;
@property (nonatomic) BOOL multiController;
diff --git a/Limelight/Database/TemporarySettings.m b/Limelight/Database/TemporarySettings.m
index b96825a1..75d66e23 100644
--- a/Limelight/Database/TemporarySettings.m
+++ b/Limelight/Database/TemporarySettings.m
@@ -82,6 +82,7 @@
self.multiController = settings.multiController;
self.swapABXYButtons = settings.swapABXYButtons;
self.onscreenControls = settings.onscreenControls;
+ self.reverseMouseWheelDirection = settings.reverseMouseWheelDirection;
self.largerStickLR1 = settings.largerStickLR1;
self.btMouseSupport = settings.btMouseSupport;
// self.absoluteTouchMode = settings.absoluteTouchMode;
@@ -93,6 +94,7 @@
self.slideToSettingsDistance = settings.slideToSettingsDistance;
self.liftStreamViewForKeyboard = settings.liftStreamViewForKeyboard;
self.showKeyboardToolbar = settings.showKeyboardToolbar;
+ self.oscTapExlusionAreaSize = settings.oscTapExlusionAreaSize;
self.touchPointerVelocityFactor = settings.touchPointerVelocityFactor;
self.mousePointerVelocityFactor = settings.mousePointerVelocityFactor;
self.pointerVelocityModeDivider = settings.pointerVelocityModeDivider;
diff --git a/Limelight/Input/OnScreenControls.m b/Limelight/Input/OnScreenControls.m
index db370382..d5da66b0 100644
--- a/Limelight/Input/OnScreenControls.m
+++ b/Limelight/Input/OnScreenControls.m
@@ -58,6 +58,7 @@ static NSMutableSet* touchAddrsCapturedByOnScreenControls;
NSMutableArray* _deadTouches;
BOOL _swapABXY;
BOOL _largerStickLR1;
+ CGFloat _oscTapExlusionAreaSizeFactor;
OSCProfilesManager *profilesManager;
NSMutableDictionary *_activeCustomOscButtonPositionDict;
}
@@ -152,7 +153,7 @@ static float L3_Y;
DataManager* dataMan = [[DataManager alloc] init];
Settings* settings = [dataMan retrieveSettings];
_largerStickLR1 = settings.largerStickLR1;
-
+ _oscTapExlusionAreaSizeFactor = settings.oscTapExlusionAreaSize.floatValue;
_iPad = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad);
_controlArea = CGRectMake(0, 0, _view.frame.size.width, _view.frame.size.height);
@@ -1230,51 +1231,51 @@ static float L3_Y;
CGFloat dzHalfWidth;
CGFloat dzHalfHeight;
- CGFloat dzSizeFactor = 3.0; // the factor to resize the DZ
-
-
+ // CGFloat _oscTapExlusionAreaSizeFactor; // the factor to resize the DZ
+ // NSLog(@"_AreaSize: %f", _oscTapExlusionAreaSizeFactor);
+
if ([key isEqualToString:@"l2Button"]) {
- dzHalfWidth = _l2Button.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _l2Button.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _l2Button.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _l2Button.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"l1Button"]) { // set the same DZ size as other buttons
- dzHalfWidth = _l2Button.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _l2Button.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _l2Button.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _l2Button.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"dPad"]) {
dzHalfWidth = _leftButton.bounds.size.width * 2; // dPad specially handled
dzHalfHeight = _upButton.bounds.size.height * 2;
} else if ([key isEqualToString:@"selectButton"]) {
- dzHalfWidth = _selectButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _selectButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _selectButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _selectButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"leftStickBackground"]) {
- dzHalfWidth = _leftStickBackground.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _leftStickBackground.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _l2Button.bounds.size.width * 0.7 * _oscTapExlusionAreaSizeFactor; // stick backgound size is too big to be the base line
+ dzHalfHeight = _l2Button.bounds.size.height * 0.7 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"rightStickBackground"]) {
- dzHalfWidth = _rightStickBackground.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _rightStickBackground.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _l2Button.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _l2Button.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"r2Button"]) {
- dzHalfWidth = _r2Button.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _r2Button.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _r2Button.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _r2Button.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"r1Button"]) { // set the same DZ size as other buttons
- dzHalfWidth = _l2Button.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _l2Button.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _l2Button.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _l2Button.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"aButton"]) {
- dzHalfWidth = _aButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _aButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _aButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _aButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"bButton"]) {
- dzHalfWidth = _bButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _bButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _bButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _bButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"xButton"]) {
- dzHalfWidth = _xButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _xButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _xButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _xButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"yButton"]) {
- dzHalfWidth = _yButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _yButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _yButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _yButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else if ([key isEqualToString:@"startButton"]) {
- dzHalfWidth = _startButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _startButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _startButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _startButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
} else {
- dzHalfWidth = _aButton.bounds.size.width * 0.5 * dzSizeFactor;
- dzHalfHeight = _aButton.bounds.size.height * 0.5 * dzSizeFactor;
+ dzHalfWidth = _aButton.bounds.size.width * 0.5 * _oscTapExlusionAreaSizeFactor;
+ dzHalfHeight = _aButton.bounds.size.height * 0.5 * _oscTapExlusionAreaSizeFactor;
}
if (xOffset < dzHalfWidth && yOffset < dzHalfHeight) {
diff --git a/Limelight/Input/StreamView.m b/Limelight/Input/StreamView.m
index 52c0ca35..5ac2bbf1 100644
--- a/Limelight/Input/StreamView.m
+++ b/Limelight/Input/StreamView.m
@@ -904,6 +904,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5;
{
short translationDeltaY = ((currentScrollTranslation.y - lastScrollTranslation.y) / self.bounds.size.height) * translationMultiplier;
+ if(settings.reverseMouseWheelDirection) translationDeltaY = - translationDeltaY;
if (translationDeltaY != 0) {
LiSendHighResScrollEvent(translationDeltaY);
lastScrollTranslation = currentScrollTranslation;
@@ -939,7 +940,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5;
{
short translationDeltaY = currentScrollTranslation.y - lastScrollTranslation.y;
- translationDeltaY = -translationDeltaY;
+ if(settings.reverseMouseWheelDirection) translationDeltaY = - translationDeltaY;
if (translationDeltaY != 0) {
LiSendScrollEvent(translationDeltaY > 0 ? 1 : -1);
}
diff --git a/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents b/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents
index 7712b0b8..1203873a 100644
--- a/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents
+++ b/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents
@@ -37,9 +37,11 @@
+
+
diff --git a/Limelight/Localization/Localizable.xcstrings b/Limelight/Localization/Localizable.xcstrings
index f1559a14..4e2b453e 100644
--- a/Limelight/Localization/Localizable.xcstrings
+++ b/Limelight/Localization/Localizable.xcstrings
@@ -2257,6 +2257,29 @@
}
}
},
+ "Tap Exclusion Area Size for Custom OSC: %d%%" : {
+ "extractionState" : "manual",
+ "localizations" : {
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "自定义屏显手柄触控无响应区面积: %d%%"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "自定义屏显手柄触控无响应区面积: %d%%"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "自定义屏显手柄触控无响应区面积: %d%%"
+ }
+ }
+ }
+ },
"Test Network" : {
"extractionState" : "manual",
"localizations" : {
diff --git a/Limelight/ViewControllers/SettingsViewController.h b/Limelight/ViewControllers/SettingsViewController.h
index dce7860c..d7c22125 100644
--- a/Limelight/ViewControllers/SettingsViewController.h
+++ b/Limelight/ViewControllers/SettingsViewController.h
@@ -31,6 +31,7 @@
@property (strong, nonatomic) IBOutlet UISegmentedControl *hdrSelector;
@property (strong, nonatomic) IBOutlet UISegmentedControl *framePacingSelector;
@property (strong, nonatomic) IBOutlet UISegmentedControl *btMouseSelector;
+@property (strong, nonatomic) IBOutlet UISegmentedControl *reverseMouseWheelDirectionSelector;
@property (strong, nonatomic) IBOutlet UISegmentedControl *statsOverlaySelector;
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UILabel *keyboardToggleFingerNumLabel;
@@ -38,6 +39,9 @@
@property (strong, nonatomic) IBOutlet UISegmentedControl *liftStreamViewForKeyboardSelector;
@property (strong, nonatomic) IBOutlet UISegmentedControl *showKeyboardToolbarSelector;
@property (strong, nonatomic) IBOutlet UISegmentedControl *slideToSettingsScreenEdgeSelector;
+
+@property (strong, nonatomic) IBOutlet UILabel *oscTapExlusionAreaSizeLabel;
+@property (strong, nonatomic) IBOutlet UISlider *oscTapExlusionAreaSizeSlider;
@property (strong, nonatomic) IBOutlet UILabel *slideToSettingsScreenEdgeUILabel;
@property (strong, nonatomic) IBOutlet UISegmentedControl *cmdToolScreenEdgeSelector;
@property (strong, nonatomic) IBOutlet UILabel *slideToSettingsDistanceUILabel;
diff --git a/Limelight/ViewControllers/SettingsViewController.m b/Limelight/ViewControllers/SettingsViewController.m
index 13aabfc3..9529ae88 100644
--- a/Limelight/ViewControllers/SettingsViewController.m
+++ b/Limelight/ViewControllers/SettingsViewController.m
@@ -451,6 +451,9 @@ BOOL isCustomResolution(CGSize res) {
// showkeyboard toolbar setting
[self.showKeyboardToolbarSelector setSelectedSegmentIndex:currentSettings.showKeyboardToolbar ? 1 : 0];// Load old setting
+ // reverse mouse wheel direction setting
+ [self.reverseMouseWheelDirectionSelector setSelectedSegmentIndex:currentSettings.reverseMouseWheelDirection ? 1 : 0];// Load old setting
+
// slide to menu settings
[self.slideToSettingsScreenEdgeSelector setSelectedSegmentIndex:[self getSelectorIndexFromScreenEdge:(uint32_t)currentSettings.slideToSettingsScreenEdge.integerValue]];
// Load old setting
@@ -496,6 +499,12 @@ BOOL isCustomResolution(CGSize res) {
[self onscreenControlChanged];
[self.largerStickLR1Selector setSelectedSegmentIndex:currentSettings.largerStickLR1 ? 1 : 0]; // load old setting of largerStickLR1
+ // tap exclusion area size for custom OSC, must be loaded before touchMode & osc selector.
+ [self.oscTapExlusionAreaSizeSlider setValue:currentSettings.oscTapExlusionAreaSize.floatValue * 100 animated:YES]; // Load old setting.
+ [self.oscTapExlusionAreaSizeSlider addTarget:self action:@selector(oscTapExlusionAreaSizeSliderMoved) forControlEvents:(UIControlEventValueChanged)]; // Update label display when slider is being moved.
+ [self oscTapExlusionAreaSizeSliderMoved];
+
+
// [self.touchModeSelector setSelectedSegmentIndex:currentSettings.absoluteTouchMode ? 1 : 0];
// this part will enable/disable oscSelector & the largerStickLR1 selector
[self.touchModeSelector setSelectedSegmentIndex:currentSettings.touchMode.intValue]; //Load old touchMode setting
@@ -603,6 +612,7 @@ BOOL isCustomResolution(CGSize res) {
bool customOscEnabled = [self isOnScreenControllerOrButtonEnabled] && [self.onscreenControlSelector selectedSegmentIndex] == OnScreenControlsLevelCustom;
// [self widget:self.keyboardToggleFingerNumSlider setEnabled:!customOscEnabled];
+ [self widget:self.oscTapExlusionAreaSizeSlider setEnabled:customOscEnabled];
if(customOscEnabled && !justEnteredSettingsViewDoNotOpenOscLayoutTool) {
// [self.keyboardToggleFingerNumSlider setValue:3.0];
// [self keyboardToggleFingerNumSliderMoved];
@@ -692,7 +702,8 @@ BOOL isCustomResolution(CGSize res) {
[self widget:self.pointerVelocityModeDividerSlider setEnabled:isNativeTouch]; // pointer velocity scaling works only in native touch mode.
[self widget:self.touchPointerVelocityFactorSlider setEnabled:isNativeTouch]; // pointer velocity scaling works only in native touch mode.
[self widget:self.mousePointerVelocityFactorSlider setEnabled:[self.touchModeSelector selectedSegmentIndex] == RELATIVE_TOUCH]; // mouse velocity scaling works only in relative touch mode.
-
+ [self widget:self.oscTapExlusionAreaSizeSlider setEnabled:customOscEnabled];
+
// number of touches required to toggle keyboard will be fixed to 3 when OSC is enabled.
// [self widget:self.keyboardToggleFingerNumSlider setEnabled: !customOscEnabled]; // cancel OSC limitation for regular native touch,
// when CustomOSC is enabled:
@@ -896,6 +907,10 @@ BOOL isCustomResolution(CGSize res) {
[self.resolutionDisplayView addSubview:label2];
}
+- (void) oscTapExlusionAreaSizeSliderMoved{
+ [self.oscTapExlusionAreaSizeLabel setText:[LocalizationHelper localizedStringForKey:@"Tap Exclusion Area Size for Custom OSC: %d%%", (uint16_t)self.oscTapExlusionAreaSizeSlider.value]];
+}
+
- (void) keyboardToggleFingerNumSliderMoved{
// bool oscEnabled = [self isOnScreenControllerOrButtonEnabled];
bool customOscEnabled = [self isOnScreenControllerOrButtonEnabled] && [self.onscreenControlSelector selectedSegmentIndex] == OnScreenControlsLevelCustom;
@@ -997,6 +1012,9 @@ BOOL isCustomResolution(CGSize res) {
CGFloat pointerVelocityModeDivider = (CGFloat)(uint8_t)self.pointerVelocityModeDividerSlider.value/100;
CGFloat touchPointerVelocityFactor =(CGFloat)(uint16_t)[self map_velocFactorDisplay_fromSliderValue:self.touchPointerVelocityFactorSlider.value]/100;
CGFloat mousePointerVelocityFactor =(CGFloat)(uint16_t)self.mousePointerVelocityFactorSlider.value/100;
+ CGFloat oscTapExlusionAreaSize =(CGFloat)(uint16_t)self.oscTapExlusionAreaSizeSlider.value/100;
+
+ BOOL reverseMouseWheelDirection = [self.reverseMouseWheelDirectionSelector selectedSegmentIndex] == 1;
BOOL largerStickLR1 = [self.largerStickLR1Selector selectedSegmentIndex] == 1;
BOOL liftStreamViewForKeyboard = [self.liftStreamViewForKeyboardSelector selectedSegmentIndex] == 1;
BOOL showKeyboardToolbar = [self.showKeyboardToolbarSelector selectedSegmentIndex] == 1;
@@ -1025,6 +1043,8 @@ BOOL isCustomResolution(CGSize res) {
pointerVelocityModeDivider:pointerVelocityModeDivider
touchPointerVelocityFactor:touchPointerVelocityFactor
mousePointerVelocityFactor:mousePointerVelocityFactor
+ oscTapExlusionAreaSize:oscTapExlusionAreaSize
+ reverseMouseWheelDirection:reverseMouseWheelDirection
largerStickLR1:largerStickLR1
liftStreamViewForKeyboard:liftStreamViewForKeyboard
showKeyboardToolbar:showKeyboardToolbar
diff --git a/Limelight/mul.lproj/iPad.xcstrings b/Limelight/mul.lproj/iPad.xcstrings
index 1032f0e6..cd862ccb 100644
--- a/Limelight/mul.lproj/iPad.xcstrings
+++ b/Limelight/mul.lproj/iPad.xcstrings
@@ -31,6 +31,66 @@
}
}
},
+ "2Jx-qH-E3Y.segmentTitles[0]" : {
+ "comment" : "Class = \"UISegmentedControl\"; 2Jx-qH-E3Y.segmentTitles[0] = \"No\"; ObjectID = \"2Jx-qH-E3Y\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "No"
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ }
+ }
+ },
+ "2Jx-qH-E3Y.segmentTitles[1]" : {
+ "comment" : "Class = \"UISegmentedControl\"; 2Jx-qH-E3Y.segmentTitles[1] = \"Yes\"; ObjectID = \"2Jx-qH-E3Y\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Yes"
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ }
+ }
+ },
"6w5-Md-NpV.text" : {
"comment" : "Class = \"UILabel\"; text = \"Preferred Codec \"; ObjectID = \"6w5-Md-NpV\";",
"extractionState" : "extracted_with_value",
@@ -859,6 +919,48 @@
}
}
},
+ "FJv-HJ-UYJ.text" : {
+ "comment" : "Class = \"UILabel\"; text = \"Tap Exclusion Area Size for Custom OSC: 200% \"; ObjectID = \"FJv-HJ-UYJ\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Tap Exclusion Area Size for Custom OSC: 200% "
+ }
+ }
+ }
+ },
+ "FwK-oG-vuz.text" : {
+ "comment" : "Class = \"UILabel\"; text = \"Reverse Wheel Direction for Physical Mouse \"; ObjectID = \"FwK-oG-vuz\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Reverse Wheel Direction for Physical Mouse "
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ }
+ }
+ },
"fXq-oD-MrL.text" : {
"comment" : "Class = \"UILabel\"; text = \"Play Audio on PC \"; ObjectID = \"fXq-oD-MrL\";",
"extractionState" : "extracted_with_value",
@@ -2080,6 +2182,12 @@
"state" : "translated",
"value" : "返回串流"
}
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
}
}
},
diff --git a/Limelight/mul.lproj/iPhone.xcstrings b/Limelight/mul.lproj/iPhone.xcstrings
index c435007d..ec7663ec 100644
--- a/Limelight/mul.lproj/iPhone.xcstrings
+++ b/Limelight/mul.lproj/iPhone.xcstrings
@@ -859,6 +859,18 @@
}
}
},
+ "Dfl-gL-00M.text" : {
+ "comment" : "Class = \"UILabel\"; text = \"Tap Exclusion Area Size for Custom OSC: 200% \"; ObjectID = \"Dfl-gL-00M\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Tap Exclusion Area Size for Custom OSC: 200% "
+ }
+ }
+ }
+ },
"dLF-qJ-2nY.segmentTitles[0]" : {
"comment" : "Class = \"UISegmentedControl\"; dLF-qJ-2nY.segmentTitles[0] = \"30 FPS\"; ObjectID = \"dLF-qJ-2nY\";",
"extractionState" : "extracted_with_value",
@@ -1429,6 +1441,66 @@
}
}
},
+ "p2k-7u-PDc.segmentTitles[0]" : {
+ "comment" : "Class = \"UISegmentedControl\"; p2k-7u-PDc.segmentTitles[0] = \"No\"; ObjectID = \"p2k-7u-PDc\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "No"
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "关闭"
+ }
+ }
+ }
+ },
+ "p2k-7u-PDc.segmentTitles[1]" : {
+ "comment" : "Class = \"UISegmentedControl\"; p2k-7u-PDc.segmentTitles[1] = \"Yes\"; ObjectID = \"p2k-7u-PDc\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Yes"
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "启用"
+ }
+ }
+ }
+ },
"P8R-nu-8Ln.segmentTitles[0]" : {
"comment" : "Class = \"UISegmentedControl\"; P8R-nu-8Ln.segmentTitles[0] = \"No\"; ObjectID = \"P8R-nu-8Ln\";",
"extractionState" : "extracted_with_value",
@@ -1867,6 +1939,36 @@
}
}
},
+ "svh-LO-bTr.text" : {
+ "comment" : "Class = \"UILabel\"; text = \"Reverse Wheel Direction for Physical Mouse \"; ObjectID = \"svh-LO-bTr\";",
+ "extractionState" : "extracted_with_value",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "Reverse Wheel Direction for Physical Mouse "
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "反转物理鼠标滚轮方向"
+ }
+ }
+ }
+ },
"T6M-nz-TW0.text" : {
"comment" : "Class = \"UILabel\"; text = \"Play Audio on PC \"; ObjectID = \"T6M-nz-TW0\";",
"extractionState" : "extracted_with_value",