To start an application from your window manager, you need to publish
(using a write() call) a start command to the PPS launcher control object.
Publish start command to the PPS object
After having opened the /pps/services/launcher/control object for
publishing, call write() to modify the
object's attributes. Use the appropriate message
format with the valid start command.
#define CMD_START "start"
...
int msgsize;
char msgbuf[4096];
int ret = 0;
char *id = strdup("101");
char *data = strdup("HelloWebWorks.testDev_lloWebWorks1fa80f60");
...
msgsize = snprintf(msgbuf,
sizeof(msgbuf),
"msg::%s\ndat::%s\nid::%s", CMD_START, data, id);
ret = write(pps_fd, msgbuf, (unsigned)msgsize);
The figure below shows the basic steps for launching an application:
- The device driver writes an event letting Screen know that someone has tried to launch an applicaiton.
- Window manager learns about the event through the Screen API.
- Window manager publishes to a PPS object so that interested components can know about the request to
launch an application.
- The launcher reads the PPS object and begins launch procedures.
- The launcher asks the authorization manager to check permissions to launch the application.
- When it receives authorization, the launcher completes the application launch.
- The application uses the Screen API to tell Screen that it is present and ready to be displayed.
Figure 1. Step-by-step view of how window manager launches an application