Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
Diff: QSPIBitmap.cpp
- 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)
{