allow splash image to be loaded from SD on Horus (#5463)

* allow splash image to be loaded from SD on Horus

* added a new menu entry to assign splash screen
This commit is contained in:
Raphael Coeffic
2017-12-19 12:15:03 +01:00
committed by Bertrand Songis
parent 0d7832b208
commit 716a91fc0c
8 changed files with 43 additions and 3 deletions
@@ -128,6 +128,10 @@ void onSdManagerMenu(const char * result)
memcpy(g_model.header.bitmap, line, sizeof(g_model.header.bitmap));
storageDirty(EE_MODEL);
}
else if (result == STR_ASSIGN_SPLASH) {
f_getcwd(lfn, _MAX_LFN);
sdCopyFile(line, lfn, SPLASH_FILE, BITMAPS_PATH);
}
else if (result == STR_VIEW_TEXT) {
getSelectionFullPath(lfn);
pushMenuTextView(lfn);
@@ -219,6 +223,9 @@ bool menuRadioSdManager(event_t _event)
if (!READ_ONLY() && unsigned(strlen(ext)+ext-line) <= sizeof(g_model.header.bitmap) && !strcmp(lfn, BITMAPS_PATH)) {
POPUP_MENU_ADD_ITEM(STR_ASSIGN_BITMAP);
}
if (!strcmp(ext, PNG_EXT)) {
POPUP_MENU_ADD_ITEM(STR_ASSIGN_SPLASH);
}
}
else if (!strcasecmp(ext, TEXT_EXT)) {
POPUP_MENU_ADD_ITEM(STR_VIEW_TEXT);
+26 -3
View File
@@ -19,13 +19,36 @@
*/
#include "opentx.h"
#include "bmp_splash.lbm"
#if defined(SPLASH)
#include "bmp_splash.lbm"
void drawSplash()
{
lcd->clear();
lcd->drawBitmap((LCD_W-BMP_SPLASH.getWidth())/2, (LCD_H-BMP_SPLASH.getHeight())/2, &BMP_SPLASH);
static bool loadImgFromSD = true;
static BitmapBuffer* splashImg = NULL;
if (loadImgFromSD && splashImg == NULL) {
bool sd_mounted = sdMounted();
if (!sd_mounted) sdInit();
splashImg = BitmapBuffer::load(BITMAPS_PATH "/" SPLASH_FILE);
loadImgFromSD = false;
if (!sd_mounted) sdDone();
}
lcd->clear();
if (splashImg) {
lcd->drawBitmap((LCD_W - splashImg->getWidth())/2,
(LCD_H - splashImg->getHeight())/2,
splashImg);
}
else {
lcd->drawBitmap((LCD_W - BMP_SPLASH.getWidth())/2,
(LCD_H - BMP_SPLASH.getHeight())/2,
&BMP_SPLASH);
}
#if MENUS_LOCK == 1
if (readonly == false) {
+1
View File
@@ -49,6 +49,7 @@
#if defined(COLORLCD)
const char RADIO_MODELSLIST_PATH[] = RADIO_PATH "/models.txt";
const char RADIO_SETTINGS_PATH[] = RADIO_PATH "/radio.bin";
#define SPLASH_FILE "splash.png"
#endif
#define MODELS_EXT ".bin"
+3
View File
@@ -556,6 +556,9 @@ const pm_char STR_SCRIPT_KILLED[] PROGMEM = TR_SCRIPT_KILLED;
const pm_char STR_SCRIPT_ERROR[] PROGMEM = TR_SCRIPT_ERROR;
const pm_char STR_PLAY_FILE[] PROGMEM = TR_PLAY_FILE;
const pm_char STR_ASSIGN_BITMAP[] PROGMEM = TR_ASSIGN_BITMAP;
#if defined(PCBHORUS)
const pm_char STR_ASSIGN_SPLASH[] PROGMEM = TR_ASSIGN_SPLASH;
#endif
const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE;
const pm_char STR_DELETE_FILE[] PROGMEM = TR_DELETE_FILE;
const pm_char STR_COPY_FILE[] PROGMEM = TR_COPY_FILE;
+3
View File
@@ -790,6 +790,9 @@ extern const pm_char STR_SCRIPT_KILLED[];
extern const pm_char STR_SCRIPT_ERROR[];
extern const pm_char STR_PLAY_FILE[];
extern const pm_char STR_ASSIGN_BITMAP[];
#if defined(PCBHORUS)
extern const pm_char STR_ASSIGN_SPLASH[];
#endif
extern const pm_char STR_EXECUTE_FILE[];
extern const pm_char STR_DELETE_FILE[];
extern const pm_char STR_COPY_FILE[];
+1
View File
@@ -968,6 +968,7 @@
#define TR_COPY_FILE "Kopieren"
#define TR_RENAME_FILE "Umbenennen"
#define TR_ASSIGN_BITMAP "Bitmap zuordnen"
#define TR_ASSIGN_SPLASH "Als Startbild"
#define TR_EXECUTE_FILE "Execute"
#define TR_REMOVED " gelöscht"
#define TR_SD_INFO "Information"
+1
View File
@@ -951,6 +951,7 @@
#define TR_COPY_FILE "Copy"
#define TR_RENAME_FILE "Rename"
#define TR_ASSIGN_BITMAP "Assign bitmap"
#define TR_ASSIGN_SPLASH "Splash screen"
#define TR_EXECUTE_FILE "Execute"
#define TR_REMOVED " removed"
#define TR_SD_INFO "Information"
+1
View File
@@ -965,6 +965,7 @@
#define TR_COPY_FILE "Copier"
#define TR_RENAME_FILE "Renommer"
#define TR_ASSIGN_BITMAP "Sélectionner image"
#define TR_ASSIGN_SPLASH "Logo d'accueil"
#define TR_EXECUTE_FILE "Exécuter"
#define TR_REMOVED " supprimé"
#define TR_SD_INFO "Information"