Commit | Line | Data |
---|---|---|
a09e091a JB |
1 | #!/usr/bin/awk -f |
2 | # | |
3 | # Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>. | |
4 | # All rights reserved. | |
5 | # | |
6 | # Based on Perl script by Dirk Hohndel. | |
7 | # | |
8 | # Redistribution and use in source and binary forms, with or without | |
9 | # modification, are permitted provided that the following conditions | |
10 | # are met: | |
11 | # | |
12 | # 1. Redistributions of source code must retain the above copyright | |
13 | # notice, this list of conditions and the following disclaimer. | |
14 | # 2. Redistributions in binary form must reproduce the above copyright | |
15 | # notice, this list of conditions and the following disclaimer in | |
16 | # the documentation and/or other materials provided with the | |
17 | # distribution. | |
18 | # | |
19 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | |
22 | # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | |
23 | # COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | |
24 | # INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, | |
25 | # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
26 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | |
27 | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |
28 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |
29 | # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
30 | # SUCH DAMAGE. | |
31 | # | |
32 | # Usage: modeline2c.awk < modefile > xf86DefModeSet.c | |
33 | # | |
34 | ||
35 | BEGIN { | |
36 | flagsdict[""] = "0" | |
37 | ||
38 | flagsdict["+hsync +vsync"] = "V_PHSYNC | V_PVSYNC" | |
39 | flagsdict["+hsync -vsync"] = "V_PHSYNC | V_NVSYNC" | |
40 | flagsdict["-hsync +vsync"] = "V_NHSYNC | V_PVSYNC" | |
41 | flagsdict["-hsync -vsync"] = "V_NHSYNC | V_NVSYNC" | |
42 | flagsdict["+hsync +vsync interlace"] = "V_PHSYNC | V_PVSYNC | V_INTERLACE" | |
43 | flagsdict["+hsync -vsync interlace"] = "V_PHSYNC | V_NVSYNC | V_INTERLACE" | |
44 | flagsdict["-hsync +vsync interlace"] = "V_NHSYNC | V_PVSYNC | V_INTERLACE" | |
45 | flagsdict["-hsync -vsync interlace"] = "V_NHSYNC | V_NVSYNC | V_INTERLACE" | |
46 | ||
47 | print "/* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at" | |
48 | print " * modeline2c.awk */" | |
49 | print "" | |
50 | print "/*" | |
51 | print " * Author: Joerg Sonnenberger <joerg@NetBSD.org>" | |
52 | print " * Based on Perl script from Dirk Hohndel <hohndel@XFree86.Org>" | |
53 | print " */" | |
54 | print "" | |
55 | print "#ifdef HAVE_XORG_CONFIG_H" | |
56 | print "#include <xorg-config.h>" | |
57 | print "#endif" | |
58 | print "" | |
59 | print "#include \"xf86.h\"" | |
60 | print "#include \"xf86Config.h\"" | |
61 | print "#include \"xf86Priv.h\"" | |
62 | print "#include \"xf86_OSlib.h\"" | |
63 | print "" | |
64 | print "#include \"globals.h\"" | |
65 | print "" | |
66 | print "#define MODEPREFIX NULL, NULL, NULL, MODE_OK, M_T_DEFAULT" | |
67 | print "#define MODESUFFIX 0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0" | |
68 | print "" | |
69 | print "const DisplayModeRec xf86DefaultModes [] = {" | |
70 | ||
71 | modeline = "\t{MODEPREFIX,%d, %d,%d,%d,%d,0, %d,%d,%d,%d,0, %s, MODESUFFIX},\n" | |
72 | modeline_data = "^[a-zA-Z]+[ \t]+[^ \t]+[ \t0-9.]+" | |
73 | } | |
74 | ||
75 | /^[mM][oO][dD][eE][lL][iI][nN][eE]/ { | |
76 | flags = $0 | |
77 | gsub(modeline_data, "", flags) | |
78 | flags = tolower(flags) | |
79 | printf(modeline, $3 * 1000, $4, $5, $6, $7, | |
80 | $8, $9, $10, $11, flagsdict[flags]) | |
81 | # Half-width double scanned modes | |
82 | printf(modeline, $3 * 500, $4/2, $5/2, $6/2, $7/2, | |
83 | $8/2, $9/2, $10/2, $11/2, flagsdict[flags] " | V_DBLSCAN") | |
84 | } | |
85 | ||
86 | /^#/ { | |
87 | print "/*" substr($0, 2) " */" | |
88 | } | |
89 | ||
90 | END { | |
91 | print "};" | |
92 | printf "const int xf86NumDefaultModes = sizeof(xf86DefaultModes) / sizeof(DisplayModeRec);" | |
93 | } |