oggpageheader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TAGLIB_OGGPAGEHEADER_H
00027 #define TAGLIB_OGGPAGEHEADER_H
00028
00029 #include "tlist.h"
00030 #include "tbytevector.h"
00031 #include "taglib_export.h"
00032
00033 namespace TagLib {
00034
00035 namespace Ogg {
00036
00037 class File;
00038
00040
00047 class TAGLIB_EXPORT PageHeader
00048 {
00049 public:
00055 PageHeader(File *file = 0, long pageOffset = -1);
00056
00060 virtual ~PageHeader();
00061
00065 bool isValid() const;
00066
00074 List<int> packetSizes() const;
00075
00082 void setPacketSizes(const List<int> &sizes);
00083
00092 bool firstPacketContinued() const;
00093
00100 void setFirstPacketContinued(bool continued);
00101
00109 bool lastPacketCompleted() const;
00110
00117 void setLastPacketCompleted(bool completed);
00118
00124 bool firstPageOfStream() const;
00125
00131 void setFirstPageOfStream(bool first);
00132
00138 bool lastPageOfStream() const;
00139
00145 void setLastPageOfStream(bool last);
00146
00154 long long absoluteGranularPosition() const;
00155
00163 void setAbsoluteGranularPosition(long long agp);
00164
00172 uint streamSerialNumber() const;
00173
00182 void setStreamSerialNumber(uint n);
00183
00190 int pageSequenceNumber() const;
00191
00197 void setPageSequenceNumber(int sequenceNumber);
00198
00202 int size() const;
00203
00208 int dataSize() const;
00209
00216 ByteVector render() const;
00217
00218 private:
00219 PageHeader(const PageHeader &);
00220 PageHeader &operator=(const PageHeader &);
00221
00222 void read();
00223 ByteVector lacingValues() const;
00224
00225 class PageHeaderPrivate;
00226 PageHeaderPrivate *d;
00227 };
00228
00229 }
00230 }
00231
00232 #endif