Johann Woelper 4 éve
szülő
commit
afa24bff63
2 módosított fájl, 42 hozzáadás és 14 törlés
  1. 38 13
      src/base.rs
  2. 4 1
      src/main.rs

+ 38 - 13
src/base.rs

@@ -57,6 +57,7 @@ impl Sound {
             location: sanitized_name.clone(),
             volume: 1.0,
             speed: 1.0,
+            roll: 0,
             ..Default::default()
         })
     }
@@ -105,23 +106,47 @@ impl Sound {
 
     pub fn play(&self, device: &rodio::Device) {
 
-        let decoder = match self.reverse {
-            false => Decoder::new(self.cursor()),
-            true => Decoder::new(self.cursor_rev()),
-        };
+        if self.roll == 0 {
+            match Decoder::new(self.cursor()) {
+                Ok(ok_decoder) => {
+    
+                    rodio::play_raw(&device, ok_decoder
+                        .speed(self.speed)
+                        .amplify(self.volume)
+                        .convert_samples());
+    
+                }
+                Err(e) => {
+                    dbg!(e);
+                }
+            }
 
-        match decoder {
-            Ok(ok_decoder) => {
-                rodio::play_raw(&device, ok_decoder
-                .speed(self.speed)
-                .amplify(self.volume)
-                .convert_samples());
+        } else {
+            let delay = 100;
+            for _ in 0..self.roll+1 {
+    
+                match Decoder::new(self.cursor()) {
+                    Ok(ok_decoder) => {
+        
+                        rodio::play_raw(&device, ok_decoder
+                            .speed(self.speed)
+                            .amplify(self.volume)
+                            .take_duration(Duration::from_millis(delay))
+                            .convert_samples());
+        
+                    }
+                    Err(e) => {
+                        dbg!(e);
+                    }
+                }
+                thread::sleep(Duration::from_millis(delay));
 
             }
-            Err(e) => {
-                dbg!(e);
-            }
         }
+
+
+
+
     }
 }
 

+ 4 - 1
src/main.rs

@@ -196,7 +196,10 @@ fn main() {
                         
 
                         }
-                        
+                        // Convenience: remove items on right click
+                        if ui.is_item_clicked(MouseButton::Right) {
+                            active_pattern.sounds.remove(&(x,y));
+                        }
                         
                     }