///////////////////////////////////////////////////////
| 278 | |
| 279 | //////////////////////////////////////////////////////////// |
| 280 | void InputSoundFile::seek(std::uint64_t sampleOffset) |
| 281 | { |
| 282 | assert(m_reader); |
| 283 | |
| 284 | if (!m_channelMap.empty()) |
| 285 | { |
| 286 | // The reader handles an overrun gracefully, but we |
| 287 | // pre-check to keep our known position consistent |
| 288 | m_sampleOffset = std::min(sampleOffset / m_channelMap.size() * m_channelMap.size(), m_sampleCount); |
| 289 | m_reader->seek(m_sampleOffset); |
| 290 | } |
| 291 | } |
| 292 | |
| 293 | |
| 294 | //////////////////////////////////////////////////////////// |
no test coverage detected