Browse Source

Merge pull request #110 from librespot-org/inital-volume-ifelse-cleanup

Initial volume ifelse cleanup
Colm 7 years ago
parent
commit
8be642de31
1 changed files with 11 additions and 24 deletions
  1. 11 24
      src/main.rs

+ 11 - 24
src/main.rs

@@ -134,33 +134,20 @@ fn setup(args: &[String]) -> Setup {
     let mixer_name = matches.opt_str("mixer");
     let mixer = mixer::find(mixer_name.as_ref())
         .expect("Invalid mixer");
-    let initial_volume;
-    // check if initial-volume argument is present
-    if matches.opt_present("initial-volume"){
-        // check if value is a number
-        if matches.opt_str("initial-volume").unwrap().parse::<i32>().is_ok(){
-            // check if value is in [0-100] range, otherwise put the bound values
-            if matches.opt_str("initial-volume").unwrap().parse::<i32>().unwrap() < 0 {
-                initial_volume = 0 as i32;
-            }
-            else if matches.opt_str("initial-volume").unwrap().parse::<i32>().unwrap() > 100{
-                initial_volume = 0xFFFF as i32;
-            }
-            // checks ok
-            else{
-                initial_volume = matches.opt_str("initial-volume").unwrap().parse::<i32>().unwrap()* 0xFFFF as i32 / 100 ;
+
+    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;
             }
         }
-        // if value is not a number use default value (50%)
-        else {
-            initial_volume = 0x8000 as i32;
-        }
+    } else {
+        initial_volume = 0x8000;
     }
-    // if argument not present use default values (50%)
-    else{
-        initial_volume = 0x8000 as i32;
-        }
-    debug!("Volume \"{}\" !", initial_volume);
 
     let zeroconf_port: u16;
     if matches.opt_present("zeroconf-port") && matches.opt_str("zeroconf-port").unwrap().parse::<u16>().is_ok() {