@@ -27,6 +27,22 @@ void setColor(u8 *cfgColor, const char *color) {
2727 cfgColor [2 ] = (u8 ) (l & 0xFF );
2828}
2929
30+ void setColorAlpha (u8 * cfgColor , const char * color ) {
31+ if ( (color [6 ] >= '0' && color [6 ] <= '9' ) || (color [6 ] >= 'A' && color [6 ] <= 'F' ) || (color [6 ] >= 'a' && color [6 ] <= 'f' ) )
32+ {
33+ long l = strtoul (color , NULL , 16 );
34+ cfgColor [0 ] = (u8 ) (l >> 8 & 0xFF );
35+ cfgColor [1 ] = (u8 ) (l >> 16 & 0xFF );
36+ cfgColor [2 ] = (u8 ) (l >> 24 & 0xFF );
37+ cfgColor [3 ] = (u8 ) (l & 0xFF );
38+ }
39+ else
40+ {
41+ setColor (cfgColor , color );
42+ cfgColor [3 ] = 0xFF ;
43+ }
44+ }
45+
3046static char * ini_buffer_reader (char * str , int num , void * stream ) {
3147 buffer_ctx * ctx = (buffer_ctx * ) stream ;
3248 int idx = 0 ;
@@ -92,8 +108,8 @@ static int handler(void *user, const char *section, const char *name,
92108 setColor (config -> bgTop2 , item );
93109 } else if (MATCH ("theme" , "bgBottom" )) {
94110 setColor (config -> bgBot , item );
95- } else if (MATCH ("theme" , "highlight" )) {
96- setColor (config -> highlight , item );
111+ } else if (MATCH ("theme" , "highlight" )) {
112+ setColorAlpha (config -> highlight , item );
97113 } else if (MATCH ("theme" , "borders" )) {
98114 setColor (config -> borders , item );
99115 } else if (MATCH ("theme" , "font1" )) {
@@ -239,7 +255,10 @@ void configSave() {
239255 size += snprintf (cfg + size , 256 , "bgTop1=%02X%02X%02X;\n" , config -> bgTop1 [0 ], config -> bgTop1 [1 ], config -> bgTop1 [2 ]);
240256 size += snprintf (cfg + size , 256 , "bgTop2=%02X%02X%02X;\n" , config -> bgTop2 [0 ], config -> bgTop2 [1 ], config -> bgTop2 [2 ]);
241257 size += snprintf (cfg + size , 256 , "bgBottom=%02X%02X%02X;\n" , config -> bgBot [0 ], config -> bgBot [1 ], config -> bgBot [2 ]);
242- size += snprintf (cfg + size , 256 , "highlight=%02X%02X%02X;\n" , config -> highlight [0 ], config -> highlight [1 ], config -> highlight [2 ]);
258+ if ( config -> highlight [3 ] < 0xFF )
259+ size += snprintf (cfg + size , 256 , "highlight=%02X%02X%02X%02X;\n" , config -> highlight [2 ], config -> highlight [1 ], config -> highlight [0 ], config -> highlight [3 ]);
260+ else
261+ size += snprintf (cfg + size , 256 , "highlight=%02X%02X%02X;\n" , config -> highlight [0 ], config -> highlight [1 ], config -> highlight [2 ]);
243262 size += snprintf (cfg + size , 256 , "borders=%02X%02X%02X;\n" , config -> borders [0 ], config -> borders [1 ], config -> borders [2 ]);
244263 size += snprintf (cfg + size , 256 , "font1=%02X%02X%02X;\n" , config -> fntDef [0 ], config -> fntDef [1 ], config -> fntDef [2 ]);
245264 size += snprintf (cfg + size , 256 , "font2=%02X%02X%02X;\n" , config -> fntSel [0 ], config -> fntSel [1 ], config -> fntSel [2 ]);
@@ -250,7 +269,7 @@ void configSave() {
250269 size += snprintf (cfg + size , 256 , "[entry];\n" );
251270 size += snprintf (cfg + size , 256 , "title=%s;\n" , config -> entries [i ].title );
252271 size += snprintf (cfg + size , 256 , "path=%s;\n" , config -> entries [i ].path );
253- size += snprintf (cfg + size , 256 , "offset=%ld ;\n" , config -> entries [i ].offset );
272+ size += snprintf (cfg + size , 256 , "offset=%x ;\n" , ( int ) config -> entries [i ].offset );
254273 size += snprintf (cfg + size , 256 , "key=%i;\n\n" , config -> entries [i ].key );
255274 }
256275#ifdef ARM9
0 commit comments