Explorar el Código

Merge pull request #139 from michaelherger/rustify

Rustify some recent changes according to plietar
Sasha Hilton hace 7 años
padre
commit
2617a9cfe2
Se han modificado 3 ficheros con 18 adiciones y 25 borrados
  1. 2 0
      .gitignore
  2. 1 1
      discovery/src/discovery.rs
  3. 15 24
      src/main.rs

+ 2 - 0
.gitignore

@@ -2,3 +2,5 @@ target
 .cargo
 spotify_appkey.key
 .vagrant/
+.project
+.history

+ 1 - 1
discovery/src/discovery.rs

@@ -215,7 +215,7 @@ pub fn discovery(handle: &Handle, config: ConnectConfig, device_id: String, port
     let serve = {
         let http = Http::new();
         debug!("Zeroconf server listening on 0.0.0.0:{}", port);
-        http.serve_addr_handle(&format!("0.0.0.0:{}", port).parse().unwrap(), &handle, move || Ok(discovery.clone())).unwrap()
+        http.serve_addr_handle(&format!("0.0.0.0:{}", port).parse().unwrap(), &handle, move || Ok(discovery.clone())).expect("Unable to bind Zeroconf to port")
     };
 
     let s_port = serve.incoming_ref().local_addr().port();

+ 15 - 24
src/main.rs

@@ -101,7 +101,7 @@ fn setup(args: &[String]) -> Setup {
         .optopt("", "device", "Audio device to use. Use '?' to list options", "DEVICE")
         .optopt("", "mixer", "Mixer to use", "MIXER")
         .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..]) {
         Ok(m) => m,
@@ -135,30 +135,21 @@ fn setup(args: &[String]) -> Setup {
     let mixer = mixer::find(mixer_name.as_ref())
         .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 use_audio_cache = !matches.opt_present("disable-audio-cache");