| 176 | } |
| 177 | |
| 178 | void PendingTracks::UpdatePendingTracks() |
| 179 | { |
| 180 | if (mPendingUpdates->empty()) |
| 181 | return; |
| 182 | auto pUpdater = mUpdaters.begin(); |
| 183 | for (const auto &pendingTrack : *mPendingUpdates) { |
| 184 | auto src = mTracks.FindById(pendingTrack->GetId()); |
| 185 | // Copy just a part of the track state, according to the update |
| 186 | // function |
| 187 | const auto &updater = *pUpdater; |
| 188 | if (pendingTrack && src) { |
| 189 | if (updater) |
| 190 | updater(*pendingTrack, *src); |
| 191 | } |
| 192 | ++pUpdater; |
| 193 | } |
| 194 | } |
| 195 | |
| 196 | /*! @excsafety{No-fail} */ |
| 197 | void PendingTracks::ClearPendingTracks( |