1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-foundation")]
use objc2_foundation::*;
use crate::*;
extern "C" {
/// A notification posted when a MIDI-CI Device has been added to the subsystem.
///
///
/// The userInfo dictionary will contain a MIDICIDeviceObjectKey with the
/// MIDI-CI Device which has been added to the subsystem.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midicidevicewasaddednotification?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIDeviceWasAddedNotification: &'static NSNotificationName;
}
extern "C" {
/// A notification posted when a MIDI-CI Device has been removed or has had its MUID invalidated.
///
///
/// Any previously discovered MIDICIDevice that fails to respond to a discovery message
/// will be removed. The userInfo dictionary will contain a MIDICIDeviceObjectKey with the
/// MIDI-CI Device which has been removed or has had its MUID invalidated.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midicidevicewasremovednotification?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIDeviceWasRemovedNotification: &'static NSNotificationName;
}
extern "C" {
/// A notification posted when a MIDI-CI Device has been enabled/disabled or updated.
///
///
/// The userInfo dictionary will contain a MIDICIDeviceObjectKey and
/// MIDICIProfileObjectKey with the MIDICIDevice and MIDI-CI Profile which
/// was recently enabled or disabled.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midiciprofilewasupdatednotification?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIProfileWasUpdatedNotification: &'static NSNotificationName;
}
extern "C" {
/// A notification posted when a MIDI-CI Device has been removed.
///
///
/// The userInfo dictionary will contain a MIDICIDeviceObjectKey and
/// MIDICIProfileObjectKey with the MIDICIDevice and MIDI-CI Profile which
/// has been removed.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midiciprofilewasremovednotification?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIProfileWasRemovedNotification: &'static NSNotificationName;
}
/// [Apple's documentation](https://developer.apple.com/documentation/coremidi/midicidevicemanagerdictionarykey?language=objc)
// NS_TYPED_ENUM
#[cfg(feature = "objc2-foundation")]
pub type MIDICIDeviceManagerDictionaryKey = NSString;
extern "C" {
/// Value is an MIDIUMPEndpoint.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midicideviceobjectkey?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIDeviceObjectKey: &'static MIDICIDeviceManagerDictionaryKey;
}
extern "C" {
/// Value is an MIDIUMPCIProfile
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midiciprofileobjectkey?language=objc)
#[cfg(feature = "objc2-foundation")]
pub static MIDICIProfileObjectKey: &'static MIDICIDeviceManagerDictionaryKey;
}
#[cfg(feature = "objc2")]
extern_class!(
/// A singleton object that performs system-wide MIDI-CI Device bookkeeping.
///
///
/// MIDICIDeviceManager is used to retrieve information about MIDI-CI devices that
/// to MIDI-CI Discovery.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremidi/midicidevicemanager?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "objc2")]
pub struct MIDICIDeviceManager;
);
#[cfg(feature = "objc2")]
extern_conformance!(
unsafe impl NSObjectProtocol for MIDICIDeviceManager {}
);
#[cfg(feature = "objc2")]
impl MIDICIDeviceManager {
extern_methods!(
/// Retrieve the shared MIDI-CI device manager for the client process.
///
///
/// After the first access of the property, the client process may observe notifications which are
/// posted when the system-wide cache changes. In environments where virtual MIDI endpoint
/// creation is not allowed, callbacks are only invoked when the process is not suspended.
/// However, any suspended process will receive an updated copy of the cache when it
/// resumes its running state.
#[unsafe(method(sharedInstance))]
#[unsafe(method_family = none)]
pub unsafe fn sharedInstance() -> Retained<MIDICIDeviceManager>;
#[cfg(all(feature = "MIDICIDevice", feature = "objc2-foundation"))]
/// A list of MIDICIDevices that responded to the last MIDI-CI discovery request.
#[unsafe(method(discoveredCIDevices))]
#[unsafe(method_family = none)]
pub unsafe fn discoveredCIDevices(&self) -> Retained<NSArray<MIDICIDevice>>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "objc2")]
impl MIDICIDeviceManager {
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>;
);
}