| 261 | } |
| 262 | |
| 263 | void CSongData::InsertRow(stChannelID Chan, unsigned Frame, unsigned Row) { |
| 264 | auto &Pattern = GetPatternOnFrame(Chan, Frame); // // // |
| 265 | |
| 266 | for (unsigned int i = GetPatternLength() - 1; i > Row; --i) |
| 267 | Pattern.SetNoteOn(i, Pattern.GetNoteOn(i - 1)); |
| 268 | Pattern.SetNoteOn(Row, { }); |
| 269 | } |
| 270 | |
| 271 | void CSongData::CopyTrack(stChannelID Chan, const CSongData &From, stChannelID ChanFrom) { |
| 272 | if (auto *lhs = GetTrack(Chan)) |