-
Notifications
You must be signed in to change notification settings - Fork 20
/
properties.rs
51 lines (41 loc) · 1.43 KB
/
properties.rs
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
use coremidi::{Client, EventList, Properties, Protocol};
fn main() {
let client = Client::new("Example Client").unwrap();
let callback = |event_list: &EventList| {
println!("{:?}", event_list);
};
// Creates a virtual destination, then gets its properties
let destination = client
.virtual_destination_with_protocol("Example Destination", Protocol::Midi20, callback)
.unwrap();
// All coremidi structs dereference to an Object, so you can directly
// ask for some of the supported properties invoking a method like:
println!("Created Virtual Destination:");
println!(" Display Name: {}", destination.display_name().unwrap());
// The rest of the supported properties can be accessed like:
println!(
" Protocol ID: {}",
destination
.get_property::<i32>(&Properties::protocol_id())
.unwrap()
);
destination
.set_property(&Properties::private(), true)
.unwrap();
println!(
" Private: {}",
destination
.get_property::<bool>(&Properties::private())
.unwrap()
);
// You can also set/get your own properties like:
destination
.set_property_string("my-own-string-property", "my-value")
.unwrap();
println!(
" My own string property: {}",
destination
.get_property_string("my-own-string-property")
.unwrap()
)
}