Skip to content

Commit ca25cab

Browse files
committed
Remove farm view and related docs
1 parent e66460e commit ca25cab

10 files changed

Lines changed: 35 additions & 673 deletions

File tree

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ view inside the editor.
3636
## Features
3737

3838
- Local simulator video stream over browser-native WebRTC H.264
39-
- Multi-simulator farm view at `/farm` with low-rate thumbnails and a focused full-rate stream
4039
- Full simulator control & inspection using private accessibility APIs
4140
- CoreSimulator chrome asset rendering for device bezels
4241
- NativeScript, React Native, UIKit and SwiftUI runtime inspector plugins to view app's view hierarchy live
@@ -63,9 +62,6 @@ simdeck "iPhone 17 Pro Max"
6362
Use `simdeck ui --open` or `simdeck daemon start` when you want a reusable background daemon instead.
6463
The no-subcommand lifecycle shortcuts are `simdeck -d` for detached start, `simdeck -k` to kill the background daemon, and `simdeck -r` to restart it.
6564
The served loopback browser UI receives the generated API access token automatically. LAN browsers pair with the printed code before receiving the API cookie.
66-
Open `http://127.0.0.1:4310/farm` to monitor every simulator in one dashboard.
67-
The farm uses thumbnail stream profiles for the grid and promotes the focused
68-
simulator to a full-rate WebRTC stream.
6965

7066
SimDeck Studio providers run the daemon on loopback and use
7167
`scripts/studio-provider-bridge.mjs` for outbound control-plane communication

cli/DFPrivateSimulatorDisplayBridge.m

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,39 @@
136136
return @"/Applications/Xcode.app/Contents/Developer/Library/PrivateFrameworks/SimulatorKit.framework/SimulatorKit";
137137
}
138138

139+
static NSInteger DFXcodeMajorVersion(void) {
140+
NSString *developerPath = nil;
141+
const char *developerDir = getenv("DEVELOPER_DIR");
142+
if (developerDir != NULL && developerDir[0] != '\0') {
143+
developerPath = [NSString stringWithUTF8String:developerDir];
144+
} else {
145+
FILE *pipe = popen("/usr/bin/xcode-select -p 2>/dev/null", "r");
146+
if (pipe != NULL) {
147+
char buffer[PATH_MAX] = {0};
148+
if (fgets(buffer, sizeof(buffer), pipe) != NULL) {
149+
developerPath = [[NSString stringWithUTF8String:buffer] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
150+
}
151+
pclose(pipe);
152+
}
153+
}
154+
if (developerPath.length == 0) {
155+
return 0;
156+
}
157+
158+
NSString *contentsPath = developerPath;
159+
if ([contentsPath.lastPathComponent isEqualToString:@"Developer"]) {
160+
contentsPath = contentsPath.stringByDeletingLastPathComponent;
161+
}
162+
163+
NSDictionary *versionInfo = [NSDictionary dictionaryWithContentsOfFile:[contentsPath stringByAppendingPathComponent:@"version.plist"]];
164+
NSString *version = versionInfo[@"CFBundleShortVersionString"];
165+
if (version.length == 0) {
166+
NSDictionary *info = [NSDictionary dictionaryWithContentsOfFile:[contentsPath stringByAppendingPathComponent:@"Info.plist"]];
167+
version = info[@"CFBundleShortVersionString"];
168+
}
169+
return [[version componentsSeparatedByString:@"."].firstObject integerValue];
170+
}
171+
139172
typedef struct {
140173
__unsafe_unretained id unit;
141174
double value;
@@ -207,20 +240,7 @@ static BOOL DFShouldUseIndigoMouse9Path(void) {
207240
return;
208241
}
209242

210-
FILE *pipe = popen("/usr/bin/xcodebuild -version 2>/dev/null", "r");
211-
if (pipe == NULL) {
212-
return;
213-
}
214-
char buffer[256] = {0};
215-
if (fgets(buffer, sizeof(buffer), pipe) != NULL) {
216-
NSString *line = [[NSString stringWithUTF8String:buffer] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
217-
NSArray<NSString *> *parts = [line componentsSeparatedByString:@" "];
218-
if (parts.count >= 2 && [parts[0] isEqualToString:@"Xcode"]) {
219-
NSInteger major = [[parts[1] componentsSeparatedByString:@"."].firstObject integerValue];
220-
enabled = major >= 26;
221-
}
222-
}
223-
pclose(pipe);
243+
enabled = DFXcodeMajorVersion() >= 26;
224244
});
225245
return enabled;
226246
}

client/src/app/App.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import { AppShell } from "./AppShell";
2-
import { FarmView } from "../features/farm/FarmView";
32

43
export default function App() {
5-
if (window.location.pathname === "/farm") {
6-
return <FarmView />;
7-
}
84
return <AppShell />;
95
}

0 commit comments

Comments
 (0)