forked from mirrors/gecko-dev
		
	 ee6325f662
			
		
	
	
		ee6325f662
		
	
	
	
	
		
			
			This is as close to usptream as currently possibly. Only a few changes were done to the dependencies: the wasm target was removed and the coremidi dependency was updated to pick up a more recent version so that we don't need to vendor separate versions of the core-foundation and core-foundation-sys crates. This vendors the following crates: * alsa-sys * alsa * coremidi * coremidi-sys * memalloc * midir Overall this adds ~30K lines of code, over half of which is in the alsa bindings alone. Differential Revision: https://phabricator.services.mozilla.com/D124640
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			732 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			732 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| extern crate coremidi;
 | |
| 
 | |
| use coremidi::{Client, PacketList, Properties, PropertyGetter, PropertySetter};
 | |
| 
 | |
| fn main() {
 | |
|     let client = Client::new("Example Client").unwrap();
 | |
| 
 | |
|     let callback = |packet_list: &PacketList| {
 | |
|         println!("{}", packet_list);
 | |
|     };
 | |
| 
 | |
|     // Creates a virtual destination, then gets its properties
 | |
|     let destination = client
 | |
|         .virtual_destination("Example Destination", callback)
 | |
|         .unwrap();
 | |
| 
 | |
|     println!("Created Virtual Destination...");
 | |
| 
 | |
|     // How to get a property
 | |
|     let name: String = Properties::name().value_from(&destination).unwrap();
 | |
|     println!("With Name: {}", name);
 | |
| 
 | |
|     // How to set a property
 | |
|     Properties::private().set_value(&destination, true).unwrap();
 | |
| }
 |