Initial code release
[external/syslinux.git] / com32 / hdt / hdt-menu-syslinux.c
1 /* ----------------------------------------------------------------------- *
2  *
3  *   Copyright 2009 Erwan Velu - All Rights Reserved
4  *
5  *   Permission is hereby granted, free of charge, to any person
6  *   obtaining a copy of this software and associated documentation
7  *   files (the "Software"), to deal in the Software without
8  *   restriction, including without limitation the rights to use,
9  *   copy, modify, merge, publish, distribute, sublicense, and/or
10  *   sell copies of the Software, and to permit persons to whom
11  *   the Software is furnished to do so, subject to the following
12  *   conditions:
13  *
14  *   The above copyright notice and this permission notice shall
15  *   be included in all copies or substantial portions of the Software.
16  *
17  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19  *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21  *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22  *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23  *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24  *   OTHER DEALINGS IN THE SOFTWARE.
25  *
26  * -----------------------------------------------------------------------
27  */
28
29 #include "syslinux/config.h"
30 #include "hdt-menu.h"
31
32 /* Computing Syslinux menu */
33 void compute_syslinuxmenu(struct s_my_menu *menu, struct s_hardware *hardware)
34 {
35     char syslinux_fs_menu[24];
36     char buffer[SUBMENULEN + 1];
37     char statbuffer[STATLEN + 1];
38
39     memset(syslinux_fs_menu, 0, sizeof syslinux_fs_menu);
40
41     snprintf(syslinux_fs_menu, sizeof syslinux_fs_menu, " %s ",
42              hardware->syslinux_fs);
43     menu->menu = add_menu(syslinux_fs_menu, -1);
44     menu->items_count = 0;
45     set_menu_pos(SUBMENU_Y, SUBMENU_X);
46
47     snprintf(buffer, sizeof buffer, "Bootloader : %s", hardware->syslinux_fs);
48     snprintf(statbuffer, sizeof statbuffer, "Bootloader: %s",
49              hardware->syslinux_fs);
50     add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
51     menu->items_count++;
52
53     snprintf(buffer, sizeof buffer, "Version    : %s",
54              hardware->sv->version_string);
55     snprintf(statbuffer, sizeof statbuffer, "Version: %s",
56              hardware->sv->version_string);
57     add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
58     menu->items_count++;
59
60     snprintf(buffer, sizeof buffer, "Version    : %u", hardware->sv->version);
61     snprintf(statbuffer, sizeof statbuffer, "Version: %u",
62              hardware->sv->version);
63     add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
64     menu->items_count++;
65
66     snprintf(buffer, sizeof buffer, "Max API    : %u", hardware->sv->max_api);
67     snprintf(statbuffer, sizeof statbuffer, "Max API: %u",
68              hardware->sv->max_api);
69     add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
70     menu->items_count++;
71
72     add_item("", "", OPT_SEP, "", 0);
73
74     snprintf(buffer, sizeof buffer, "%s", hardware->sv->copyright_string);
75     /* Remove the trailing LF in the copyright string to avoid scrolling */
76     snprintf(statbuffer, sizeof statbuffer, "%s",
77              remove_trailing_lf((char *)hardware->sv->copyright_string));
78     add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
79     menu->items_count++;
80
81     printf("MENU: Syslinux menu done (%d items)\n", menu->items_count);
82 }