diff --git a/VoidLink/Network/HttpManager.h b/VoidLink/Network/HttpManager.h index 4d23846d..8fea1bc2 100644 --- a/VoidLink/Network/HttpManager.h +++ b/VoidLink/Network/HttpManager.h @@ -29,6 +29,7 @@ - (NSURLRequest*) newLaunchOrResumeRequest:(NSString*)verb config:(StreamConfiguration*)config; - (NSURLRequest*) newQuitAppRequest; - (NSURLRequest*) newAppAssetRequestWithAppId:(NSString*)appId; +- (NSURLRequest*) newBirateRequest:(NSInteger)bitrateKbps forClient:(NSString* )clientName; - (void) executeRequestSynchronously:(HttpRequest*)request; @end diff --git a/VoidLink/Network/HttpManager.m b/VoidLink/Network/HttpManager.m index 39bd354a..037331e0 100644 --- a/VoidLink/Network/HttpManager.m +++ b/VoidLink/Network/HttpManager.m @@ -231,6 +231,7 @@ } NSString* urlString = [NSString stringWithFormat:@"%@/applist?uniqueid=%@", _baseHTTPSURL, _uniqueId]; + NSLog(@"urlString: %@", urlString); return [self createRequestFromString:urlString timeout:NORMAL_TIMEOUT_SEC]; } @@ -292,9 +293,22 @@ } NSString* urlString = [NSString stringWithFormat:@"%@/cancel?uniqueid=%@", _baseHTTPSURL, _uniqueId]; + NSLog(@"urlString print: %@", urlString); return [self createRequestFromString:urlString timeout:LONG_TIMEOUT_SEC]; } +- (NSURLRequest*)newBirateRequest:(NSInteger)bitrateKbps forClient:(NSString* )clientName { + if (![self ensureHttpsUrlPopulated:NO]) { + return nil; + } + + NSString* urlString = [NSString stringWithFormat:@"%@/bitrate?clientname=%@&bitrate=%@&uniqueid=%@", _baseHTTPSURL, clientName, [NSString stringWithFormat:@"%ld", (long)bitrateKbps], _uniqueId]; + + NSLog(@"bitrate urlString print: %@", urlString); + return [self createRequestFromString:urlString timeout:LONG_TIMEOUT_SEC]; +} + + - (NSURLRequest*) newAppAssetRequestWithAppId:(NSString *)appId { if (![self ensureHttpsUrlPopulated:NO]) { return nil; diff --git a/VoidLink/ViewControllers/MainFrameViewController.h b/VoidLink/ViewControllers/MainFrameViewController.h index 8ce44440..8e8038f0 100644 --- a/VoidLink/ViewControllers/MainFrameViewController.h +++ b/VoidLink/ViewControllers/MainFrameViewController.h @@ -34,6 +34,7 @@ - (void)reloadStreamConfig; - (bool)isIPhonePortrait; - (void)quitRunningApp; +- (NSInteger)requestForBitrate:(NSInteger)bitrateKbps; #endif - (void)fillResolutionTable:(CGSize*)resolutionTable externalDisplayMode:(NSInteger)externalDisplayMode; diff --git a/VoidLink/ViewControllers/MainFrameViewController.m b/VoidLink/ViewControllers/MainFrameViewController.m index 2992aae3..37a5fa19 100644 --- a/VoidLink/ViewControllers/MainFrameViewController.m +++ b/VoidLink/ViewControllers/MainFrameViewController.m @@ -915,6 +915,15 @@ static NSMutableSet* hostList; #endif } +- (NSInteger)requestForBitrate:(NSInteger)bitrateKbps{ + HttpManager* hMan = [[HttpManager alloc] initWithHost:launchedApp.host]; + HttpResponse* bitrateResponse = [[HttpResponse alloc] init]; + HttpRequest* bitrateRequest = [HttpRequest requestForResponse: bitrateResponse withUrlRequest:[hMan newBirateRequest:bitrateKbps forClient:@"unknown"]]; + [hMan executeRequestSynchronously:bitrateRequest]; + NSLog(@"bitrate request status code: %ld", (long)bitrateResponse.statusCode); + return bitrateResponse.statusCode; +} + - (HttpResponse* )requestToQuitApp:(TemporaryApp* )app{ HttpManager* hMan = [[HttpManager alloc] initWithHost:app.host]; HttpResponse* quitResponse = [[HttpResponse alloc] init]; @@ -1168,7 +1177,7 @@ static NSMutableSet* hostList; [streamFrameViewController setUserInteractionEnabledForStreamView:!_settingsExpandedInStreamView || position == FrontViewPositionLeft]; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.resolutionStack]; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.fpsStack]; - [settingsViewController widget:settingsViewController.bitrateSlider setEnabled:!self.settingsExpandedInStreamView]; + // [settingsViewController widget:settingsViewController.bitrateSlider setEnabled:!self.settingsExpandedInStreamView]; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.optimizeGamesStack]; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.audioOnPcStack]; [settingsViewController.codecSelector setEnabled:!_settingsExpandedInStreamView]; diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m index 49f3d2d3..27ecf171 100644 --- a/VoidLink/ViewControllers/SettingsViewController.m +++ b/VoidLink/ViewControllers/SettingsViewController.m @@ -292,6 +292,15 @@ BOOL isCustomResolution(int resolutionSelected) { selector:@selector(deviceOrientationDidChange:) // handle orientation change since i made portrait mode available name:UIDeviceOrientationDidChangeNotification object:nil]; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + if(self.mainFrameViewController.settingsExpandedInStreamView){ + NSInteger responseCode = [self.mainFrameViewController requestForBitrate:self->_bitrate]; + dispatch_async(dispatch_get_main_queue(), ^{ + [self widget:self.bitrateSlider setEnabled:responseCode == 200]; + }); + } + }); } - (void)viewDidAppear:(BOOL)animated{ @@ -1785,6 +1794,7 @@ BOOL isCustomResolution(int resolutionSelected) { [touchAndControlSection updateViewForFoldState]; } + - (void) updateBitrate { NSInteger fps = [self getChosenFrameRate]; NSInteger width = [self getChosenStreamWidth]; @@ -2111,6 +2121,11 @@ BOOL isCustomResolution(int resolutionSelected) { } - (void) saveSettings { + + if(self.mainFrameViewController.settingsExpandedInStreamView){ + [self.mainFrameViewController requestForBitrate:(uint32_t)_bitrate]; + } + DataManager* dataMan = [[DataManager alloc] init]; Settings* currentSettings = [dataMan retrieveSettings];