Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Revision:
8:26e49e6955bd
Parent:
7:f0e645cf73a2
--- a/QSPIBitmap.cpp	Fri Jul 28 15:53:40 2017 +0000
+++ b/QSPIBitmap.cpp	Mon Jul 31 15:37:57 2017 +0000
@@ -78,11 +78,11 @@
     
     FILE *fpsize = fopen(bitmapSizeFilename, "r");
     if (fpsize != NULL) {
-        // We expect the size value to be 5 digits
-        fread(buff, 5, 1, fpsize);
+        // We allow the size value to be up to 20 digits
+        int numRead = fread(buff, 1, 20, fpsize);
         fclose(fpsize);
 
-        buff[5] = '\0';
+        buff[numRead] = '\0';
         
         sscanf(buff, "%d", &size);
         
@@ -148,7 +148,7 @@
     return true;
 }
 
-void QSPIBitmap::DisplayAt(GuiConst_INT16S X, GuiConst_INT16S Y, GuiConst_INT32S transparentColour)
+void QSPIBitmap::ShowAt(GuiConst_INT16S X, GuiConst_INT16S Y, GuiConst_INT32S transparentColour)
 {
     if(bitmapLoaded) {    
         GuiLib_ShowBitmapAt(data, X, Y, transparentColour);
@@ -163,6 +163,20 @@
     }
 }
 
+void QSPIBitmap::ShowAreaAt(GuiConst_INT16S X, GuiConst_INT16S Y, GuiConst_INT16S AX1, GuiConst_INT16S AY1, GuiConst_INT16S AX2, GuiConst_INT16S AY2, GuiConst_INT32S transparentColour)
+{
+    if(bitmapLoaded) {    
+        GuiLib_ShowBitmapAreaAt(data, X, Y, AX1, AY1, AX2, AY2, transparentColour);
+    } else {
+        char buff[100];
+        sprintf(buff, "Bitmap not loaded - size %d, debugVar1: %d", size, debugVar1);
+        DebugPrint(buff, X, Y);
+        
+        char bitmapSizeFilename[200];
+        sprintf(bitmapSizeFilename, "/qspi/%s_BMP.size", name);
+        DebugPrint(bitmapSizeFilename, X, Y+40);
+    }
+}
 
 // QSPIBitmaps class members
 QSPIBitmaps::QSPIBitmaps()
@@ -177,6 +191,11 @@
     qspibmArray[COMPONENT_INJECTOR_BITMAP] = NULL;
     qspibmArray[COMPONENT_GAS_BITMAP] = NULL;
 
+    qspibmArray[BOOT_SCREEN_BITMAP] = NULL;
+    qspibmArray[BLANK_BACKGROUND_BITMAP] = NULL;
+    qspibmArray[UP_ARROW_BITMAP] = NULL;
+    qspibmArray[DOWN_ARROW_BITMAP] = NULL;
+    
     arraySetUp = false;
 }
 
@@ -205,6 +224,12 @@
         qspibmArray[COMPONENT_INJECTOR_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_Injector");
         qspibmArray[COMPONENT_GAS_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_Gas");
         
+        qspibmArray[BOOT_SCREEN_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_BootScreen");
+        qspibmArray[BLANK_BACKGROUND_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_BlankBackground");
+        
+        qspibmArray[UP_ARROW_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_UpArrow1point5");
+        qspibmArray[DOWN_ARROW_BITMAP] = new QSPIBitmap("GuiStruct_Bitmap_DownArrow1point5");
+        
         arraySetUp = true;
     }    
 }
@@ -213,7 +238,7 @@
 void QSPIBitmaps::DisplayBitmapAtIfLoaded(int bitmapIndex, GuiConst_INT16S X, GuiConst_INT16S Y, GuiConst_INT32S transparentColour)
 {
     if(qspibmArray[bitmapIndex] != NULL) {
-        qspibmArray[bitmapIndex]->DisplayAt(X,  Y, transparentColour);
+        qspibmArray[bitmapIndex]->ShowAt(X,  Y, transparentColour);
     }
 }
 
@@ -263,7 +288,27 @@
     DisplayBitmapAtIfLoaded(COMPONENT_GAS_BITMAP, 609, 19, SixteenBitColorValue(231, 231, 231));
 }
 
+void QSPIBitmaps::DisplayBootScreenBitmap(void)
+{
+    // No transparency on background bitmaps
+    DisplayBitmapAtIfLoaded(BOOT_SCREEN_BITMAP, 0, 0, -1);
+}
 
+void QSPIBitmaps::DisplayBlankBackgroundBitmap(void)
+{
+    // No transparency on background bitmaps
+    DisplayBitmapAtIfLoaded(BLANK_BACKGROUND_BITMAP, 0, 0, -1);
+}
+
+void QSPIBitmaps::DisplayUpArrowBitmap(GuiConst_INT16S X, GuiConst_INT16S Y)
+{
+    DisplayBitmapAtIfLoaded(UP_ARROW_BITMAP, X, Y, -1); // No transparency
+}
+
+void QSPIBitmaps::DisplayDownArrowBitmap(GuiConst_INT16S X, GuiConst_INT16S Y)
+{
+    DisplayBitmapAtIfLoaded(DOWN_ARROW_BITMAP, X, Y, -1); // No transparency
+}
    
 void QSPIBitmaps::ClearArray(void)
 {