diff --git a/Limelight/Database/DataManager.h b/Limelight/Database/DataManager.h index 3f845318..ca029755 100644 --- a/Limelight/Database/DataManager.h +++ b/Limelight/Database/DataManager.h @@ -20,6 +20,7 @@ audioConfig:(NSInteger)audioConfig onscreenControls:(NSInteger)onscreenControls keyboardToggleFingers:(NSInteger)keyboardToggleFingers + swipeToExitDistance:(CGFloat)swipeToExitDistance optimizeGames:(BOOL)optimizeGames multiController:(BOOL)multiController swapABXYButtons:(BOOL)swapABXYButtons diff --git a/Limelight/Database/DataManager.m b/Limelight/Database/DataManager.m index 1d724637..2ec6ebd1 100644 --- a/Limelight/Database/DataManager.m +++ b/Limelight/Database/DataManager.m @@ -59,6 +59,7 @@ audioConfig:(NSInteger)audioConfig onscreenControls:(NSInteger)onscreenControls keyboardToggleFingers:(NSInteger)keyboardToggleFingers + swipeToExitDistance:(CGFloat)swipeToExitDistance optimizeGames:(BOOL)optimizeGames multiController:(BOOL)multiController swapABXYButtons:(BOOL)swapABXYButtons @@ -79,6 +80,7 @@ settingsToSave.audioConfig = [NSNumber numberWithInteger:audioConfig]; settingsToSave.onscreenControls = [NSNumber numberWithInteger:onscreenControls]; settingsToSave.keyboardToggleFingers = [NSNumber numberWithInteger:(uint16_t)keyboardToggleFingers]; + settingsToSave.swipeToExitDistance = [NSNumber numberWithFloat:swipeToExitDistance]; settingsToSave.optimizeGames = optimizeGames; settingsToSave.multiController = multiController; settingsToSave.swapABXYButtons = swapABXYButtons; diff --git a/Limelight/Database/TemporarySettings.h b/Limelight/Database/TemporarySettings.h index 0b83b41f..495e6904 100644 --- a/Limelight/Database/TemporarySettings.h +++ b/Limelight/Database/TemporarySettings.h @@ -19,6 +19,7 @@ @property (nonatomic, retain) NSNumber * audioConfig; @property (nonatomic, retain) NSNumber * onscreenControls; @property (nonatomic, retain) NSNumber * keyboardToggleFingers; +@property (nonatomic, retain) NSNumber * swipeToExitDistance; @property (nonatomic, retain) NSString * uniqueId; @property (nonatomic) enum { CODEC_PREF_AUTO, diff --git a/Limelight/Database/TemporarySettings.m b/Limelight/Database/TemporarySettings.m index fa3a3165..f15adc86 100644 --- a/Limelight/Database/TemporarySettings.m +++ b/Limelight/Database/TemporarySettings.m @@ -86,6 +86,7 @@ self.absoluteTouchMode = settings.absoluteTouchMode; self.statsOverlay = settings.statsOverlay; self.keyboardToggleFingers = settings.keyboardToggleFingers; + self.swipeToExitDistance = settings.swipeToExitDistance; #endif self.uniqueId = settings.uniqueId; diff --git a/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents b/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents index 88e94d3d..a28cfaf5 100644 --- a/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents +++ b/Limelight/Limelight.xcdatamodeld/Moonlight v1.10.xcdatamodel/contents @@ -37,6 +37,7 @@ + diff --git a/Limelight/ViewControllers/SettingsViewController.h b/Limelight/ViewControllers/SettingsViewController.h index aa4c6ea3..5ae11bd1 100644 --- a/Limelight/ViewControllers/SettingsViewController.h +++ b/Limelight/ViewControllers/SettingsViewController.h @@ -29,6 +29,8 @@ @property (strong, nonatomic) IBOutlet UIScrollView *scrollView; @property (strong, nonatomic) IBOutlet UILabel *keyboardToggleFingerNumLabel; @property (strong, nonatomic) IBOutlet UISlider *keyboardToggleFingerNumSlider; +@property (strong, nonatomic) IBOutlet UILabel *swipeToExitDistanceUILabel; +@property (strong, nonatomic) IBOutlet UISlider *swipeToExitDistanceSlider; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunguarded-availability" diff --git a/Limelight/ViewControllers/SettingsViewController.m b/Limelight/ViewControllers/SettingsViewController.m index 71d20633..4d6dc926 100644 --- a/Limelight/ViewControllers/SettingsViewController.m +++ b/Limelight/ViewControllers/SettingsViewController.m @@ -263,9 +263,13 @@ BOOL isCustomResolution(CGSize res) { [self.bitrateSlider addTarget:self action:@selector(bitrateSliderMoved) forControlEvents:UIControlEventValueChanged]; [self updateBitrateText]; [self updateResolutionDisplayViewText]; - [self.keyboardToggleFingerNumSlider setValue:(CGFloat)currentSettings.keyboardToggleFingers.intValue animated:YES]; // Load old setting. old setting was converted to uint32_t before saving. - [self.keyboardToggleFingerNumLabel setText:[NSString stringWithFormat:@"Fingers to Tap-Toggle Local Keyboard: %@", @((uint16_t)self.keyboardToggleFingerNumSlider.value)]]; // Initiate label display + [self.keyboardToggleFingerNumSlider setValue:(CGFloat)currentSettings.keyboardToggleFingers.intValue animated:YES]; // Load old setting. old setting was converted to uint16_t before saving. + [self.keyboardToggleFingerNumLabel setText:[NSString stringWithFormat:@"Fingers to Tap-Toggle Local Keyboard: %d", (uint16_t)self.keyboardToggleFingerNumSlider.value]]; // Initiate label display [self.keyboardToggleFingerNumSlider addTarget:self action:@selector(keyboardToggleFingerNumSliderMoved) forControlEvents:(UIControlEventValueChanged)]; // Update label display when slider is being moved. + + [self.swipeToExitDistanceSlider setValue:(CGFloat)currentSettings.swipeToExitDistance.floatValue animated:YES]; // Load old setting. + [self.swipeToExitDistanceUILabel setText:[NSString stringWithFormat:@"Swipe & Exit Distance: %.2f * screen-width", self.swipeToExitDistanceSlider.value]]; // Initiate label display + [self.swipeToExitDistanceSlider addTarget:self action:@selector(swipeToExitDistanceSliderMoved) forControlEvents:(UIControlEventValueChanged)]; // Update label display when slider is being moved. } - (void) touchModeChanged { @@ -460,9 +464,12 @@ BOOL isCustomResolution(CGSize res) { } - (void) keyboardToggleFingerNumSliderMoved{ - [self.keyboardToggleFingerNumLabel setText:[NSString stringWithFormat:@"Fingers to Tap-Toggle Local Keyboard: %@", @((uint8_t)self.keyboardToggleFingerNumSlider.value)]]; + [self.keyboardToggleFingerNumLabel setText:[NSString stringWithFormat:@"Fingers to Tap-Toggle Local Keyboard: %d", (uint8_t)self.keyboardToggleFingerNumSlider.value]]; } +- (void) swipeToExitDistanceSliderMoved{ + [self.swipeToExitDistanceUILabel setText:[NSString stringWithFormat:@"Swipe & Exit Distance: %.2f * screen-width", self.swipeToExitDistanceSlider.value]]; +} - (void) bitrateSliderMoved { assert(self.bitrateSlider.value < (sizeof(bitrateTable) / sizeof(*bitrateTable))); @@ -538,6 +545,7 @@ BOOL isCustomResolution(CGSize res) { NSInteger onscreenControls = [self.onscreenControlSelector selectedSegmentIndex]; NSInteger keyboardToggleFingers = (uint16_t)self.keyboardToggleFingerNumSlider.value; // NSLog(@"saveSettings keyboardToggleFingers %d", (uint16_t)keyboardToggleFingers); + CGFloat swipeToExitDistance = self.swipeToExitDistanceSlider.value; BOOL optimizeGames = [self.optimizeSettingsSelector selectedSegmentIndex] == 1; BOOL multiController = [self.multiControllerSelector selectedSegmentIndex] == 1; BOOL swapABXYButtons = [self.swapABXYButtonsSelector selectedSegmentIndex] == 1; @@ -555,6 +563,7 @@ BOOL isCustomResolution(CGSize res) { audioConfig:2 // Stereo onscreenControls:onscreenControls keyboardToggleFingers:keyboardToggleFingers + swipeToExitDistance:swipeToExitDistance optimizeGames:optimizeGames multiController:multiController swapABXYButtons:swapABXYButtons diff --git a/Limelight/ViewControllers/StreamFrameViewController.m b/Limelight/ViewControllers/StreamFrameViewController.m index 7998f956..95ce6c65 100644 --- a/Limelight/ViewControllers/StreamFrameViewController.m +++ b/Limelight/ViewControllers/StreamFrameViewController.m @@ -86,7 +86,7 @@ [UIApplication sharedApplication].idleTimerDisabled = YES; - _settings = [[[DataManager alloc] init] getSettings]; + _settings = [[[DataManager alloc] init] getSettings]; //StreamFrameViewController retrieve the settings here. _stageLabel = [[UILabel alloc] init]; [_stageLabel setUserInteractionEnabled:NO]; @@ -134,7 +134,7 @@ #else _exitSwipeRecognizer = [[CustomEdgeSwipeGestureRecognizer alloc] initWithTarget:self action:@selector(edgeSwiped)]; _exitSwipeRecognizer.edges = UIRectEdgeLeft; - _exitSwipeRecognizer.normalizedThresholdDistance = 0.5f; + _exitSwipeRecognizer.normalizedThresholdDistance = _settings.swipeToExitDistance.floatValue; _exitSwipeRecognizer.delaysTouchesBegan = NO; _exitSwipeRecognizer.delaysTouchesEnded = NO; [self.view addGestureRecognizer:_exitSwipeRecognizer]; diff --git a/iPad.storyboard b/iPad.storyboard index 224584ec..4412cd67 100644 --- a/iPad.storyboard +++ b/iPad.storyboard @@ -160,14 +160,14 @@ - + @@ -177,14 +177,14 @@ - + @@ -194,21 +194,21 @@ - + @@ -218,14 +218,14 @@ - + @@ -237,14 +237,14 @@ - + @@ -254,14 +254,14 @@ - + @@ -271,14 +271,14 @@ - + @@ -288,14 +288,14 @@ - + @@ -305,7 +305,7 @@ - + @@ -327,6 +327,19 @@ + + + + + + @@ -349,6 +362,8 @@ + +