| 
														
															@@ -101,7 +101,7 @@ fn setup(args: &[String]) -> Setup { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         .optopt("", "device", "Audio device to use. Use '?' to list options", "DEVICE") 
														 | 
														
														 | 
														
															         .optopt("", "device", "Audio device to use. Use '?' to list options", "DEVICE") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         .optopt("", "mixer", "Mixer to use", "MIXER") 
														 | 
														
														 | 
														
															         .optopt("", "mixer", "Mixer to use", "MIXER") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         .optopt("", "initial-volume", "Initial volume in %, once connected (must be from 0 to 100)", "VOLUME") 
														 | 
														
														 | 
														
															         .optopt("", "initial-volume", "Initial volume in %, once connected (must be from 0 to 100)", "VOLUME") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        .optopt("z", "zeroconf-port", "The port the internal server advertised over zeroconf uses.", "ZEROCONF_PORT"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        .optopt("", "zeroconf-port", "The port the internal server advertised over zeroconf uses.", "ZEROCONF_PORT"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let matches = match opts.parse(&args[1..]) { 
														 | 
														
														 | 
														
															     let matches = match opts.parse(&args[1..]) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Ok(m) => m, 
														 | 
														
														 | 
														
															         Ok(m) => m, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -135,30 +135,21 @@ fn setup(args: &[String]) -> Setup { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let mixer = mixer::find(mixer_name.as_ref()) 
														 | 
														
														 | 
														
															     let mixer = mixer::find(mixer_name.as_ref()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         .expect("Invalid mixer"); 
														 | 
														
														 | 
														
															         .expect("Invalid mixer"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    let initial_volume: i32; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if matches.opt_present("initial-volume") && matches.opt_str("initial-volume").unwrap().parse::<i32>().is_ok() { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let iv = matches.opt_str("initial-volume").unwrap().parse::<i32>().unwrap(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        match iv { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            iv if iv >= 0 && iv <= 100 => { initial_volume = iv * 0xFFFF / 100 } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            _ => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                debug!("Volume needs to be a value from 0-100; set volume level to 50%"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                initial_volume = 0x8000; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let initial_volume = matches 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        .opt_str("initial-volume") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        .map(|volume| { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let volume = volume.parse::<i32>().unwrap(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if volume < 0 || volume > 100 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                panic!("Initial volume must be in the range 0-100"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        initial_volume = 0x8000; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    let zeroconf_port: u16; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if matches.opt_present("zeroconf-port") && matches.opt_str("zeroconf-port").unwrap().parse::<u16>().is_ok() { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let z = matches.opt_str("zeroconf-port").unwrap().parse::<u16>().unwrap(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        match z { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            z if z >= 1024 => { zeroconf_port = z } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            _ => { zeroconf_port = 0 } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        zeroconf_port = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            volume * 0xFFFF / 100 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        .unwrap_or(0x8000); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let zeroconf_port = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    matches.opt_str("zeroconf-port") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+           .map(|port| port.parse::<u16>().unwrap()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+           .unwrap_or(0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let name = matches.opt_str("name").unwrap(); 
														 | 
														
														 | 
														
															     let name = matches.opt_str("name").unwrap(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let use_audio_cache = !matches.opt_present("disable-audio-cache"); 
														 | 
														
														 | 
														
															     let use_audio_cache = !matches.opt_present("disable-audio-cache"); 
														 |