Feat: comfort features
This commit is contained in:
@@ -24,6 +24,33 @@ pub fn paste_pattern(
|
||||
project.banks[bank].patterns[pattern] = pat;
|
||||
}
|
||||
|
||||
pub fn copy_patterns(project: &Project, bank: usize, indices: &[usize]) -> Vec<Pattern> {
|
||||
indices
|
||||
.iter()
|
||||
.map(|&i| project.banks[bank].patterns[i].clone())
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn paste_patterns(
|
||||
project: &mut Project,
|
||||
bank: usize,
|
||||
start: usize,
|
||||
sources: &[Pattern],
|
||||
) -> usize {
|
||||
let mut count = 0;
|
||||
for (i, src) in sources.iter().enumerate() {
|
||||
let target = start + i;
|
||||
if target >= crate::model::MAX_PATTERNS {
|
||||
break;
|
||||
}
|
||||
let mut pat = src.clone();
|
||||
pat.name = annotate_copy_name(&src.name);
|
||||
project.banks[bank].patterns[target] = pat;
|
||||
count += 1;
|
||||
}
|
||||
count
|
||||
}
|
||||
|
||||
pub fn copy_bank(project: &Project, bank: usize) -> Bank {
|
||||
project.banks[bank].clone()
|
||||
}
|
||||
@@ -35,6 +62,28 @@ pub fn paste_bank(project: &mut Project, bank: usize, source: &Bank) -> usize {
|
||||
project.banks[bank].patterns.len()
|
||||
}
|
||||
|
||||
pub fn copy_banks(project: &Project, indices: &[usize]) -> Vec<Bank> {
|
||||
indices
|
||||
.iter()
|
||||
.map(|&i| project.banks[i].clone())
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn paste_banks(project: &mut Project, start: usize, sources: &[Bank]) -> usize {
|
||||
let mut count = 0;
|
||||
for (i, src) in sources.iter().enumerate() {
|
||||
let target = start + i;
|
||||
if target >= crate::model::MAX_BANKS {
|
||||
break;
|
||||
}
|
||||
let mut b = src.clone();
|
||||
b.name = annotate_copy_name(&src.name);
|
||||
project.banks[target] = b;
|
||||
count += 1;
|
||||
}
|
||||
count
|
||||
}
|
||||
|
||||
pub fn copy_steps(
|
||||
project: &Project,
|
||||
bank: usize,
|
||||
|
||||
Reference in New Issue
Block a user