feat: allow toggling graphs in stream with shortcut
This commit is contained in:
1 parent
7bafa39960
commit
6682e64519
2 files changed
+42
-27
No files matched your search
@@ -40,7 +40,7 @@
|
|||||||
@property (nonatomic, strong) ImGuiRenderer *imguiView;
|
@property (nonatomic, strong) ImGuiRenderer *imguiView;
|
||||||
|
|
||||||
-(void)updatePreferredDisplayMode:(BOOL)streamActive;
|
-(void)updatePreferredDisplayMode:(BOOL)streamActive;
|
||||||
-(void)reConfigStreamViewRealtime;
|
-(void)reConfigStreamViewRealtime:(BOOL)reloadSettings;
|
||||||
- (void)setUserInteractionEnabledForStreamView:(bool)enabled;
|
- (void)setUserInteractionEnabledForStreamView:(bool)enabled;
|
||||||
- (bool)shallDisableGyroHotSwitch;
|
- (bool)shallDisableGyroHotSwitch;
|
||||||
|
|
||||||
|
|||||||
@@ -317,8 +317,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)reConfigStreamViewRealtime {
|
||||||
|
[self reConfigStreamViewRealtimeAndReloadSettings:YES];
|
||||||
|
}
|
||||||
|
|
||||||
// key implementation of reconfiguring streamview after realtime setting menu is closed.
|
// key implementation of reconfiguring streamview after realtime setting menu is closed.
|
||||||
- (void)reConfigStreamViewRealtime{
|
- (void)reConfigStreamViewRealtimeAndReloadSettings:(BOOL)reloadSettings{
|
||||||
//[self.view removeGestureRecognizer:]
|
//[self.view removeGestureRecognizer:]
|
||||||
//first, remove all gesture recognizers:
|
//first, remove all gesture recognizers:
|
||||||
for (UIGestureRecognizer *recognizer in _streamView.gestureRecognizers) {
|
for (UIGestureRecognizer *recognizer in _streamView.gestureRecognizers) {
|
||||||
@@ -328,7 +332,9 @@
|
|||||||
[self.view removeGestureRecognizer:recognizer];
|
[self.view removeGestureRecognizer:recognizer];
|
||||||
}
|
}
|
||||||
|
|
||||||
_settings = [[[DataManager alloc] init] getSettings]; //StreamFrameViewController retrieve the settings here.
|
if (reloadSettings) {
|
||||||
|
_settings = [[[DataManager alloc] init] getSettings]; //StreamFrameViewController retrieve the settings here.
|
||||||
|
}
|
||||||
[self configOscLayoutTool];
|
[self configOscLayoutTool];
|
||||||
[self updateToolboxSpecialEntries];
|
[self updateToolboxSpecialEntries];
|
||||||
[self configSwipeGestures];
|
[self configSwipeGestures];
|
||||||
@@ -348,13 +354,34 @@
|
|||||||
[self reloadAirPlayConfig];
|
[self reloadAirPlayConfig];
|
||||||
[self mousePresenceChanged];
|
[self mousePresenceChanged];
|
||||||
|
|
||||||
//reconfig statsOverlay
|
// Invalidate the old timer to prevent duplicates
|
||||||
self->_statsUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f
|
if (self->_statsUpdateTimer) {
|
||||||
target:self
|
[self->_statsUpdateTimer invalidate];
|
||||||
selector:@selector(updateStatsOverlay)
|
self->_statsUpdateTimer = nil;
|
||||||
userInfo:nil
|
}
|
||||||
repeats:_settings.statsOverlayEnabled];
|
// Re-schedule the timer only if the overlay is enabled
|
||||||
|
if (_settings.statsOverlayEnabled) {
|
||||||
|
self->_statsUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f
|
||||||
|
target:self
|
||||||
|
selector:@selector(updateStatsOverlay)
|
||||||
|
userInfo:nil
|
||||||
|
repeats:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re-create the ImGui view to properly apply the 'enableGraphs' setting
|
||||||
|
if (self.imguiView && self.imguiView.mtkView) {
|
||||||
|
[self.imguiView stop];
|
||||||
|
[self.imguiView.mtkView removeFromSuperview];
|
||||||
|
self.imguiView = nil;
|
||||||
|
}
|
||||||
|
self.imguiView = [[ImGuiRenderer alloc] initWithFrame:self.view.bounds
|
||||||
|
streamFps:[_settings.framerate intValue]
|
||||||
|
enableGraphs:_settings.enableGraphs
|
||||||
|
graphOpacity:[_settings.graphOpacity intValue]];
|
||||||
|
self.imguiView.mtkView.userInteractionEnabled = NO;
|
||||||
|
[self.view addSubview:self.imguiView.mtkView];
|
||||||
|
|
||||||
|
// Ensure views are layered correctly
|
||||||
if (self.metalViewController && self.metalViewController.view.superview) {
|
if (self.metalViewController && self.metalViewController.view.superview) {
|
||||||
[self.view bringSubviewToFront:self.metalViewController.view];
|
[self.view bringSubviewToFront:self.metalViewController.view];
|
||||||
}
|
}
|
||||||
@@ -643,16 +670,6 @@
|
|||||||
[self.view addSubview:self.metalViewController.view];
|
[self.view addSubview:self.metalViewController.view];
|
||||||
[self.view bringSubviewToFront:self.metalViewController.view];
|
[self.view bringSubviewToFront:self.metalViewController.view];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make a MetalKit view for ImGui
|
|
||||||
self.imguiView = [[ImGuiRenderer alloc] initWithFrame:self.view.bounds
|
|
||||||
streamFps:[_settings.framerate intValue]
|
|
||||||
enableGraphs:_settings.enableGraphs
|
|
||||||
graphOpacity:[_settings.graphOpacity intValue]];
|
|
||||||
self.imguiView.mtkView.userInteractionEnabled = NO;
|
|
||||||
[self.view addSubview:self.imguiView.mtkView];
|
|
||||||
[self.view bringSubviewToFront:self.imguiView.mtkView];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)keyboardWillShow:(NSNotification *)notification{
|
- (void)keyboardWillShow:(NSNotification *)notification{
|
||||||
@@ -787,8 +804,7 @@
|
|||||||
[_overlayView setFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium]];
|
[_overlayView setFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium]];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
int opacity = MAX([_settings.graphOpacity intValue], 60);
|
[_overlayView setAlpha:(float)[_settings.graphOpacity intValue]/ 100.0];
|
||||||
[_overlayView setAlpha:(float)opacity / 100.0];
|
|
||||||
[self.view addSubview:_overlayView];
|
[self.view addSubview:_overlayView];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1311,13 +1327,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)toggleStatsOverlay{
|
- (void)toggleStatsOverlay{
|
||||||
DataManager* dataMan = [[DataManager alloc] init];
|
// Toggle the values on the current in-memory settings object for a temporary effect
|
||||||
Settings *currentSettings = [dataMan retrieveSettings];
|
_settings.statsOverlayEnabled = !_settings.statsOverlayEnabled;
|
||||||
|
_settings.enableGraphs = _settings.statsOverlayEnabled;
|
||||||
|
|
||||||
currentSettings.statsOverlayEnabled = !currentSettings.statsOverlayEnabled;
|
// Reconfigure the UI using the current in-memory settings, without reloading from disk
|
||||||
|
[self reConfigStreamViewRealtimeAndReloadSettings:NO];
|
||||||
[dataMan saveData];
|
|
||||||
[self reConfigStreamViewRealtime];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)toggleMouseCapture{
|
- (void)toggleMouseCapture{
|
||||||
|
|||||||
Reference in new issue
Block a user