Bug #1095
closedChange Xeon launcher to use 5xN array for icons.
Added by Hammel 11 months ago. Updated 9 months ago.
100%
Description
- Use a status bar at the top
- Use a 5xN array for icons in the center but always start the icon displays in the upper left corner..
- Use an icon bar at the bottom of the same size as the central 5xN array icons.
Files
launcher.log (4.62 KB) launcher.log | launcher -v3 output | Hammel, 24 Jan 2024 10:10 | |
launcher-error.log (6.78 KB) launcher-error.log | launcher stderr output | Hammel, 24 Jan 2024 10:10 |
Updated by Hammel 11 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
It will likely be easier to start this with a separate createWindowXeon() since the layouts are going to be very different between Xeon and PiBox.
The main difference will be in calculating the number of rows for the icon section, and setting up the status and icon bars.
I'm going to skip the icons bar for now since tap/hold/slide is more work than I care to do on Xeon.
Updated by Hammel 11 months ago
- File launcher.log launcher.log added
- File launcher-error.log launcher-error.log added
Updated by Hammel 10 months ago
Found a minor bug when running dbLoad() for noshows that reset the appList to point to appNoShow. I fixed that but I still run into some bug where the two lists are identifical (and apparently empty but with garbage data in them.
Program received signal SIGSEGV, Segmentation fault.
0x0000fffff7683678 in g_slist_length () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0 0x0000fffff7683678 in g_slist_length () from /usr/lib/libglib-2.0.so.0
#1 0x0000000000407a70 in dbGetLength (noshow=0) at db.c:468
#2 0x0000000000407228 in resizeIcons (width=4684976, height=0) at db.c:258
#3 0x00000000004065f4 in main (argc=4, argv=0xfffffffffc58) at launcher.c:1439
(gdb) fr 2
#2 0x0000000000407228 in resizeIcons (width=4684976, height=0) at db.c:258
258 db.c: No such file or directory.
(gdb) print appList
$1 = (GSList *) 0x5364b0
(gdb) print (GSList *)*appList
$2 = (GSList *) 0x475200
(gdb) print (GSList *)appLrk818-bat: changed: dsoc=62, rsoc=62, v=3784, ov=3917 c=-548, cap=1670, f=2708, st=charge off, hot0
rk818-bat: dl=63, rl=62, v=3789, halt=0, halt_n=0, max=0, init=0, sw=0, calib=0, below0=0, force=0
ist
$3 = (GSList *) 0x5364b0
(gdb) print *appList
$4 = {data = 0x475200, next = 0x200000001}
(gdb) print *applist->data
No symbol "applist" in current context.
(gdb) print *appList->data
Attempt to dereference a generic pointer.
(gdb) print *appNoShow
$5 = {data = 0x475200, next = 0x200000001}
(gdb) quit
I need to trace the list head to see when it changes, like before and after each call to dbLoad().
Updated by Hammel 9 months ago
- % Done changed from 20 to 60
The problem here was that there was a static sized array of drawing areas in a gtk table. That was fine for PiBox devices but Xeon has a much larger space (9x5, based on icon size and using 5 columns max) so the code that walked through the rows/columns overwrote the static array. I've change this to be dynamically allocated and that doesn't crash on Xeon but the code will need to be tested on PiBox too.
The next problem is that the display only fills the number of icons I have so most of the table (which takes up the whole display) is not initialized to the common background.
After that there is the problem that the launcher doesn't operate and running it from the command line (via serial port) doesn't allow me to use Ctrl-C to kill it. Might be that signals are disabled, but I'll need to check that.
Killing the app manually and the fact that it doesn't work because it's not recognized as a touch screen are issues outside the scope of this RM issue. I'll track them in separate issues.