#[cfg(feature = "block2")]
use block2::*;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct GCPhysicalInputProfile;
unsafe impl ClassType for GCPhysicalInputProfile {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for GCPhysicalInputProfile {}
extern_methods!(
unsafe impl GCPhysicalInputProfile {
#[cfg(feature = "GCDevice")]
#[method_id(@__retain_semantics Other device)]
pub unsafe fn device(&self) -> Option<Id<ProtocolObject<dyn GCDevice>>>;
#[method(lastEventTimestamp)]
pub unsafe fn lastEventTimestamp(&self) -> NSTimeInterval;
#[method(hasRemappedElements)]
pub unsafe fn hasRemappedElements(&self) -> bool;
#[cfg(all(feature = "GCControllerElement", feature = "block2"))]
#[method(valueDidChangeHandler)]
pub unsafe fn valueDidChangeHandler(
&self,
) -> *mut Block<dyn Fn(NonNull<GCPhysicalInputProfile>, NonNull<GCControllerElement>)>;
#[cfg(all(feature = "GCControllerElement", feature = "block2"))]
#[method(setValueDidChangeHandler:)]
pub unsafe fn setValueDidChangeHandler(
&self,
value_did_change_handler: Option<
&Block<dyn Fn(NonNull<GCPhysicalInputProfile>, NonNull<GCControllerElement>)>,
>,
);
#[cfg(feature = "GCControllerElement")]
#[method_id(@__retain_semantics Other elements)]
pub unsafe fn elements(&self) -> Id<NSDictionary<NSString, GCControllerElement>>;
#[cfg(all(feature = "GCControllerButtonInput", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other buttons)]
pub unsafe fn buttons(&self) -> Id<NSDictionary<NSString, GCControllerButtonInput>>;
#[cfg(all(feature = "GCControllerAxisInput", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other axes)]
pub unsafe fn axes(&self) -> Id<NSDictionary<NSString, GCControllerAxisInput>>;
#[cfg(all(feature = "GCControllerDirectionPad", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other dpads)]
pub unsafe fn dpads(&self) -> Id<NSDictionary<NSString, GCControllerDirectionPad>>;
#[cfg(all(feature = "GCControllerElement", feature = "GCControllerTouchpad"))]
#[method_id(@__retain_semantics Other touchpads)]
pub unsafe fn touchpads(&self) -> Id<NSDictionary<NSString, GCControllerTouchpad>>;
#[cfg(feature = "GCControllerElement")]
#[method_id(@__retain_semantics Other allElements)]
pub unsafe fn allElements(&self) -> Id<NSSet<GCControllerElement>>;
#[cfg(all(feature = "GCControllerButtonInput", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other allButtons)]
pub unsafe fn allButtons(&self) -> Id<NSSet<GCControllerButtonInput>>;
#[cfg(all(feature = "GCControllerAxisInput", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other allAxes)]
pub unsafe fn allAxes(&self) -> Id<NSSet<GCControllerAxisInput>>;
#[cfg(all(feature = "GCControllerDirectionPad", feature = "GCControllerElement"))]
#[method_id(@__retain_semantics Other allDpads)]
pub unsafe fn allDpads(&self) -> Id<NSSet<GCControllerDirectionPad>>;
#[cfg(all(feature = "GCControllerElement", feature = "GCControllerTouchpad"))]
#[method_id(@__retain_semantics Other allTouchpads)]
pub unsafe fn allTouchpads(&self) -> Id<NSSet<GCControllerTouchpad>>;
#[cfg(feature = "GCControllerElement")]
#[method_id(@__retain_semantics Other objectForKeyedSubscript:)]
pub unsafe fn objectForKeyedSubscript(
&self,
key: &NSString,
) -> Option<Id<GCControllerElement>>;
#[method_id(@__retain_semantics Other capture)]
pub unsafe fn capture(&self) -> Id<Self>;
#[method(setStateFromPhysicalInput:)]
pub unsafe fn setStateFromPhysicalInput(&self, physical_input: &GCPhysicalInputProfile);
#[method_id(@__retain_semantics Other mappedElementAliasForPhysicalInputName:)]
pub unsafe fn mappedElementAliasForPhysicalInputName(
&self,
input_name: &NSString,
) -> Id<NSString>;
#[method_id(@__retain_semantics Other mappedPhysicalInputNamesForElementAlias:)]
pub unsafe fn mappedPhysicalInputNamesForElementAlias(
&self,
element_alias: &NSString,
) -> Id<NSSet<NSString>>;
}
);
extern_methods!(
unsafe impl GCPhysicalInputProfile {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);