use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub const EAConnectionIDNone: c_uint = 0;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct EAAccessory;
);
extern_conformance!(
unsafe impl NSObjectProtocol for EAAccessory {}
);
impl EAAccessory {
extern_methods!(
#[unsafe(method(isConnected))]
#[unsafe(method_family = none)]
pub unsafe fn isConnected(&self) -> bool;
#[unsafe(method(connectionID))]
#[unsafe(method_family = none)]
pub unsafe fn connectionID(&self) -> NSUInteger;
#[unsafe(method(manufacturer))]
#[unsafe(method_family = none)]
pub unsafe fn manufacturer(&self) -> Retained<NSString>;
#[unsafe(method(name))]
#[unsafe(method_family = none)]
pub unsafe fn name(&self) -> Retained<NSString>;
#[unsafe(method(modelNumber))]
#[unsafe(method_family = none)]
pub unsafe fn modelNumber(&self) -> Retained<NSString>;
#[unsafe(method(serialNumber))]
#[unsafe(method_family = none)]
pub unsafe fn serialNumber(&self) -> Retained<NSString>;
#[unsafe(method(firmwareRevision))]
#[unsafe(method_family = none)]
pub unsafe fn firmwareRevision(&self) -> Retained<NSString>;
#[unsafe(method(hardwareRevision))]
#[unsafe(method_family = none)]
pub unsafe fn hardwareRevision(&self) -> Retained<NSString>;
#[deprecated = "Not supported"]
#[unsafe(method(dockType))]
#[unsafe(method_family = none)]
pub unsafe fn dockType(&self) -> Retained<NSString>;
#[unsafe(method(protocolStrings))]
#[unsafe(method_family = none)]
pub unsafe fn protocolStrings(&self) -> Retained<NSArray<NSString>>;
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub unsafe fn delegate(&self) -> Option<Retained<ProtocolObject<dyn EAAccessoryDelegate>>>;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn EAAccessoryDelegate>>,
);
);
}
impl EAAccessory {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_protocol!(
pub unsafe trait EAAccessoryDelegate: NSObjectProtocol {
#[optional]
#[unsafe(method(accessoryDidDisconnect:))]
#[unsafe(method_family = none)]
unsafe fn accessoryDidDisconnect(&self, accessory: &EAAccessory);
}
);