Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/src/modules/basic-video/graphic.client.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2018 - (show annotations) (download)
Mon Aug 13 11:08:28 2012 UTC (11 years, 9 months ago) by niro
Original Path: mcore-src/trunk/mcore-tools/daemon/client/include/graphic.client.class
File size: 5113 byte(s)
-support $MROOT variable
1 # $Id$
2
3 provide basic-video
4
5 # 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="${MROOT}/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 ${MROOT}/${MCORE_CONFIG_PATH}/xorg/device
32 then
33 addconfig 'Section "Device"'
34 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/device
35 addconfig 'EndSection'
36 fi
37
38 # rebuild 25-module.conf
39 # always clear the config
40 CONFIG="${MROOT}/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 ${MROOT}/${MCORE_CONFIG_PATH}/xorg/module
44 then
45 addconfig 'Section "Module"'
46 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/module
47 addconfig 'EndSection'
48 fi
49
50 # rebuild 25-screen.conf
51 # always clear the config
52 CONFIG="${MROOT}/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 ${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen
56 then
57 addconfig 'Section "Screen"'
58 addconfig ' Identifier "Screen0"'
59 addconfig ' Monitor "Monitor0"'
60 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen
61 addconfig 'EndSection'
62 fi
63 }
64
65 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 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 # set_graphic_resolution ${value}
96 set_graphic_resolution()
97 {
98 local resolution="$1"
99 local CONFIG
100 local depth
101 [[ -z ${resolution} ]] && help_graphic_resolution && return 1
102
103 CONFIG="${MROOT}/${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
115 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
116 then
117 x11runas "xrandr --size ${resolution}"
118 fi
119
120 helper_graphic_rebuild_xorg_conf_d
121 }
122
123 # set_graphic_depth ${value}
124 set_graphic_depth()
125 {
126 local depth="$1"
127 local CONFIG
128 [[ -z ${depth} ]] && help_graphic_depth && return 1
129
130 # do it only for supported color depths
131 case "${depth}" in
132 1|4|8|15|16|24)
133 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen/10-depth.conf"
134 clearconfig
135 addconfig " DefaultDepth ${depth}"
136 ;;
137 *) help_graphic_depth && return 1 ;;
138 esac
139
140 helper_graphic_rebuild_xorg_conf_d
141 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
142 then
143 mecho "X11 restart required!"
144 fi
145 }
146
147 # set_graphic_refresh ${value}
148 set_graphic_refresh()
149 {
150 local value="$1"
151 [[ -z ${value} ]] && help_graphic_refresh && return 1
152
153 #echo "${value}" > ${MROOT}/${MCORE_CONFIG_PATH}/xorg/refresh
154
155 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
156 then
157 x11runas "xrandr --refresh ${value}"
158 fi
159
160 helper_graphic_rebuild_xorg_conf_d
161 }
162
163 set_graphic_driver()
164 {
165 local driver="$1"
166 local driverdir="/usr/lib/xorg/modules/drivers"
167 local CONFIG
168 [[ -z ${driver} ]] && help_graphic_driver && return 1
169
170 if [[ -f ${MROOT}/${driverdir}/${driver}_drv.so ]]
171 then
172 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/device/25-device.conf"
173 clearconfig
174 addconfig " Identifier \"Card0\""
175 addconfig " Driver \"${driver}\""
176
177 helper_graphic_rebuild_xorg_conf_d
178 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
179 then
180 mecho "X11 restart required!"
181 fi
182 else
183 eecho "Driver '${driver}' does not exist on this system. Aborted!"
184 fi
185 }
186
187 get_graphic_driver()
188 {
189 local action="$1"
190 local driverdir="/usr/lib/xorg/modules/drivers"
191 local driver
192 local config="${MCORE_CONFIG_PATH}/xorg/device/25-device.conf"
193 local i
194
195 case "${action}" in
196 current)
197 if [[ -f ${MROOT}/${config} ]]
198 then
199 driver=$(grep Driver "${MROOT}/${config}" | sed 's:.*Driver.*\"\(.*\)\":\1:')
200 rvecho "${driver}"
201 else
202 rvecho "none"
203 fi
204 ;;
205 system)
206 for i in $(find ${MROOT}/${driverdir} -mindepth 1 -maxdepth 1 -type f | sort)
207 do
208 driver="${driver} $(basename ${i} _drv.so)"
209 done
210 rvecho "${driver}"
211 ;;
212 *)
213 help_graphic_driver
214 return 1
215 ;;
216 esac
217 }