add simplified statsOverlay, stage manager version

This commit is contained in:
TrueZhuangjia
2025-02-01 19:29:45 +08:00
parent ac44efbbbe
commit edcb9cf275
19 changed files with 165 additions and 83 deletions
@@ -452,7 +452,7 @@ BOOL isCustomResolution(CGSize res) {
[self.hdrSelector setSelectedSegmentIndex:currentSettings.enableHdr ? 1 : 0];
}
[self.statsOverlaySelector setSelectedSegmentIndex:currentSettings.statsOverlay ? 1 : 0];
[self.statsOverlaySelector setSelectedSegmentIndex:currentSettings.statsOverlayLevel.intValue];
[self.btMouseSelector setSelectedSegmentIndex:currentSettings.btMouseSupport ? 1 : 0];
[self.optimizeSettingsSelector setSelectedSegmentIndex:currentSettings.optimizeGames ? 1 : 0];
[self.framePacingSelector setSelectedSegmentIndex:currentSettings.useFramePacing ? 1 : 0];
@@ -1063,7 +1063,8 @@ BOOL isCustomResolution(CGSize res) {
BOOL useFramePacing = [self.framePacingSelector selectedSegmentIndex] == 1;
// BOOL absoluteTouchMode = [self.touchModeSelector selectedSegmentIndex] == 1;
NSInteger touchMode = [self.touchModeSelector selectedSegmentIndex];
BOOL statsOverlay = [self.statsOverlaySelector selectedSegmentIndex] == 1;
NSInteger statsOverlayLevel = [self.statsOverlaySelector selectedSegmentIndex];
BOOL statsOverlayEnabled = statsOverlayLevel != 0;
BOOL enableHdr = [self.hdrSelector selectedSegmentIndex] == 1;
BOOL unlockDisplayOrientation = [self.unlockDisplayOrientationSelector selectedSegmentIndex] == 1;
NSInteger resolutionSelected = [self.resolutionSelector selectedSegmentIndex];
@@ -1097,7 +1098,8 @@ BOOL isCustomResolution(CGSize res) {
btMouseSupport:btMouseSupport
// absoluteTouchMode:absoluteTouchMode
touchMode:touchMode
statsOverlay:statsOverlay
statsOverlayLevel:statsOverlayLevel
statsOverlayEnabled:statsOverlayEnabled
unlockDisplayOrientation:unlockDisplayOrientation
resolutionSelected:resolutionSelected
externalDisplayMode:externalDisplayMode
@@ -47,6 +47,7 @@
UITapGestureRecognizer *_menuDoubleTapGestureRecognizer;
UITapGestureRecognizer *_playPauseTapGestureRecognizer;
UITextView *_overlayView;
uint16_t overlayLevel;
UILabel *_stageLabel;
UILabel *_tipLabel;
UIActivityIndicatorView *_spinner;
@@ -160,6 +161,7 @@
}
_settings = [[[DataManager alloc] init] getSettings]; //StreamFrameViewController retrieve the settings here.
overlayLevel = _settings.statsOverlayLevel.intValue;
[self configOscLayoutTool];
[self configSwipeGestures];
[self configZoomGestureAndAddStreamView];
@@ -180,7 +182,7 @@
target:self
selector:@selector(updateStatsOverlay)
userInfo:nil
repeats:_settings.statsOverlay];
repeats:_settings.statsOverlayEnabled];
NSLog(@"frameview gestures: %d", (uint32_t)[self.view.gestureRecognizers count]);
NSLog(@"streamview gestures: %d", (uint32_t)[_streamView.gestureRecognizers count]);
@@ -447,13 +449,13 @@
#endif
- (void)updateStatsOverlay {
if(!_settings.statsOverlay){
if(!_settings.statsOverlayEnabled){
[_overlayView removeFromSuperview];
return; // add this for realtime streamview reconfig
}
else [self.view addSubview:_overlayView]; // don't know why but this is necessary for reactivating overlay.
NSString* overlayText = [self->_streamMan getStatsOverlayText];
NSString* overlayText = [self->_streamMan getStatsOverlayText:overlayLevel];
dispatch_async(dispatch_get_main_queue(), ^{
[self updateOverlayText:overlayText];
});
@@ -479,7 +481,13 @@
#if TARGET_OS_TV
[_overlayView setFont:[UIFont systemFontOfSize:24]];
#else
[_overlayView setFont:[UIFont systemFontOfSize:12]];
if (@available(iOS 13.0, *)) {
[_overlayView setFont:[UIFont monospacedSystemFontOfSize:12 weight:UIFontWeightRegular]];
} else {
[_overlayView setFont:[UIFont systemFontOfSize:12]];// Fallback on earlier versions
}
//[_overlayView setFont:[UIFont fontWithName:@"Menlo" size:12]];
#endif
[_overlayView setAlpha:0.5];
[self.view addSubview:_overlayView];
@@ -675,7 +683,7 @@
[self->_controllerSupport connectionEstablished];
if (self->_settings.statsOverlay) {
if (self->_settings.statsOverlayEnabled) {
self->_statsUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(updateStatsOverlay)
@@ -976,7 +984,7 @@
DataManager* dataMan = [[DataManager alloc] init];
Settings *currentSettings = [dataMan retrieveSettings];
currentSettings.statsOverlay = !currentSettings.statsOverlay;
currentSettings.statsOverlayEnabled = !currentSettings.statsOverlayEnabled;
[dataMan saveData];
[self reConfigStreamViewRealtime];