pub trait ICDeviceBrowser: Sized {
// Required methods
unsafe fn delegate(self) -> id;
unsafe fn setDelegate(self, delegate: id);
unsafe fn isBrowsing(self) -> BOOL;
unsafe fn browsedDeviceTypeMask(self) -> NSUInteger;
unsafe fn setBrowsedDeviceTypeMask(self, mask: NSUInteger);
unsafe fn devices(self) -> id;
unsafe fn preferredDevice(self) -> id;
unsafe fn init(self) -> id;
unsafe fn start(self);
unsafe fn stop(self);
// Provided methods
unsafe fn alloc(_: Self) -> id { ... }
unsafe fn new(_: Self) -> id { ... }
}
Required Methods§
Sourceunsafe fn setDelegate(self, delegate: id)
unsafe fn setDelegate(self, delegate: id)
Set the delegate.
Sourceunsafe fn isBrowsing(self) -> BOOL
unsafe fn isBrowsing(self) -> BOOL
Indicates whether the device browser is browsing for devices.
Sourceunsafe fn browsedDeviceTypeMask(self) -> NSUInteger
unsafe fn browsedDeviceTypeMask(self) -> NSUInteger
A mask whose set bits indicate the type of device(s) being browsed after the receiver receives the start message
Sourceunsafe fn setBrowsedDeviceTypeMask(self, mask: NSUInteger)
unsafe fn setBrowsedDeviceTypeMask(self, mask: NSUInteger)
Set the mask whose set bits indicate the type of device(s) being browsed after the receiver receives the start message
Sourceunsafe fn devices(self) -> id
unsafe fn devices(self) -> id
All devices found by the browser. This property will change as devices appear and disappear. This array is empty before the first invocation of the delegate method ‘deviceBrowser:didAddDevice:moreComing:’.
Sourceunsafe fn preferredDevice(self) -> id
unsafe fn preferredDevice(self) -> id
This method returns a device object that should be selected by the client application when it is launched.
Provided Methods§
unsafe fn alloc(_: Self) -> id
Sourceunsafe fn new(_: Self) -> id
unsafe fn new(_: Self) -> id
Examples found in repository?
28fn main() {
29 unsafe {
30 let _pool = NSAutoreleasePool::new(nil);
31
32 // Create the device browser delegate
33 let superclass = class!(NSObject);
34 let mut decl = ClassDecl::new("BrowserDelegate", superclass).unwrap();
35
36 extern "C" fn device_browser_did_add_device(
37 _: &Object,
38 _: Sel,
39 _: id,
40 device: id,
41 _more_coming: BOOL,
42 ) {
43 let name = nsstring_decode(unsafe { ICDevice::name(device) });
44 println!("Found device '{}'", name);
45 }
46
47 extern "C" fn device_browser_did_remove_device(
48 _: &Object,
49 _: Sel,
50 _: id,
51 device: id,
52 _more_going: BOOL,
53 ) {
54 let name = nsstring_decode(unsafe { ICDevice::name(device) });
55 println!("Device removed '{}'", name);
56 }
57
58 decl.add_method(
59 sel!(deviceBrowser:didAddDevice:moreComing:),
60 device_browser_did_add_device as extern "C" fn(&Object, Sel, id, id, BOOL),
61 );
62 decl.add_method(
63 sel!(deviceBrowser:didRemoveDevice:moreGoing:),
64 device_browser_did_remove_device as extern "C" fn(&Object, Sel, id, id, BOOL),
65 );
66
67 let delegate_class = decl.register();
68 let delegate_object = msg_send![delegate_class, new];
69
70 // Create the device browser
71 let browser = ICDeviceBrowser::new(nil).autorelease();
72 ICDeviceBrowser::setDelegate(browser, delegate_object);
73 let types_mask =
74 ICDeviceTypeMask::ICDeviceTypeMaskCamera | ICDeviceTypeMask::ICDeviceTypeMaskScanner;
75 let locations_mask = ICDeviceLocationTypeMask::ICDeviceLocationTypeMaskLocal
76 | ICDeviceLocationTypeMask::ICDeviceLocationTypeMaskRemote;
77 browser.setBrowsedDeviceTypeMask(types_mask.bits() | locations_mask.bits());
78 browser.start();
79
80 // Run the application
81 let app = NSApp();
82 app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
83 let current_app = NSRunningApplication::currentApplication(nil);
84 current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
85 app.run();
86 }
87}
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.