use serde::{Deserialize, Serialize};
use crate::daw::track::Track;
use crate::module::Module;
#[derive(Serialize, Deserialize, Debug, Clone, Copy)]
pub struct Clip {
pub track: u32,
pub song: u16,
pub target_channel: u8,
pub position_tick: u32,
pub speed_at_start: u8,
pub track_row_offset: u32,
pub source_start_row: u32,
pub end_tick: u32,
}
impl Clip {
pub fn track_in<'a>(&self, module: &'a Module) -> Option<&'a Track> {
module.tracks.get(self.track as usize)
}
pub fn end_tick(&self, _module: &Module) -> u32 {
self.end_tick
}
}