Rev Author Line No. Line
2061 mija 1 /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
2 * File Name : Image.h
3 * Author : MCD Application Team
4 * Version : v2.1.0
5 * Date : 11/02/2009
6 * Description : Defines the CImage class interface
7 ********************************************************************************
8 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 *******************************************************************************/
15  
16 #ifndef _IMAGE_H_
17 #define _IMAGE_H_
18  
19 class CImage : public CObject
20 {
21 private:
22 char m_LastError[1000];
23 BYTE m_bAlternate;
24 CPtrArray *m_pElements;
25 BOOL m_ImageState;
26 BOOL m_bNamed;
27 char m_Name[255];
28  
29 BOOL LoadS19(PSTR pFilePath);
30 BOOL LoadHEX(PSTR pFilePath);
31 BOOL LoadBIN(PSTR pFilePath);
32  
33 BOOL SaveS19(PSTR pFilePath);
34 BOOL SaveHEX(PSTR pFilePath);
35  
36 void LDisplayError(PSTR Str) { lstrcpy(m_LastError, Str); }
37 BOOL ExistsElementsAtAddress(DWORD Address);
38  
39 void CompactElements();
40 public:
41 CImage(CImage *pSource);
42 CImage(BYTE bAlternate, BOOL bNamed, PSTR Name);
43 CImage(PMAPPING pMapping, BOOL bNamed, PSTR Name);
44 CImage(BYTE bAlternate, PSTR pFilePath, BOOL bNamed, PSTR Name);
45 virtual ~CImage();
46  
47 BOOL DumpToFile(PSTR pFilePath);
48 BYTE GetAlternate() { return m_bAlternate; }
49 BOOL GetImageState() { return m_ImageState; }
50 BOOL GetName(PSTR Name) { if (m_bNamed) lstrcpy(Name, m_Name); return m_bNamed; }
51 void SetName(PSTR Name) { lstrcpy(m_Name, Name); m_bNamed=TRUE; }
52 BOOL GetBuffer(DWORD dwAddress, DWORD dwSize, PBYTE pBuffer);
53  
54 DWORD GetNbElements() { return m_pElements->GetSize(); }
55 BOOL SetImageElement(DWORD dwRank, BOOL bInsert, IMAGEELEMENT Element);
56 BOOL GetImageElement(DWORD dwRank, PIMAGEELEMENT pElement);
57 BOOL FilterImageForOperation(PMAPPING pMapping, DWORD Operation, BOOL bTruncateLeadFF);
58 BOOL DestroyImageElement(DWORD dwRank);
59 };
60  
61 #endif
62  
63 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE******/