From 0bac5f1ae935b48a3ef0ee3d32cee07c166449c4 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Mon, 24 Jun 2024 23:15:55 +0800 Subject: [PATCH] CustomOSC first integration --- .../LayoutOnScreenControls.h | 0 .../LayoutOnScreenControls.m | 0 .../OSCProfile.h | 0 .../OSCProfile.m | 0 .../OSCProfilesManager.h | 0 .../OSCProfilesManager.m | 0 .../OnScreenButtonState.h | 0 .../OnScreenButtonState.m | 0 Limelight/Input/OnScreenControls.m | 36 +-- .../Cells/ProfileTableViewCell.h | 0 .../Cells/ProfileTableViewCell.m | 0 .../Cells/ProfileTableViewCell.xib | 0 .../LayoutOnScreenControlsViewController.h | 0 .../LayoutOnScreenControlsViewController.m | 0 .../OSCProfilesTableViewController.h | 0 .../OSCProfilesTableViewController.m | 0 .../ToolBarContainerView.h | 0 .../ToolBarContainerView.m | 0 .../ViewControllers/SettingsViewController.h | 3 +- .../ViewControllers/SettingsViewController.m | 54 +++++ Limelight/iPad.storyboard | 214 +++++++++++++++- Limelight/iPhone.storyboard | 228 +++++++++++++++++- Moonlight.xcodeproj/project.pbxproj | 98 +++++++- 23 files changed, 600 insertions(+), 33 deletions(-) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/LayoutOnScreenControls.h (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/LayoutOnScreenControls.m (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OSCProfile.h (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OSCProfile.m (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OSCProfilesManager.h (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OSCProfilesManager.m (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OnScreenButtonState.h (100%) rename Limelight/Input/{Custom OnScreen Controls => CustomOSC}/OnScreenButtonState.m (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/Cells/ProfileTableViewCell.h (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/Cells/ProfileTableViewCell.m (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/Cells/ProfileTableViewCell.xib (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/LayoutOnScreenControlsViewController.h (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/LayoutOnScreenControlsViewController.m (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/OSCProfilesTableViewController.h (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/OSCProfilesTableViewController.m (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/ToolBarContainerView.h (100%) rename Limelight/ViewControllers/{Custom OnScreen Controls => CustomOSCViewControl}/ToolBarContainerView.m (100%) diff --git a/Limelight/Input/Custom OnScreen Controls/LayoutOnScreenControls.h b/Limelight/Input/CustomOSC/LayoutOnScreenControls.h similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/LayoutOnScreenControls.h rename to Limelight/Input/CustomOSC/LayoutOnScreenControls.h diff --git a/Limelight/Input/Custom OnScreen Controls/LayoutOnScreenControls.m b/Limelight/Input/CustomOSC/LayoutOnScreenControls.m similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/LayoutOnScreenControls.m rename to Limelight/Input/CustomOSC/LayoutOnScreenControls.m diff --git a/Limelight/Input/Custom OnScreen Controls/OSCProfile.h b/Limelight/Input/CustomOSC/OSCProfile.h similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OSCProfile.h rename to Limelight/Input/CustomOSC/OSCProfile.h diff --git a/Limelight/Input/Custom OnScreen Controls/OSCProfile.m b/Limelight/Input/CustomOSC/OSCProfile.m similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OSCProfile.m rename to Limelight/Input/CustomOSC/OSCProfile.m diff --git a/Limelight/Input/Custom OnScreen Controls/OSCProfilesManager.h b/Limelight/Input/CustomOSC/OSCProfilesManager.h similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OSCProfilesManager.h rename to Limelight/Input/CustomOSC/OSCProfilesManager.h diff --git a/Limelight/Input/Custom OnScreen Controls/OSCProfilesManager.m b/Limelight/Input/CustomOSC/OSCProfilesManager.m similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OSCProfilesManager.m rename to Limelight/Input/CustomOSC/OSCProfilesManager.m diff --git a/Limelight/Input/Custom OnScreen Controls/OnScreenButtonState.h b/Limelight/Input/CustomOSC/OnScreenButtonState.h similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OnScreenButtonState.h rename to Limelight/Input/CustomOSC/OnScreenButtonState.h diff --git a/Limelight/Input/Custom OnScreen Controls/OnScreenButtonState.m b/Limelight/Input/CustomOSC/OnScreenButtonState.m similarity index 100% rename from Limelight/Input/Custom OnScreen Controls/OnScreenButtonState.m rename to Limelight/Input/CustomOSC/OnScreenButtonState.m diff --git a/Limelight/Input/OnScreenControls.m b/Limelight/Input/OnScreenControls.m index 12631c0e..cdfcdefb 100644 --- a/Limelight/Input/OnScreenControls.m +++ b/Limelight/Input/OnScreenControls.m @@ -802,63 +802,63 @@ static float L3_Y; for (UITouch* touch in touches) { CGPoint touchLocation = [touch locationInView:_view]; - if (_aButton.superlayer != nil && [_aButton.presentationLayer hitTest:touchLocation]) { + if ([_aButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:A_FLAG]; _aTouch = touch; updated = true; - } else if (_bButton.superlayer != nil && [_bButton.presentationLayer hitTest:touchLocation]) { + } else if ([_bButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:B_FLAG]; _bTouch = touch; updated = true; - } else if (_xButton.superlayer != nil && [_xButton.presentationLayer hitTest:touchLocation]) { + } else if ([_xButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:X_FLAG]; _xTouch = touch; updated = true; - } else if (_yButton.superlayer != nil && [_yButton.presentationLayer hitTest:touchLocation]) { + } else if ([_yButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:Y_FLAG]; _yTouch = touch; updated = true; - } else if (_upButton.superlayer != nil && [_upButton.presentationLayer hitTest:touchLocation]) { + } else if ([_upButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:UP_FLAG]; _dpadTouch = touch; updated = true; - } else if (_downButton.superlayer != nil && [_downButton.presentationLayer hitTest:touchLocation]) { + } else if ([_downButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:DOWN_FLAG]; _dpadTouch = touch; updated = true; - } else if (_leftButton.superlayer != nil && [_leftButton.presentationLayer hitTest:touchLocation]) { + } else if ([_leftButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:LEFT_FLAG]; _dpadTouch = touch; updated = true; - } else if (_rightButton.superlayer != nil && [_rightButton.presentationLayer hitTest:touchLocation]) { + } else if ([_rightButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:RIGHT_FLAG]; _dpadTouch = touch; updated = true; - } else if (_startButton.superlayer != nil && [_startButton.presentationLayer hitTest:touchLocation]) { + } else if ([_startButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:PLAY_FLAG]; _startTouch = touch; updated = true; - } else if (_selectButton.superlayer != nil && [_selectButton.presentationLayer hitTest:touchLocation]) { + } else if ([_selectButton.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:BACK_FLAG]; _selectTouch = touch; updated = true; - } else if (_l1Button.superlayer != nil && [_l1Button.presentationLayer hitTest:touchLocation]) { + } else if ([_l1Button.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:LB_FLAG]; _l1Touch = touch; updated = true; - } else if (_r1Button.superlayer != nil && [_r1Button.presentationLayer hitTest:touchLocation]) { + } else if ([_r1Button.presentationLayer hitTest:touchLocation]) { [_controllerSupport setButtonFlag:_controller flags:RB_FLAG]; _r1Touch = touch; updated = true; - } else if (_l2Button.superlayer != nil && [_l2Button.presentationLayer hitTest:touchLocation]) { + } else if ([_l2Button.presentationLayer hitTest:touchLocation]) { [_controllerSupport updateLeftTrigger:_controller left:0xFF]; _l2Touch = touch; updated = true; - } else if (_r2Button.superlayer != nil && [_r2Button.presentationLayer hitTest:touchLocation]) { + } else if ([_r2Button.presentationLayer hitTest:touchLocation]) { [_controllerSupport updateRightTrigger:_controller right:0xFF]; _r2Touch = touch; updated = true; - } else if (_l3Button.superlayer != nil && [_l3Button.presentationLayer hitTest:touchLocation]) { + } else if ([_l3Button.presentationLayer hitTest:touchLocation]) { if (l3Set) { [_controllerSupport clearButtonFlag:_controller flags:LS_CLK_FLAG]; _l3Button.borderWidth = 0.0f; @@ -869,7 +869,7 @@ static float L3_Y; l3Set = !l3Set; _l3Touch = touch; updated = true; - } else if (_r3Button.superlayer != nil && [_r3Button.presentationLayer hitTest:touchLocation]) { + } else if ([_r3Button.presentationLayer hitTest:touchLocation]) { if (r3Set) { [_controllerSupport clearButtonFlag:_controller flags:RS_CLK_FLAG]; _r3Button.borderWidth = 0.0f; @@ -880,7 +880,7 @@ static float L3_Y; r3Set = !r3Set; _r3Touch = touch; updated = true; - } else if (_leftStick.superlayer != nil && [_leftStick.presentationLayer hitTest:touchLocation]) { + } else if ([_leftStick.presentationLayer hitTest:touchLocation]) { if (l3TouchStart != nil) { // Find elapsed time and convert to milliseconds // Use (-) modifier to conversion since receiver is earlier than now @@ -892,7 +892,7 @@ static float L3_Y; } _lsTouch = touch; stickTouch = true; - } else if (_rightStick.superlayer != nil && [_rightStick.presentationLayer hitTest:touchLocation]) { + } else if ([_rightStick.presentationLayer hitTest:touchLocation]) { if (r3TouchStart != nil) { // Find elapsed time and convert to milliseconds // Use (-) modifier to conversion since receiver is earlier than now diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.h b/Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.h similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.h rename to Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.h diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.m b/Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.m similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.m rename to Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.m diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.xib b/Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.xib similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/Cells/ProfileTableViewCell.xib rename to Limelight/ViewControllers/CustomOSCViewControl/Cells/ProfileTableViewCell.xib diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/LayoutOnScreenControlsViewController.h b/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.h similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/LayoutOnScreenControlsViewController.h rename to Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.h diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/LayoutOnScreenControlsViewController.m b/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/LayoutOnScreenControlsViewController.m rename to Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/OSCProfilesTableViewController.h b/Limelight/ViewControllers/CustomOSCViewControl/OSCProfilesTableViewController.h similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/OSCProfilesTableViewController.h rename to Limelight/ViewControllers/CustomOSCViewControl/OSCProfilesTableViewController.h diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/OSCProfilesTableViewController.m b/Limelight/ViewControllers/CustomOSCViewControl/OSCProfilesTableViewController.m similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/OSCProfilesTableViewController.m rename to Limelight/ViewControllers/CustomOSCViewControl/OSCProfilesTableViewController.m diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/ToolBarContainerView.h b/Limelight/ViewControllers/CustomOSCViewControl/ToolBarContainerView.h similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/ToolBarContainerView.h rename to Limelight/ViewControllers/CustomOSCViewControl/ToolBarContainerView.h diff --git a/Limelight/ViewControllers/Custom OnScreen Controls/ToolBarContainerView.m b/Limelight/ViewControllers/CustomOSCViewControl/ToolBarContainerView.m similarity index 100% rename from Limelight/ViewControllers/Custom OnScreen Controls/ToolBarContainerView.m rename to Limelight/ViewControllers/CustomOSCViewControl/ToolBarContainerView.m diff --git a/Limelight/ViewControllers/SettingsViewController.h b/Limelight/ViewControllers/SettingsViewController.h index 805782e5..a93f0fb2 100644 --- a/Limelight/ViewControllers/SettingsViewController.h +++ b/Limelight/ViewControllers/SettingsViewController.h @@ -8,6 +8,7 @@ #import #import "AppDelegate.h" +#import "CustomOSCViewControl/LayoutOnScreenControlsViewController.h" @interface SettingsViewController : UIViewController @property (strong, nonatomic) IBOutlet UILabel *bitrateLabel; @@ -40,7 +41,7 @@ @property (strong, nonatomic) IBOutlet UILabel *touchPointerVelocityFactorUILabel; @property (strong, nonatomic) IBOutlet UISlider *mousePointerVelocityFactorSlider; @property (strong, nonatomic) IBOutlet UILabel *mousePointerVelocityFactorUILabel; - +@property (strong, nonatomic) LayoutOnScreenControlsViewController *layoutOnScreenControlsVC; #pragma clang diagnostic push diff --git a/Limelight/ViewControllers/SettingsViewController.m b/Limelight/ViewControllers/SettingsViewController.m index 9869f806..ab511079 100644 --- a/Limelight/ViewControllers/SettingsViewController.m +++ b/Limelight/ViewControllers/SettingsViewController.m @@ -315,8 +315,62 @@ BOOL isCustomResolution(CGSize res) { [self.mousePointerVelocityFactorSlider setEnabled: currentSettings.touchMode.intValue == RELATIVE_TOUCH_MODE]; // mouse velocity scaling works only in relative touch mode. + //CustomOSC stuff + [self.onscreenControlSelector addTarget:self action:@selector(onscreenControlChanged) forControlEvents:UIControlEventValueChanged]; + /* sets a reference to the correct 'LayoutOnScreenControlsViewController' depending on whether the user is on an iPhone or iPad */ + self.layoutOnScreenControlsVC = [[LayoutOnScreenControlsViewController alloc] init]; + BOOL isIPhone = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone); + if (isIPhone) { + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; + self.layoutOnScreenControlsVC = [storyboard instantiateViewControllerWithIdentifier:@"LayoutOnScreenControlsViewController"]; + } + else { + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil]; + self.layoutOnScreenControlsVC = [storyboard instantiateViewControllerWithIdentifier:@"LayoutOnScreenControlsViewController"]; + self.layoutOnScreenControlsVC.modalPresentationStyle = UIModalPresentationFullScreen; + } + /* + if(currentSettings.touchMode.intValue == RELATIVE_TOUCH_MODE && currentSettings.onscreenControls.intValue == 4){ // load old settings + if (self.layoutOnScreenControlsVC.isBeingPresented == NO) { + [self presentViewController:self.layoutOnScreenControlsVC animated:YES completion:nil]; + } + }*/ } +- (void)onscreenControlChanged{ + + LayoutOnScreenControlsViewController *vc = [[LayoutOnScreenControlsViewController alloc] init]; + BOOL isIPhone = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone); + if (isIPhone) { + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; + vc = [storyboard instantiateViewControllerWithIdentifier:@"LayoutOnScreenControlsViewController"]; + } + else { + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil]; + vc = [storyboard instantiateViewControllerWithIdentifier:@"LayoutOnScreenControlsViewController"]; + vc.modalPresentationStyle = UIModalPresentationFullScreen; + } + + switch ([self.onscreenControlSelector selectedSegmentIndex]) { + case 0: + break; + case 1: + break; + case 2: + break; + case 3: + break; + case 4: + if (self.layoutOnScreenControlsVC.isBeingPresented == NO) { + [self presentViewController:self.layoutOnScreenControlsVC animated:YES completion:nil]; + } + break; + } + + +} + + - (void) pointerVelocityModeDividerSliderMoved { [self.pointerVelocityModeDividerUILabel setText:[NSString stringWithFormat:@"Touch Pointer Velocity: Scaled on %d%% of Right Screen", 100 - (uint8_t)self.pointerVelocityModeDividerSlider.value]]; } diff --git a/Limelight/iPad.storyboard b/Limelight/iPad.storyboard index 253b0d45..cf1dcbe2 100644 --- a/Limelight/iPad.storyboard +++ b/Limelight/iPad.storyboard @@ -207,13 +207,14 @@ - + + @@ -567,11 +568,222 @@ ICAgICAgICAgICAgICA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Limelight/iPhone.storyboard b/Limelight/iPhone.storyboard index cb129131..907eca3c 100644 --- a/Limelight/iPhone.storyboard +++ b/Limelight/iPhone.storyboard @@ -83,7 +83,7 @@ - + - + + @@ -459,7 +460,7 @@ ICAgICAgICAgICAgIA - + @@ -495,7 +496,7 @@ ICAgICAgICAgICAgIA - + @@ -565,12 +566,229 @@ ICAgICAgICAgICAgIA - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Moonlight.xcodeproj/project.pbxproj b/Moonlight.xcodeproj/project.pbxproj index 8f92d276..ea5917d0 100644 --- a/Moonlight.xcodeproj/project.pbxproj +++ b/Moonlight.xcodeproj/project.pbxproj @@ -10,6 +10,17 @@ 693B3A9B218638CD00982F7B /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 693B3A9A218638CD00982F7B /* Settings.bundle */; }; 840751B32BF49C050096B657 /* CustomTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */; }; 840751B42BF49C050096B657 /* CustomTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */; }; + 8425C3002C298E0D00CD5E34 /* iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8425C2FE2C298E0D00CD5E34 /* iPhone.storyboard */; }; + 8425C3012C298E0D00CD5E34 /* iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8425C2FF2C298E0D00CD5E34 /* iPad.storyboard */; }; + 84351B0E2C29ACCB00A77989 /* LayoutOnScreenControls.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B072C29ACCA00A77989 /* LayoutOnScreenControls.m */; }; + 84351B0F2C29ACCB00A77989 /* OnScreenButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B092C29ACCA00A77989 /* OnScreenButtonState.m */; }; + 84351B102C29ACCB00A77989 /* OSCProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B0A2C29ACCA00A77989 /* OSCProfile.m */; }; + 84351B112C29ACCB00A77989 /* OSCProfilesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B0B2C29ACCB00A77989 /* OSCProfilesManager.m */; }; + 84351B2B2C29AD6100A77989 /* LayoutOnScreenControlsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B252C29AD6000A77989 /* LayoutOnScreenControlsViewController.m */; }; + 84351B2C2C29AD6100A77989 /* OSCProfilesTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B272C29AD6000A77989 /* OSCProfilesTableViewController.m */; }; + 84351B2D2C29AD6100A77989 /* ToolBarContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B292C29AD6000A77989 /* ToolBarContainerView.m */; }; + 84351B5C2C29ADBE00A77989 /* ProfileTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 84351B592C29ADBE00A77989 /* ProfileTableViewCell.m */; }; + 84351B5D2C29ADBE00A77989 /* ProfileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84351B5B2C29ADBE00A77989 /* ProfileTableViewCell.xib */; }; 843CC7F02C1E757D00BBC475 /* NativeTouchPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 843CC7EF2C1E757D00BBC475 /* NativeTouchPointer.m */; }; 843CC7F12C1E757D00BBC475 /* NativeTouchPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 843CC7EF2C1E757D00BBC475 /* NativeTouchPointer.m */; }; 843CC7F62C1E7A1700BBC475 /* NativeTouchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 843CC7F52C1E7A1700BBC475 /* NativeTouchHandler.m */; }; @@ -105,8 +116,6 @@ FB290D0419B2C406004C83CF /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FB290D0319B2C406004C83CF /* AppDelegate.m */; }; FB290D0719B2C406004C83CF /* Limelight.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = FB290D0519B2C406004C83CF /* Limelight.xcdatamodeld */; }; FB290D0919B2C406004C83CF /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FB290D0819B2C406004C83CF /* Images.xcassets */; }; - FB290E7919B37D81004C83CF /* iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FB290E7819B37D81004C83CF /* iPad.storyboard */; }; - FB290E7B19B38036004C83CF /* iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FB290E7A19B38036004C83CF /* iPhone.storyboard */; }; FB4678ED1A50C40900377732 /* OnScreenControls.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4678EC1A50C40900377732 /* OnScreenControls.m */; }; FB4678FA1A55FFAD00377732 /* DiscoveryManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4678F91A55FFAD00377732 /* DiscoveryManager.m */; }; FB4678FF1A565DAC00377732 /* WakeOnLanManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4678FE1A565DAC00377732 /* WakeOnLanManager.m */; }; @@ -181,6 +190,25 @@ 693B3A9A218638CD00982F7B /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; 840751B12BF49B5A0096B657 /* CustomTapGestureRecognizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomTapGestureRecognizer.h; sourceTree = ""; }; 840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomTapGestureRecognizer.m; sourceTree = ""; }; + 8425C2FE2C298E0D00CD5E34 /* iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPhone.storyboard; sourceTree = ""; }; + 8425C2FF2C298E0D00CD5E34 /* iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPad.storyboard; sourceTree = ""; }; + 84351B062C29ACCA00A77989 /* OnScreenButtonState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OnScreenButtonState.h; sourceTree = ""; }; + 84351B072C29ACCA00A77989 /* LayoutOnScreenControls.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LayoutOnScreenControls.m; sourceTree = ""; }; + 84351B082C29ACCA00A77989 /* OSCProfilesManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSCProfilesManager.h; sourceTree = ""; }; + 84351B092C29ACCA00A77989 /* OnScreenButtonState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OnScreenButtonState.m; sourceTree = ""; }; + 84351B0A2C29ACCA00A77989 /* OSCProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OSCProfile.m; sourceTree = ""; }; + 84351B0B2C29ACCB00A77989 /* OSCProfilesManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OSCProfilesManager.m; sourceTree = ""; }; + 84351B0C2C29ACCB00A77989 /* LayoutOnScreenControls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayoutOnScreenControls.h; sourceTree = ""; }; + 84351B0D2C29ACCB00A77989 /* OSCProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSCProfile.h; sourceTree = ""; }; + 84351B252C29AD6000A77989 /* LayoutOnScreenControlsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LayoutOnScreenControlsViewController.m; sourceTree = ""; }; + 84351B262C29AD6000A77989 /* OSCProfilesTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSCProfilesTableViewController.h; sourceTree = ""; }; + 84351B272C29AD6000A77989 /* OSCProfilesTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OSCProfilesTableViewController.m; sourceTree = ""; }; + 84351B282C29AD6000A77989 /* LayoutOnScreenControlsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayoutOnScreenControlsViewController.h; sourceTree = ""; }; + 84351B292C29AD6000A77989 /* ToolBarContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ToolBarContainerView.m; sourceTree = ""; }; + 84351B2A2C29AD6000A77989 /* ToolBarContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ToolBarContainerView.h; sourceTree = ""; }; + 84351B592C29ADBE00A77989 /* ProfileTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProfileTableViewCell.m; sourceTree = ""; }; + 84351B5A2C29ADBE00A77989 /* ProfileTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProfileTableViewCell.h; sourceTree = ""; }; + 84351B5B2C29ADBE00A77989 /* ProfileTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ProfileTableViewCell.xib; sourceTree = ""; }; 843CC7EE2C1E757D00BBC475 /* NativeTouchPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeTouchPointer.h; sourceTree = ""; }; 843CC7EF2C1E757D00BBC475 /* NativeTouchPointer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeTouchPointer.m; sourceTree = ""; }; 843CC7F42C1E778000BBC475 /* NativeTouchHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NativeTouchHandler.h; sourceTree = ""; }; @@ -257,8 +285,6 @@ FB290D0319B2C406004C83CF /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; FB290D0619B2C406004C83CF /* Limelight.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Limelight.xcdatamodel; sourceTree = ""; }; FB290D0819B2C406004C83CF /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - FB290E7819B37D81004C83CF /* iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPad.storyboard; sourceTree = SOURCE_ROOT; }; - FB290E7A19B38036004C83CF /* iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPhone.storyboard; sourceTree = SOURCE_ROOT; }; FB4678EB1A50C40900377732 /* OnScreenControls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OnScreenControls.h; sourceTree = ""; }; FB4678EC1A50C40900377732 /* OnScreenControls.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OnScreenControls.m; sourceTree = ""; }; FB4678F21A51BDCB00377732 /* Limelight 0.3.0.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Limelight 0.3.0.xcdatamodel"; sourceTree = ""; }; @@ -458,6 +484,45 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 84351B052C29ACAF00A77989 /* CustomOSC */ = { + isa = PBXGroup; + children = ( + 84351B0C2C29ACCB00A77989 /* LayoutOnScreenControls.h */, + 84351B072C29ACCA00A77989 /* LayoutOnScreenControls.m */, + 84351B062C29ACCA00A77989 /* OnScreenButtonState.h */, + 84351B092C29ACCA00A77989 /* OnScreenButtonState.m */, + 84351B0D2C29ACCB00A77989 /* OSCProfile.h */, + 84351B0A2C29ACCA00A77989 /* OSCProfile.m */, + 84351B082C29ACCA00A77989 /* OSCProfilesManager.h */, + 84351B0B2C29ACCB00A77989 /* OSCProfilesManager.m */, + ); + path = CustomOSC; + sourceTree = ""; + }; + 84351B242C29AD2E00A77989 /* CustomOSCViewControl */ = { + isa = PBXGroup; + children = ( + 84351B2E2C29AD6600A77989 /* Cells */, + 84351B282C29AD6000A77989 /* LayoutOnScreenControlsViewController.h */, + 84351B252C29AD6000A77989 /* LayoutOnScreenControlsViewController.m */, + 84351B262C29AD6000A77989 /* OSCProfilesTableViewController.h */, + 84351B272C29AD6000A77989 /* OSCProfilesTableViewController.m */, + 84351B2A2C29AD6000A77989 /* ToolBarContainerView.h */, + 84351B292C29AD6000A77989 /* ToolBarContainerView.m */, + ); + path = CustomOSCViewControl; + sourceTree = ""; + }; + 84351B2E2C29AD6600A77989 /* Cells */ = { + isa = PBXGroup; + children = ( + 84351B5A2C29ADBE00A77989 /* ProfileTableViewCell.h */, + 84351B592C29ADBE00A77989 /* ProfileTableViewCell.m */, + 84351B5B2C29ADBE00A77989 /* ProfileTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; 9896219423D15C2900211983 /* X1Kit */ = { isa = PBXGroup; children = ( @@ -539,6 +604,8 @@ FB290CF919B2C406004C83CF /* Moonlight */ = { isa = PBXGroup; children = ( + 8425C2FF2C298E0D00CD5E34 /* iPad.storyboard */, + 8425C2FE2C298E0D00CD5E34 /* iPhone.storyboard */, D4746EEA1CBC740C006FB401 /* Moonlight-Bridging-Header.h */, FB89460419F646E200339C8A /* Crypto */, FB89460919F646E200339C8A /* Input */, @@ -554,8 +621,6 @@ FBDE86DF19F7A837001C18A8 /* UIComputerView.m */, FBDE86E419F82297001C18A8 /* UIAppView.h */, FBDE86E519F82297001C18A8 /* UIAppView.m */, - FB290E7819B37D81004C83CF /* iPad.storyboard */, - FB290E7A19B38036004C83CF /* iPhone.storyboard */, FB89463719F6473800339C8A /* Launch Screen.xib */, FB290D0819B2C406004C83CF /* Images.xcassets */, FB290D0519B2C406004C83CF /* Limelight.xcdatamodeld */, @@ -595,6 +660,7 @@ FB89460919F646E200339C8A /* Input */ = { isa = PBXGroup; children = ( + 84351B052C29ACAF00A77989 /* CustomOSC */, FB89460A19F646E200339C8A /* ControllerSupport.h */, FB89460B19F646E200339C8A /* ControllerSupport.m */, FB89460C19F646E200339C8A /* StreamView.h */, @@ -669,6 +735,7 @@ FB89462319F646E200339C8A /* ViewControllers */ = { isa = PBXGroup; children = ( + 84351B242C29AD2E00A77989 /* CustomOSCViewControl */, 84591A502BE1625E006AAB10 /* CustomEdgeSwipeGestureRecognizer.m */, 84591A4F2BE16240006AAB10 /* CustomEdgeSwipeGestureRecognizer.h */, FBD3495119FF36FB002D2A60 /* SWRevealViewController.h */, @@ -1018,11 +1085,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - FB290E7919B37D81004C83CF /* iPad.storyboard in Resources */, FB290CFE19B2C406004C83CF /* InfoPlist.strings in Resources */, - FB290E7B19B38036004C83CF /* iPhone.storyboard in Resources */, FB290D0919B2C406004C83CF /* Images.xcassets in Resources */, FB89463819F6473800339C8A /* Launch Screen.xib in Resources */, + 8425C3012C298E0D00CD5E34 /* iPad.storyboard in Resources */, + 8425C3002C298E0D00CD5E34 /* iPhone.storyboard in Resources */, + 84351B5D2C29ADBE00A77989 /* ProfileTableViewCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1105,6 +1173,7 @@ FB4678FF1A565DAC00377732 /* WakeOnLanManager.m in Sources */, FB53E1431BE5DC4400CD6ECE /* IdManager.m in Sources */, 9897B6A1221260EF00966419 /* Controller.m in Sources */, + 84351B112C29ACCB00A77989 /* OSCProfilesManager.m in Sources */, FB89462919F646E200339C8A /* mkcert.c in Sources */, FB9AFD281A7C84ED00872C98 /* HttpResponse.m in Sources */, FBDE86E019F7A837001C18A8 /* UIComputerView.m in Sources */, @@ -1115,6 +1184,7 @@ 843CC7F02C1E757D00BBC475 /* NativeTouchPointer.m in Sources */, FB89462C19F646E200339C8A /* HttpManager.m in Sources */, FB89462D19F646E200339C8A /* MDNSManager.m in Sources */, + 84351B0F2C29ACCB00A77989 /* OnScreenButtonState.m in Sources */, FB89462B19F646E200339C8A /* StreamView.m in Sources */, 840751B32BF49C050096B657 /* CustomTapGestureRecognizer.m in Sources */, FB4678FA1A55FFAD00377732 /* DiscoveryManager.m in Sources */, @@ -1125,6 +1195,8 @@ FB89463619F646E200339C8A /* StreamFrameViewController.m in Sources */, 9827E7A32514366900F25707 /* HapticContext.m in Sources */, 9832D1361BBCD5C50036EF48 /* TemporaryApp.m in Sources */, + 84351B102C29ACCB00A77989 /* OSCProfile.m in Sources */, + 84351B2C2C29AD6100A77989 /* OSCProfilesTableViewController.m in Sources */, 98D585701C0ED0E800F6CC00 /* TemporarySettings.m in Sources */, FB89462819F646E200339C8A /* CryptoManager.m in Sources */, DC1F5A07206436B20037755F /* ConnectionHelper.m in Sources */, @@ -1135,12 +1207,16 @@ 9896219723D15C7000211983 /* X1Kit.swift in Sources */, FBD3494319FC9C04002D2A60 /* AppAssetManager.m in Sources */, FB6549561A57907E001C8F39 /* DiscoveryWorker.m in Sources */, + 84351B0E2C29ACCB00A77989 /* LayoutOnScreenControls.m in Sources */, FB89462A19F646E200339C8A /* ControllerSupport.m in Sources */, FB9AFD3D1A7E111600872C98 /* AppAssetResponse.m in Sources */, FBD349621A0089F6002D2A60 /* DataManager.m in Sources */, FB4A23B81A9D3637004D2EF2 /* LoadingFrameViewController.m in Sources */, FB9AFD3A1A7E05CE00872C98 /* ServerInfoResponse.m in Sources */, + 84351B2B2C29AD6100A77989 /* LayoutOnScreenControlsViewController.m in Sources */, + 84351B5C2C29ADBE00A77989 /* ProfileTableViewCell.m in Sources */, FB89463119F646E200339C8A /* StreamManager.m in Sources */, + 84351B2D2C29AD6100A77989 /* ToolBarContainerView.m in Sources */, 988FCD41293B091B003050E2 /* KeyboardInputField.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1416,6 +1492,9 @@ "$(PROJECT_DIR)/moonlight-common/moonlight-common-c/src", "$(SDKROOT)/usr/include/libxml2/**", "$(PROJECT_DIR)/libs/**", + "$(PROJECT_DIR)/Limelight/Input/CustomOSC", + "$(PROJECT_DIR)/Limelight/ViewControllers/CustomOSCViewControl", + "$(PROJECT_DIR)/Limelight/ViewControllers/CustomOSCViewControl/Cells", ); INFOPLIST_FILE = "Limelight/Limelight-Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = MoonlightZWM; @@ -1467,6 +1546,9 @@ "$(PROJECT_DIR)/moonlight-common/moonlight-common-c/src", "$(SDKROOT)/usr/include/libxml2/**", "$(PROJECT_DIR)/libs/**", + "$(PROJECT_DIR)/Limelight/Input/CustomOSC", + "$(PROJECT_DIR)/Limelight/ViewControllers/CustomOSCViewControl", + "$(PROJECT_DIR)/Limelight/ViewControllers/CustomOSCViewControl/Cells", ); INFOPLIST_FILE = "Limelight/Limelight-Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = MoonlightZWM;