1 // -*- mode: c++; c-set-style: "stroustrup"; tab-width: 4; -*-
2 //
3 // CReader.h
4 //
5 // Copyright (C) 2004 Koji Nakamaru
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2, or (at your option)
10 // any later version.
11 //
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software Foundation,
19 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 //
21
22 #ifndef _CReader_h_
23 #define _CReader_h_
24
25 #include "CFile.h"
26 #include "CImage.h"
27
28 class CReader {
29 public:
30 const char **magic;
31
32 virtual ~CReader();
33 virtual bool initialize(CFile *fp, char *magic) = 0;
34 virtual void read(CFile *fp, CImage<float, 4> *image) = 0;
35 int w();
36 int h();
37
38 protected:
39 int _w;
40 int _h;
41
42 CReader();
43 };
44
45 // inline functions
46
w()47 inline int CReader::w()
48 {
49 return _w;
50 }
51
h()52 inline int CReader::h()
53 {
54 return _h;
55 }
56
57 #endif
58