Trait ICDeviceBrowser

Source
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§

Source

unsafe fn delegate(self) -> id

Get the delegate.

Source

unsafe fn setDelegate(self, delegate: id)

Set the delegate.

Source

unsafe fn isBrowsing(self) -> BOOL

Indicates whether the device browser is browsing for devices.

Source

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

Source

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

Source

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:’.

Source

unsafe fn preferredDevice(self) -> id

This method returns a device object that should be selected by the client application when it is launched.

Source

unsafe fn init(self) -> id

This is the designated initializer.

Source

unsafe fn start(self)

This message tells the receiver to start looking for devices.

Source

unsafe fn stop(self)

This method tells the receiver to stop looking for devices.

Provided Methods§

Source

unsafe fn alloc(_: Self) -> id

Source

unsafe fn new(_: Self) -> id

Examples found in repository?
examples/list_devices.rs (line 71)
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.

Implementations on Foreign Types§

Source§

impl ICDeviceBrowser for id

Source§

unsafe fn delegate(self) -> id

Source§

unsafe fn setDelegate(self, delegate: id)

Source§

unsafe fn browsedDeviceTypeMask(self) -> NSUInteger

Source§

unsafe fn setBrowsedDeviceTypeMask(self, mask: NSUInteger)

Source§

unsafe fn isBrowsing(self) -> BOOL

Source§

unsafe fn devices(self) -> id

Source§

unsafe fn preferredDevice(self) -> id

Source§

unsafe fn init(self) -> id

Source§

unsafe fn start(self)

Source§

unsafe fn stop(self)

Implementors§