OggGranuleSeekTable.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 //===========================================================================
00005 //Copyright (C) 2003, 2004 Zentaro Kavanagh
00006 //
00007 //Redistribution and use in source and binary forms, with or without
00008 //modification, are permitted provided that the following conditions
00009 //are met:
00010 //
00011 //- Redistributions of source code must retain the above copyright
00012 //  notice, this list of conditions and the following disclaimer.
00013 //
00014 //- Redistributions in binary form must reproduce the above copyright
00015 //  notice, this list of conditions and the following disclaimer in the
00016 //  documentation and/or other materials provided with the distribution.
00017 //
00018 //- Neither the name of Zentaro Kavanagh nor the names of contributors 
00019 //  may be used to endorse or promote products derived from this software 
00020 //  without specific prior written permission.
00021 //
00022 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023 //``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00025 //PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00026 //CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00027 //EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00028 //PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00029 //PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00030 //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00031 //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00032 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033 //===========================================================================
00034 
00035 #pragma once
00036 
00037 #include <libilliCore/libilliCore.h>
00038 #include <libOOOggSeek/libOOOggSeek.h>
00039 
00040 #include <fstream>
00041 #include <map>
00042 
00043 using namespace std;
00044 
00045 class LIBOOOGGSEEK_API OggGranuleSeekTable
00046 {
00047 public:
00048         OggGranuleSeekTable(void);
00049         virtual ~OggGranuleSeekTable(void);
00050 
00052         typedef pair<unsigned long, LOOG_INT64> tGranulePair;
00053 
00055         typedef pair<LOOG_INT64, tGranulePair> tSeekPair;
00056         typedef map<LOOG_INT64, tGranulePair> tSeekMap;
00057 
00059         tSeekMap getSeekMap();
00060 
00062         bool addSeekPoint(LOOG_INT64 inTime, unsigned long mStartPos, LOOG_INT64 inGranulePos);
00063 
00065         tSeekPair getStartPos(LOOG_INT64 inTime);
00066 
00068         bool enabled();
00069     
00070 protected:
00071         tSeekMap mSeekMap;
00072         tSeekMap::value_type mSeekValue;
00073         LOOG_INT64 mRealStartPos;
00074 
00075         //fstream stDebug;
00076         bool mEnabled;
00077 
00078 private:
00079         OggGranuleSeekTable(const OggGranuleSeekTable&);  // Don't copy me
00080     OggGranuleSeekTable &operator=(const OggGranuleSeekTable&);  // Don't assign me
00081 };

Generated on Thu Feb 16 23:48:17 2006 for oggdsf by  doxygen 1.3.9