| 196 | } |
| 197 | |
| 198 | Track *Track::GetLinkedTrack() const |
| 199 | { |
| 200 | auto pList = GetOwner(); |
| 201 | if (!pList) |
| 202 | return nullptr; |
| 203 | |
| 204 | if (!pList->isNull(mNode)) { |
| 205 | if (HasLinkedTrack()) { |
| 206 | auto next = pList->getNext( mNode ); |
| 207 | if ( !pList->isNull( next ) ) |
| 208 | return next->get(); |
| 209 | } |
| 210 | |
| 211 | if (mNode != pList->ListOfTracks::begin()) { |
| 212 | auto prev = pList->getPrev( mNode ); |
| 213 | if ( !pList->isNull( prev ) ) { |
| 214 | auto track = prev->get(); |
| 215 | if (track && track->HasLinkedTrack()) |
| 216 | return track; |
| 217 | } |
| 218 | } |
| 219 | } |
| 220 | |
| 221 | return nullptr; |
| 222 | } |
| 223 | |
| 224 | bool Track::HasLinkedTrack() const noexcept |
| 225 | { |
no test coverage detected