Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
widgets/EAImage.h@1:f04bcaea1d60, 2010-03-04 (annotated)
- Committer:
- richardparker
- Date:
- Thu Mar 04 10:54:06 2010 +0000
- Revision:
- 1:f04bcaea1d60
- Parent:
- 0:839ecbf5cb2a
- Child:
- 6:4fe6f365cbeb
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| richardparker | 0:839ecbf5cb2a | 1 | // Copyright 2010 Richard Parker | 
| richardparker | 0:839ecbf5cb2a | 2 | |
| richardparker | 0:839ecbf5cb2a | 3 | #ifndef MBED_EAIMAGE_H | 
| richardparker | 0:839ecbf5cb2a | 4 | #define MBED_EAIMAGE_H | 
| richardparker | 0:839ecbf5cb2a | 5 | |
| richardparker | 0:839ecbf5cb2a | 6 | #include "mbed.h" | 
| richardparker | 0:839ecbf5cb2a | 7 | |
| richardparker | 0:839ecbf5cb2a | 8 | #include "EAWidget.h" | 
| richardparker | 0:839ecbf5cb2a | 9 | |
| richardparker | 0:839ecbf5cb2a | 10 | class EALCD; | 
| richardparker | 1:f04bcaea1d60 | 11 | class EAColor; | 
| richardparker | 0:839ecbf5cb2a | 12 | |
| richardparker | 0:839ecbf5cb2a | 13 | /** | 
| richardparker | 0:839ecbf5cb2a | 14 | * Class to handle loading and displaying an image. | 
| richardparker | 0:839ecbf5cb2a | 15 | * @author Richard Parker | 
| richardparker | 0:839ecbf5cb2a | 16 | */ | 
| richardparker | 0:839ecbf5cb2a | 17 | class EAImage: public EAWidget | 
| richardparker | 0:839ecbf5cb2a | 18 | { | 
| richardparker | 0:839ecbf5cb2a | 19 | public: | 
| richardparker | 0:839ecbf5cb2a | 20 | struct EABMPHeader { | 
| richardparker | 0:839ecbf5cb2a | 21 | unsigned int headerSize; | 
| richardparker | 0:839ecbf5cb2a | 22 | unsigned int width; | 
| richardparker | 0:839ecbf5cb2a | 23 | unsigned int height; | 
| richardparker | 0:839ecbf5cb2a | 24 | unsigned short noColorPlanes; | 
| richardparker | 0:839ecbf5cb2a | 25 | unsigned short bitsPerPixel; | 
| richardparker | 0:839ecbf5cb2a | 26 | unsigned int compressionType; | 
| richardparker | 0:839ecbf5cb2a | 27 | unsigned int bmpSize; | 
| richardparker | 0:839ecbf5cb2a | 28 | unsigned int horizontalRes; | 
| richardparker | 0:839ecbf5cb2a | 29 | unsigned int verticalRes; | 
| richardparker | 0:839ecbf5cb2a | 30 | unsigned int noColors; | 
| richardparker | 0:839ecbf5cb2a | 31 | unsigned int noImportantColors; | 
| richardparker | 0:839ecbf5cb2a | 32 | }; | 
| richardparker | 1:f04bcaea1d60 | 33 | |
| richardparker | 1:f04bcaea1d60 | 34 | EAImage(); | 
| richardparker | 1:f04bcaea1d60 | 35 | ~EAImage(); | 
| richardparker | 1:f04bcaea1d60 | 36 | |
| richardparker | 1:f04bcaea1d60 | 37 | bool load(const char* path); | 
| richardparker | 1:f04bcaea1d60 | 38 | void unload(); | 
| richardparker | 1:f04bcaea1d60 | 39 | |
| richardparker | 1:f04bcaea1d60 | 40 | inline const char* path() const { return _path; } | 
| richardparker | 1:f04bcaea1d60 | 41 | |
| richardparker | 1:f04bcaea1d60 | 42 | inline bool isValid() const { return (_path != NULL); } | 
| richardparker | 1:f04bcaea1d60 | 43 | |
| richardparker | 1:f04bcaea1d60 | 44 | virtual void paint(EALCD& lcd); | 
| richardparker | 1:f04bcaea1d60 | 45 | virtual void paint(EALCD& lcd, unsigned int x, unsigned int y, unsigned int w, unsigned int h); | 
| richardparker | 1:f04bcaea1d60 | 46 | |
| richardparker | 1:f04bcaea1d60 | 47 | inline const EABMPHeader& info() { return _header; } | 
| richardparker | 1:f04bcaea1d60 | 48 | |
| richardparker | 1:f04bcaea1d60 | 49 | inline bool isMask() { return _mask; } | 
| richardparker | 1:f04bcaea1d60 | 50 | inline void setMask(bool value) { _mask = value; } | 
| richardparker | 1:f04bcaea1d60 | 51 | |
| richardparker | 1:f04bcaea1d60 | 52 | private: | 
| richardparker | 0:839ecbf5cb2a | 53 | char* _path; | 
| richardparker | 1:f04bcaea1d60 | 54 | EAColor* _palette; | 
| richardparker | 0:839ecbf5cb2a | 55 | unsigned int _dataOffset; | 
| richardparker | 1:f04bcaea1d60 | 56 | EABMPHeader _header; | 
| richardparker | 1:f04bcaea1d60 | 57 | bool _mask; | 
| richardparker | 0:839ecbf5cb2a | 58 | |
| richardparker | 0:839ecbf5cb2a | 59 | bool _loadHeader(const char* path); | 
| richardparker | 1:f04bcaea1d60 | 60 | bool _loadPalette(FILE* fp); | 
| richardparker | 1:f04bcaea1d60 | 61 | |
| richardparker | 1:f04bcaea1d60 | 62 | int _wordsInRow(); | 
| richardparker | 1:f04bcaea1d60 | 63 | int _wordForX(unsigned int x); | 
| richardparker | 1:f04bcaea1d60 | 64 | int _xWordOffset(unsigned int x); | 
| richardparker | 1:f04bcaea1d60 | 65 | unsigned short _getColourAtOffset(unsigned int word, int offset); | 
| richardparker | 0:839ecbf5cb2a | 66 | |
| richardparker | 0:839ecbf5cb2a | 67 | }; | 
| richardparker | 0:839ecbf5cb2a | 68 | |
| richardparker | 0:839ecbf5cb2a | 69 | #endif |