]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - stand/lua/screen.lua
lualoader: Re-do twiddle
[FreeBSD/FreeBSD.git] / stand / lua / screen.lua
1 --
2 -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 --
4 -- Copyright (c) 2015 Pedro Souza <pedrosouza@freebsd.org>
5 -- All rights reserved.
6 --
7 -- Redistribution and use in source and binary forms, with or without
8 -- modification, are permitted provided that the following conditions
9 -- are met:
10 -- 1. Redistributions of source code must retain the above copyright
11 --    notice, this list of conditions and the following disclaimer.
12 -- 2. Redistributions in binary form must reproduce the above copyright
13 --    notice, this list of conditions and the following disclaimer in the
14 --    documentation and/or other materials provided with the distribution.
15 --
16 -- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 -- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 -- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 -- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 -- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 -- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 -- SUCH DAMAGE.
27 --
28 -- $FreeBSD$
29 --
30
31 local color = require("color")
32 local core = require("core")
33
34 local screen = {}
35
36 -- Module exports
37 function screen.clear()
38         if core.isSerialBoot() then
39                 return
40         end
41         loader.printc(core.KEYSTR_CSI .. "H" .. core.KEYSTR_CSI .. "J")
42 end
43
44 function screen.setcursor(x, y)
45         if core.isSerialBoot() then
46                 return
47         end
48
49         loader.printc(core.KEYSTR_CSI .. y .. ";" .. x .. "H")
50 end
51
52 function screen.setforeground(color_value)
53         if color.disabled then
54                 return color_value
55         end
56         loader.printc(color.escapef(color_value))
57 end
58
59 function screen.setbackground(color_value)
60         if color.disabled then
61                 return color_value
62         end
63         loader.printc(color.escapeb(color_value))
64 end
65
66 function screen.defcolor()
67         loader.printc(color.default())
68 end
69
70 function screen.defcursor()
71         if core.isSerialBoot() then
72                 return
73         end
74         loader.printc(core.KEYSTR_CSI .. "25;0H")
75 end
76
77 return screen