Annotation of /mcore-src/trunk/mcore-tools/daemon/client/include/graphic.client.class
Parent Directory | Revision Log
Revision 1643 -
(hide annotations)
(download)
Thu Mar 10 18:12:54 2011 UTC (13 years, 6 months ago) by niro
File size: 4802 byte(s)
Thu Mar 10 18:12:54 2011 UTC (13 years, 6 months ago) by niro
File size: 4802 byte(s)
-x11runas checks for X, removed unnecessary checks -use rvecho() for function retvals
1 | niro | 1248 | # $Id$ |
2 | |||
3 | niro | 1258 | provide basic-video |
4 | niro | 1248 | |
5 | niro | 1258 | # todo monitor gfxcard |
6 | helper_graphic_add_configs() | ||
7 | { | ||
8 | local path="$1" | ||
9 | local conf | ||
10 | |||
11 | # exit ERR if path does not exist | ||
12 | [[ ! -d ${path} ]] && return 1 | ||
13 | |||
14 | for conf in $(find "${path}" -mindepth 1 -maxdepth 1 -type f -name \*.conf | sort) | ||
15 | do | ||
16 | cat "${conf}" >> "${CONFIG}" | ||
17 | done | ||
18 | } | ||
19 | |||
20 | # everything from xorg conf but inputdevices. they are handled properly trough udev! | ||
21 | helper_graphic_rebuild_xorg_conf_d() | ||
22 | { | ||
23 | local CONFIG | ||
24 | local conf | ||
25 | |||
26 | # rebuild 25-gfxcard.conf | ||
27 | # always clear the config | ||
28 | CONFIG="/etc/X11/xorg.conf.d/25-device.conf" | ||
29 | clearconfig | ||
30 | # but only add lines if some values are found in config.d dir | ||
31 | if path_not_empty ${MCORE_CONFIG_PATH}/xorg/device | ||
32 | then | ||
33 | addconfig 'Section "Device"' | ||
34 | helper_graphic_add_configs ${MCORE_CONFIG_PATH}/xorg/device | ||
35 | addconfig 'EndSection' | ||
36 | fi | ||
37 | |||
38 | # rebuild 25-module.conf | ||
39 | # always clear the config | ||
40 | CONFIG="/etc/X11/xorg.conf.d/25-module.conf" | ||
41 | clearconfig | ||
42 | # but only add lines if some values are found in config.d dir | ||
43 | if path_not_empty ${MCORE_CONFIG_PATH}/xorg/module | ||
44 | then | ||
45 | addconfig 'Section "Module"' | ||
46 | helper_graphic_add_configs ${MCORE_CONFIG_PATH}/xorg/module | ||
47 | addconfig 'EndSection' | ||
48 | fi | ||
49 | |||
50 | # rebuild 25-screen.conf | ||
51 | # always clear the config | ||
52 | CONFIG="/etc/X11/xorg.conf.d/25-screen.conf" | ||
53 | clearconfig | ||
54 | # but only add lines if some values are found in config.d dir | ||
55 | if path_not_empty ${MCORE_CONFIG_PATH}/xorg/screen | ||
56 | then | ||
57 | addconfig 'Section "Screen"' | ||
58 | addconfig ' Identifier "Screen0"' | ||
59 | addconfig ' Monitor "Monitor0"' | ||
60 | helper_graphic_add_configs ${MCORE_CONFIG_PATH}/xorg/screen | ||
61 | addconfig 'EndSection' | ||
62 | fi | ||
63 | } | ||
64 | |||
65 | niro | 1248 | help_graphic_resolution() |
66 | { | ||
67 | mecho "set graphic.resolution [resolution]" | ||
68 | mecho " 800x600, 1024x768, 1280x1024 etc" | ||
69 | } | ||
70 | |||
71 | help_graphic_refresh() | ||
72 | { | ||
73 | mecho "set graphic.refresh [refresh rate]" | ||
74 | mecho " 60, 100 - all values are Hz" | ||
75 | } | ||
76 | |||
77 | niro | 1258 | help_graphic_depth() |
78 | { | ||
79 | mecho "set graphic.depth [color-depth]" | ||
80 | mecho " 1, 4, 8, 15, 16, 24 - all values are bits" | ||
81 | } | ||
82 | |||
83 | help_graphic_driver() | ||
84 | { | ||
85 | mecho "get graphic.driver [action]" | ||
86 | mecho " Shows current selected or system available graphic drivers." | ||
87 | mecho " Available actions:" | ||
88 | mecho " system - show available drivers on the system" | ||
89 | mecho " current - shows the current selected driver used by Xorg" | ||
90 | mecho | ||
91 | mecho "set graphic.driver [driver]" | ||
92 | mecho " Selects the graphic card driver used by Xorg." | ||
93 | } | ||
94 | |||
95 | niro | 1248 | # set_graphic_resolution ${value} |
96 | set_graphic_resolution() | ||
97 | { | ||
98 | niro | 1258 | local resolution="$1" |
99 | local CONFIG | ||
100 | local depth | ||
101 | [[ -z ${resolution} ]] && help_graphic_resolution && return 1 | ||
102 | niro | 1248 | |
103 | niro | 1258 | CONFIG="${MCORE_CONFIG_PATH}/xorg/screen/20-resolution.conf" |
104 | clearconfig | ||
105 | # do it for all supported color depth | ||
106 | for depth in 1 4 8 15 16 24 | ||
107 | do | ||
108 | addconfig ' SubSection "Display"' | ||
109 | addconfig " Depth ${depth}" | ||
110 | addconfig " Modes \"${resolution}\"" | ||
111 | addconfig ' ViewPort 0 0' | ||
112 | addconfig ' EndSubSection' | ||
113 | done | ||
114 | niro | 1248 | |
115 | niro | 1643 | x11runas "xrandr --size ${resolution}" |
116 | niro | 1258 | |
117 | helper_graphic_rebuild_xorg_conf_d | ||
118 | niro | 1248 | } |
119 | |||
120 | niro | 1258 | # set_graphic_depth ${value} |
121 | set_graphic_depth() | ||
122 | { | ||
123 | local depth="$1" | ||
124 | local CONFIG | ||
125 | [[ -z ${depth} ]] && help_graphic_depth && return 1 | ||
126 | |||
127 | # do it only for supported color depths | ||
128 | case "${depth}" in | ||
129 | 1|4|8|15|16|24) | ||
130 | CONFIG="${MCORE_CONFIG_PATH}/xorg/screen/10-depth.conf" | ||
131 | clearconfig | ||
132 | addconfig " DefaultDepth ${depth}" | ||
133 | ;; | ||
134 | *) help_graphic_depth && return 1 ;; | ||
135 | esac | ||
136 | |||
137 | # if pidof X | ||
138 | # then | ||
139 | # x11runas "xrandr --size ${value}" | ||
140 | # fi | ||
141 | |||
142 | helper_graphic_rebuild_xorg_conf_d | ||
143 | mecho "X11 restart required!" | ||
144 | } | ||
145 | |||
146 | niro | 1248 | # set_graphic_refresh ${value} |
147 | set_graphic_refresh() | ||
148 | { | ||
149 | local value="$1" | ||
150 | niro | 1258 | [[ -z ${value} ]] && help_graphic_refresh && return 1 |
151 | niro | 1248 | |
152 | niro | 1258 | #echo "${value}" > ${SETTINGSPATH}/xorg/refresh |
153 | niro | 1248 | |
154 | niro | 1643 | x11runas "xrandr --refresh ${value}" |
155 | niro | 1248 | |
156 | niro | 1258 | helper_graphic_rebuild_xorg_conf_d |
157 | niro | 1248 | } |
158 | |||
159 | niro | 1258 | set_graphic_driver() |
160 | niro | 1248 | { |
161 | niro | 1258 | local driver="$1" |
162 | local driverdir="/usr/lib/xorg/modules/drivers" | ||
163 | local CONFIG | ||
164 | [[ -z ${driver} ]] && help_graphic_driver && return 1 | ||
165 | niro | 1248 | |
166 | niro | 1258 | if [[ -f ${driverdir}/${driver}_drv.so ]] |
167 | then | ||
168 | CONFIG="${MCORE_CONFIG_PATH}/xorg/device/25-device.conf" | ||
169 | clearconfig | ||
170 | addconfig " Identifier \"Card0\"" | ||
171 | addconfig " Driver \"${driver}\"" | ||
172 | niro | 1248 | |
173 | niro | 1258 | helper_graphic_rebuild_xorg_conf_d |
174 | mecho "X11 restart required!" | ||
175 | else | ||
176 | eecho "Driver '${driver}' does not exist on this system. Aborted!" | ||
177 | niro | 1248 | fi |
178 | } | ||
179 | |||
180 | niro | 1258 | get_graphic_driver() |
181 | niro | 1248 | { |
182 | niro | 1258 | local action="$1" |
183 | local driverdir="/usr/lib/xorg/modules/drivers" | ||
184 | local driver | ||
185 | local config="${MCORE_CONFIG_PATH}/xorg/device/25-device.conf" | ||
186 | local i | ||
187 | niro | 1248 | |
188 | niro | 1258 | case "${action}" in |
189 | current) | ||
190 | if [[ -f ${config} ]] | ||
191 | then | ||
192 | driver=$(grep Driver "${config}" | sed 's:.*Driver.*\"\(.*\)\":\1:') | ||
193 | niro | 1643 | rvecho "${driver}" |
194 | niro | 1258 | else |
195 | niro | 1643 | rvecho "none" |
196 | niro | 1258 | fi |
197 | ;; | ||
198 | system) | ||
199 | for i in $(find ${driverdir} -mindepth 1 -maxdepth 1 -type f | sort) | ||
200 | do | ||
201 | driver="${driver} $(basename ${i} _drv.so)" | ||
202 | done | ||
203 | niro | 1643 | rvecho "${driver}" |
204 | niro | 1258 | ;; |
205 | *) | ||
206 | help_graphic_driver | ||
207 | return 1 | ||
208 | ;; | ||
209 | esac | ||
210 | niro | 1248 | } |