Action Item #316
Create app manager
|Status:||Closed||Start date:||18 Apr 2014|
|Category:||04 - Root File System|
|Severity:||02 - High|
The app manager will be used to launch applications. Since we're not using wm title bars and want to use the left panel for navigation we need something that manages what application is currently displayed.The way this will work is
- The left panel buttons send a message of "start:app path" to the app manager. This message is sent via a network connection, possibly via something like nc.
- The app manager parses the message and checks if the app is already running. If it is, nothing is done.
- If the app is not running it is started. This causes it to show at the front of the Matchbox WM stack.
- Any previous application is stopped by sending it a "stop:app path". This reduces load on the RPi.
All apps must have a simple server that can receive messages. They only accept messages from localhost. They only honor "stop" requests.
The app manager could be a windowless client to make it easier to start and stop child processes on the DISPLAY. The app manager should have a configurable list of allowable apps.
RM #316: Updated to reflect tests being able to run from top level or tests directory.
RM #316: Move lock handling to a separate function so it can be called whether daemonized or not. Move logging init earlier. Clean up lock file on exit.
RM #316: Stop current process on shutdown. Provide more thorough handling of app killing.
RM #316: Add interface script that handles Matchbox->appmgr messaging. Fix packaging so its appropriate for the appmgr package.
#1 Updated by Hammel almost 4 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
The initial version of this is complete and checked in. I'm in the process of writing unit tests against message formats to make sure it operates as expected.
As a side note: I'll probably have to write a shell script to send the proper message to the daemon since its not possible to format it directly on the ncat command line.
#2 Updated by Hammel almost 4 years ago
- % Done changed from 30 to 70
Wrote unit tests and ran them against the appmgr. I verified a number of things, the most important of which is that the intended use is functional: start one app, then start another and kill the first. I tested this with xterm and xeyes and its seems to work just fine.
All code updates and unit tests are committed and pushed upstream.
I now need packaging to verify cross compile and packaging. I also need the script that Matchbox panel buttons will call to communicate with appmgr. Also: update pmsui's desktop.sh to test for /usr/bin/appmgr and, if found, start it without logging.
#3 Updated by Hammel almost 4 years ago
- Status changed from In Progress to Closed
- % Done changed from 70 to 100
The appmgr package is complete. Panel buttons correctly launch alternate applications. Removal of the package (along with the piboxmediaserverui) returns the UI to the default PiBox Development Platform blackbox interface.
This issue can be closed.