00001 00006 #include "mp3iterator.h" 00007 00008 MP3Iterator::MP3Iterator(Bitstream &bs, int type = MP3Frame::normal) 00009 { 00010 m_stream = new MP3Stream(bs, type); //Also reads first frame 00011 m_frame = m_stream->First(); //Get that first frame 00012 } 00013 00014 MP3Iterator::~MP3Iterator() 00015 { 00016 delete m_stream; 00017 } 00018 00019 MP3Frame *MP3Iterator::operator-> () const 00020 { 00021 return m_frame; //Redirection to current frame 00022 } 00023 00024 MP3Iterator &MP3Iterator::operator++ () 00025 { 00026 m_frame = m_frame->Next(); //Move to next frame 00027 00028 //In fastwrite mode only data from current frame are 00029 // needed, so previous frames could be safely deleted 00030 if( m_stream->WriteMode() != MP3Frame::normal ) 00031 m_stream->SeekTo(m_frame); 00032 00033 return *this; 00034 }