| 111 | } |
| 112 | |
| 113 | void CTempoCounter::LoadSoundState(const CSongState &state) { |
| 114 | if (state.Tempo != -1) |
| 115 | m_iTempo = state.Tempo; |
| 116 | if (state.GroovePos >= 0) { |
| 117 | if (auto pGroove = m_pModule->GetGroove(state.Speed)) { |
| 118 | LoadGroove(std::move(pGroove)); |
| 119 | m_iGroovePosition = state.GroovePos; |
| 120 | UpdateGrooveSpeed(); |
| 121 | } |
| 122 | } |
| 123 | else { |
| 124 | if (state.Speed >= 0) |
| 125 | m_iSpeed = state.Speed; |
| 126 | m_pCurrentGroove = nullptr; |
| 127 | } |
| 128 | SetupSpeed(); |
| 129 | } |
| 130 | |
| 131 | void CTempoCounter::SetupSpeed() { |
| 132 | if (m_iTempo) { // // // |