File indexing completed on 2024-05-12 04:51:00
0001 /* 0002 SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "k3baudiodatasourceiterator.h" 0007 #include "k3baudiodoc.h" 0008 #include "k3baudiotrack.h" 0009 #include "k3baudiodatasource.h" 0010 0011 0012 K3b::AudioDataSourceIterator::AudioDataSourceIterator( K3b::AudioDoc* doc ) 0013 : m_doc( doc ) 0014 { 0015 first(); 0016 } 0017 0018 0019 K3b::AudioDataSource* K3b::AudioDataSourceIterator::current() const 0020 { 0021 return m_currentSource; 0022 } 0023 0024 0025 K3b::AudioDataSource* K3b::AudioDataSourceIterator::next() 0026 { 0027 m_currentSource = m_currentSource->next(); 0028 if( !m_currentSource ) { 0029 m_currentTrack = m_currentTrack->next(); 0030 if( m_currentTrack ) 0031 m_currentSource = m_currentTrack->firstSource(); 0032 } 0033 0034 return m_currentSource; 0035 } 0036 0037 0038 bool K3b::AudioDataSourceIterator::hasNext() const 0039 { 0040 if( !m_currentSource ) 0041 return false; 0042 if( m_currentSource->next() ) 0043 return true; 0044 if( m_currentTrack->next() ) 0045 return true; 0046 0047 return false; 0048 } 0049 0050 0051 K3b::AudioDataSource* K3b::AudioDataSourceIterator::first() 0052 { 0053 m_currentTrack = m_doc->firstTrack(); 0054 0055 if( m_currentTrack ) 0056 m_currentSource = m_currentTrack->firstSource(); 0057 else 0058 m_currentSource = 0; 0059 0060 return m_currentSource; 0061 }