#ifndef DL_DVI_FILE_HH #define DL_DVI_FILE_HH #include "dl-dvi-program.hh" #include #include #include #include "dl-dvi-fontdefinition.hh" #include "dl-loader.hh" namespace DviLib { const uint N_PAGE_COUNTERS = 10; // \count0 ... \count9 class DviPageHeader : public RefCounted { public: int count[N_PAGE_COUNTERS]; uint address; // address of this page, not the preceding }; class DviPage : public AbstractDviProgram { DviProgram& program; int count[N_PAGE_COUNTERS]; // \count0 ... \count9 public: DviPage (DviProgram& p, int c[N_PAGE_COUNTERS]) : program (p) { for (uint i=0; i fontdefinitions; }; class DviFile : public RefCounted { AbstractLoader &loader; DviFilePreamble *preamble; DviFilePostamble *postamble; uint n_pages; map page_headers; map pages; public: DviFile (AbstractLoader& l); DviPage *get_page (uint n); /* unref it when done */ ~DviFile (void) {} uint get_n_pages () { return n_pages; } DviFontdefinition *get_fontdefinition (uint n) { return postamble->fontdefinitions[n]; } uint get_numerator () { return postamble->numerator; } uint get_denominator () { return postamble->denominator; } uint get_magnification () { return postamble->magnification; } }; } #endif // DL_DVI_FILE_HH