@@ -216,11 +216,11 @@ xcw_native_owned_bytes xcw_native_screenshot_png(const char *udid, char **error_
216216
217217char *xcw_native_recent_logs (const char *udid, double seconds, size_t limit, char **error_message) {
218218 @autoreleasepool {
219- (void )limit;
220219 XCWSimctl *simctl = [[XCWSimctl alloc ] init ];
221220 NSError *error = nil ;
222221 NSArray <NSDictionary *> *entries = [simctl recentLogEntriesForSimulatorUDID: XCWStringFromCString (udid)
223222 seconds: seconds
223+ limit: limit
224224 error: &error];
225225 if (entries == nil ) {
226226 XCWSetErrorMessage (error_message, error);
@@ -231,12 +231,13 @@ xcw_native_owned_bytes xcw_native_screenshot_png(const char *udid, char **error_
231231 }
232232}
233233
234- char *xcw_native_accessibility_snapshot (const char *udid, bool has_point, double x, double y, char **error_message) {
234+ char *xcw_native_accessibility_snapshot (const char *udid, bool has_point, double x, double y, size_t max_depth, char **error_message) {
235235 @autoreleasepool {
236236 NSError *error = nil ;
237237 NSValue *pointValue = has_point ? [NSValue valueWithPoint: NSMakePoint (x, y)] : nil ;
238238 NSDictionary *snapshot = [XCWAccessibilityBridge accessibilitySnapshotForSimulatorUDID: XCWStringFromCString (udid)
239239 atPoint: pointValue
240+ maxDepth: max_depth
240241 error: &error];
241242 if (snapshot == nil ) {
242243 XCWSetErrorMessage (error_message, error);
@@ -395,6 +396,44 @@ bool xcw_native_input_send_multitouch(void *handle, double x1, double y1, double
395396 }
396397}
397398
399+ bool xcw_native_input_send_key (void *handle, uint16_t key_code, uint32_t modifiers, char **error_message) {
400+ @autoreleasepool {
401+ if (handle == NULL ) {
402+ XCWSetErrorMessage (error_message, [NSError errorWithDomain: @" SimDeck.NativeInput"
403+ code: 1
404+ userInfo: @{NSLocalizedDescriptionKey : @" Native input handle is null." }]);
405+ return false ;
406+ }
407+ NSError *error = nil ;
408+ BOOL ok = [(__bridge DFPrivateSimulatorDisplayBridge *)handle sendKeyCode: key_code
409+ modifiers: modifiers
410+ error: &error];
411+ if (!ok) {
412+ XCWSetErrorMessage (error_message, error);
413+ }
414+ return ok;
415+ }
416+ }
417+
418+ bool xcw_native_input_send_key_event (void *handle, uint16_t key_code, bool down, char **error_message) {
419+ @autoreleasepool {
420+ if (handle == NULL ) {
421+ XCWSetErrorMessage (error_message, [NSError errorWithDomain: @" SimDeck.NativeInput"
422+ code: 1
423+ userInfo: @{NSLocalizedDescriptionKey : @" Native input handle is null." }]);
424+ return false ;
425+ }
426+ NSError *error = nil ;
427+ BOOL ok = [(__bridge DFPrivateSimulatorDisplayBridge *)handle sendKeyCode: key_code
428+ down: down
429+ error: &error];
430+ if (!ok) {
431+ XCWSetErrorMessage (error_message, error);
432+ }
433+ return ok;
434+ }
435+ }
436+
398437bool xcw_native_send_key (const char *udid, uint16_t key_code, uint32_t modifiers, char **error_message) {
399438 @autoreleasepool {
400439 DFPrivateSimulatorDisplayBridge *bridge = XCWInputBridgeForUDID (udid, error_message);
0 commit comments