| 131 | delay_move_tx: DelayTX, |
| 132 | loop_move_tx: DelayTX, |
| 133 | ) { |
| 134 | self.delay_channels = Some(DelayChannels { |
| 135 | delay_tx, |
| 136 | delay_move_tx, |
| 137 | loop_move_tx, |
| 138 | }); |
| 139 | } |
| 140 | |
| 141 | pub(crate) fn unlock(&mut self, index: usize) { |
| 142 | let mut cg = self.cg.borrow_mut(); |
| 143 | *cg |= 1u64 << index; |
| 144 | } |
| 145 | |
| 146 | pub(crate) fn execute_backlog(&self) -> Result<(), EngineError> { |
| 147 | if let Some(window) = self.weak.upgrade() { |
| 148 | let script = self.script.borrow(); |
| 149 | let backlog = script.backlog(); |
| 150 | window.set_backlogs(Rc::new(VecModel::from(backlog)).into()); |
| 151 | } |
| 152 | |
| 153 | Ok(()) |
| 154 | } |
| 155 | |
| 156 | pub(crate) fn execute_backlog_change(&mut self, offset: i32) -> Result<(), EngineError> { |
| 157 | { |
| 158 | let mut script = self.script.borrow_mut(); |
| 159 | script.set_offset(offset); |
| 160 | } |
| 161 | self.execute_backlog() |
| 162 | } |
| 163 | |
| 164 | pub(crate) fn execute_backlog_jump( |
| 165 | &mut self, |
| 166 | name: String, |
| 167 | index: i32, |
| 168 | ) -> Result<(), EngineError> { |
| 169 | if let Some(window) = self.weak.upgrade() { |
| 170 | window.set_is_backlog(false); |
| 171 | } |
| 172 | self.execute_load(name, index) |
| 173 | } |
| 174 | |
| 175 | pub(crate) fn execute_replay(&mut self) -> Result<(), EngineError> { |
| 176 | let script = self.script.borrow(); |
| 177 | if let Some((name, voice)) = script.last_voice() { |
| 178 | self.play_voice(&name, &voice)?; |
| 179 | } |
| 180 | Ok(()) |
| 181 | } |
| 182 | |
| 183 | pub(crate) fn execute_save(&mut self, index: i32) -> Result<(), EngineError> { |