pub fn loop_range_samples(&self) -> Option<(i64, i64)> {
        match (
            self.loop_range_samples,
            self.loop_range_seconds,
            self.loop_range_beats,
            self.tempo,
        ) {
            (Some(loop_range_samples), _, _, _) => Some(loop_range_samples),
            (_, Some((start_seconds, end_seconds)), _, _) => Some((
                ((start_seconds * self.sample_rate as f64).round() as i64),
                ((end_seconds * self.sample_rate as f64).round() as i64),
            )),
            (_, _, Some((start_beats, end_beats)), Some(tempo)) => Some((
                (start_beats / tempo * 60.0 * self.sample_rate as f64).round() as i64,
                (end_beats / tempo * 60.0 * self.sample_rate as f64).round() as i64,
            )),
            (_, _, _, _) => None,
        }
    }
/// The loop range in samples, if the loop is active and this information is available. None of
/// the plugin API docs mention whether this is exclusive or inclusive, but just assume that the
/// end is exclusive. Will be calculated from other information if needed.
The loop range in samples, if the loop is active and this information is available. None of
the plugin API docs mention whether this is exclusive or inclusive, but just assume that the
end is exclusive. Will be calculated from other information if needed.
The loop range in samples if the loop is active and this information is available . None of the plugin API docs mention whether this is exclusive or inclusive but just assume that the end is exclusive . Will be calculated from other information if needed .
pub fn loop_range_samples(&self) -> Option<(i64, i64)> {
        match (
            self.loop_range_samples,
            self.loop_range_seconds,
            self.loop_range_beats,
            self.tempo,
        ) {
            (Some(loop_range_samples), _, _, _) => Some(loop_range_samples),
            (_, Some((start_seconds, end_seconds)), _, _) => Some((
                ((start_seconds * self.sample_rate as f64).round() as i64),
                ((end_seconds * self.sample_rate as f64).round() as i64),
            )),
            (_, _, Some((start_beats, end_beats)), Some(tempo)) => Some((
                (start_beats / tempo * 60.0 * self.sample_rate as f64).round() as i64,
                (end_beats / tempo * 60.0 * self.sample_rate as f64).round() as i64,
            )),
            (_, _, _, _) => None,
        }
    }
pub fn loop_range_samples ( & self ) -> Option < ( i64 , i64 ) > { match ( self . loop_range_samples , self . loop_range_seconds , self . loop_range_beats , self . tempo , ) { ( Some ( loop_range_samples ) , _ , _ , _ ) => Some ( loop_range_samples ) , ( _ , Some ( ( start_seconds , end_seconds ) ) , _ , _ ) => Some ( ( ( ( start_seconds * self . sample_rate as f64 ) . round ( ) as i64 ) , ( ( end_seconds * self . sample_rate as f64 ) . round ( ) as i64 ) , ) ) , ( _ , _ , Some ( ( start_beats , end_beats ) ) , Some ( tempo ) ) => Some ( ( ( start_beats / tempo * 60.0 * self . sample_rate as f64 ) . round ( ) as i64 , ( end_beats / tempo * 60.0 * self . sample_rate as f64 ) . round ( ) as i64 , ) ) , ( _ , _ , _ , _ ) => None , } }
The loop range in samples, if the loop is active and this information is available.
The loop range in samples if the loop is active and this information is available .
&self
&self