00001 #ifndef __J2K__FileReader_HPP__
00002 #define __J2K__FileReader_HPP__
00003
00004 #include <j2k/Fred/Standard.hpp>
00005 #include <j2k/nto/ANSI.hpp>
00006
00007 #include <j2k/nto/TrackStruct.hpp>
00008
00009 class Track;
00010 class File;
00011
00012 class FileReader {
00013 public:
00014
00015 FileReader( const char* n = "circle.trk" );
00016
00017 virtual ~FileReader();
00018 void load();
00019 void find();
00020
00021 Track** getTracks() const;
00022 void comment( const char* buf, size_t len );
00023
00024
00025
00026
00027 track_info_t info( const char* buf, size_t len );
00028 track_init_t init( const char* buf, size_t len );
00029
00030 track_segment_t track( const char* buf, size_t len );
00031
00032 void parenth( const char* start, size_t len, long* array, size_t sz );
00033
00034 inline size_t getSize() const { return size; }
00035 inline track_init_t getInit() const { return trk_init; }
00036
00037 private:
00038 File* file;
00039 char buffer[4096];
00040 size_t len;
00041
00042 Track** segments;
00043 size_t size;
00044
00045 track_init_t trk_init;
00046 track_info_t trk_info;
00047 track_segment_t trk_segment;
00048 };
00049
00050 #endif
00051