a36e991507563f2d59e9dd51a885b19b95adf85b
[petitboot] / ui / test / pb-test.c
1
2 #include <stdio.h>
3
4 #include "ui/common/discover-client.h"
5 #include "ui/common/device.h"
6
7 static int print_device_add(struct device *device)
8 {
9         int i;
10
11         printf("new device:\n");
12         printf("\tid:   %s\n", device->id);
13         printf("\tname: %s\n", device->name);
14         printf("\tdesc: %s\n", device->description);
15         printf("\ticon: %s\n", device->icon_file);
16
17         printf("\t%d boot options:\n", device->n_options);
18         for (i = 0; i < device->n_options; i++) {
19                 struct boot_option *opt = &device->options[i];
20                 printf("\t\tid:   %s\n", opt->id);
21                 printf("\t\tname: %s\n", opt->name);
22                 printf("\t\tdesc: %s\n", opt->description);
23                 printf("\t\ticon: %s\n", opt->icon_file);
24                 printf("\t\tboot: %s\n", opt->boot_image_file);
25                 printf("\t\tinit: %s\n", opt->initrd_file);
26                 printf("\t\targs: %s\n", opt->boot_args);
27         }
28
29         return 0;
30 }
31
32 static void print_device_remove(const char *dev_id)
33 {
34         printf("removed device:\n");
35         printf("\tid:   %s\n", dev_id);
36 }
37
38 struct discover_client_ops client_ops = {
39         .add_device = print_device_add,
40         .remove_device = print_device_remove,
41 };
42
43 int main(void)
44 {
45         struct discover_client *client;
46
47         printf("pid: %d\n", getpid());
48
49         client = discover_client_init(&client_ops);
50         if (!client)
51                 return -1;
52
53         for (;;) {
54                 int rc;
55
56                 rc = discover_client_process(client);
57                 if (rc)
58                         break;
59         }
60
61         return 0;
62 }