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 2665 - (show annotations) (download)
Thu Nov 19 15:03:59 2015 UTC (8 years, 5 months ago) by niro
File size: 5385 byte(s)
-ignore driver settings while autodetection was requested
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}@@SYSCONFDIR@@/X11/xorg.conf.d/25-device.conf"
29 clearconfig
30 addconfig "# Autogenerated by mcored"
31 # but only add lines if some values are found in config.d dir
32 if path_not_empty ${MROOT}/${MCORE_CONFIG_PATH}/xorg/device
33 then
34 addconfig 'Section "Device"'
35 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/device
36 addconfig 'EndSection'
37 fi
38
39 # rebuild 25-module.conf
40 # always clear the config
41 CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/25-module.conf"
42 clearconfig
43 addconfig "# Autogenerated by mcored"
44 # but only add lines if some values are found in config.d dir
45 if path_not_empty ${MROOT}/${MCORE_CONFIG_PATH}/xorg/module
46 then
47 addconfig 'Section "Module"'
48 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/module
49 addconfig 'EndSection'
50 fi
51
52 # rebuild 25-screen.conf
53 # always clear the config
54 CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/25-screen.conf"
55 clearconfig
56 addconfig "# Autogenerated by mcored"
57 # but only add lines if some values are found in config.d dir
58 if path_not_empty ${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen
59 then
60 addconfig 'Section "Screen"'
61 addconfig ' Identifier "Screen0"'
62 addconfig ' Monitor "Monitor0"'
63 helper_graphic_add_configs ${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen
64 addconfig 'EndSection'
65 fi
66 }
67
68 help_graphic_resolution()
69 {
70 mecho "set graphic.resolution [resolution]"
71 mecho " 800x600, 1024x768, 1280x1024 etc"
72 }
73
74 help_graphic_refresh()
75 {
76 mecho "set graphic.refresh [refresh rate]"
77 mecho " 60, 100 - all values are Hz"
78 }
79
80 help_graphic_depth()
81 {
82 mecho "set graphic.depth [color-depth]"
83 mecho " 1, 4, 8, 15, 16, 24 - all values are bits"
84 }
85
86 help_graphic_driver()
87 {
88 mecho "get graphic.driver [action]"
89 mecho " Shows current selected or system available graphic drivers."
90 mecho " Available actions:"
91 mecho " system - show available drivers on the system"
92 mecho " current - shows the current selected driver used by Xorg"
93 mecho
94 mecho "set graphic.driver [driver]"
95 mecho " Selects the graphic card driver used by Xorg."
96 }
97
98 # set_graphic_resolution ${value}
99 set_graphic_resolution()
100 {
101 local resolution="${CLASS_ARGV[0]}"
102 local CONFIG
103 local depth
104 [[ -z ${resolution} ]] && help_graphic_resolution && return 1
105
106 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen/20-resolution.conf"
107 clearconfig
108 # do it for all supported color depth
109 for depth in 1 4 8 15 16 24
110 do
111 addconfig ' SubSection "Display"'
112 addconfig " Depth ${depth}"
113 addconfig " Modes \"${resolution}\""
114 addconfig ' ViewPort 0 0'
115 addconfig ' EndSubSection'
116 done
117
118 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
119 then
120 x11runas "xrandr --size ${resolution}"
121 fi
122
123 helper_graphic_rebuild_xorg_conf_d
124 }
125
126 # set_graphic_depth ${value}
127 set_graphic_depth()
128 {
129 local depth="${CLASS_ARGV[0]}"
130 local CONFIG
131 [[ -z ${depth} ]] && help_graphic_depth && return 1
132
133 # do it only for supported color depths
134 case "${depth}" in
135 1|4|8|15|16|24)
136 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen/10-depth.conf"
137 clearconfig
138 addconfig " DefaultDepth ${depth}"
139 ;;
140 *) help_graphic_depth && return 1 ;;
141 esac
142
143 helper_graphic_rebuild_xorg_conf_d
144 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
145 then
146 mecho "X11 restart required!"
147 fi
148 }
149
150 # set_graphic_refresh ${value}
151 set_graphic_refresh()
152 {
153 local value="${CLASS_ARGV[0]}"
154 [[ -z ${value} ]] && help_graphic_refresh && return 1
155
156 #echo "${value}" > ${MROOT}/${MCORE_CONFIG_PATH}/xorg/refresh
157
158 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
159 then
160 x11runas "xrandr --refresh ${value}"
161 fi
162
163 helper_graphic_rebuild_xorg_conf_d
164 }
165
166 set_graphic_driver()
167 {
168 local driver="${CLASS_ARGV[0]}"
169 local driverdir="@@LIBDIR@@/xorg/modules/drivers"
170 local CONFIG
171 [[ -z ${driver} ]] && help_graphic_driver && return 1
172
173 if [[ ${driver} = auto ]]
174 then
175 decho "Using driver autodetection, doing nothing"
176 elif [[ -f ${MROOT}/${driverdir}/${driver}_drv.so ]]
177 then
178 CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/device/25-device.conf"
179 clearconfig
180 addconfig " Identifier \"Card0\""
181 addconfig " Driver \"${driver}\""
182
183 helper_graphic_rebuild_xorg_conf_d
184 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
185 then
186 mecho "X11 restart required!"
187 fi
188 else
189 eecho "Driver '${driver}' does not exist on this system. Aborted!"
190 fi
191 }
192
193 get_graphic_driver()
194 {
195 local action="${CLASS_ARGV[0]}"
196 local driverdir="@@LIBDIR@@/xorg/modules/drivers"
197 local driver
198 local config="${MCORE_CONFIG_PATH}/xorg/device/25-device.conf"
199 local i
200
201 case "${action}" in
202 current)
203 if [[ -f ${MROOT}/${config} ]]
204 then
205 driver=$(grep Driver "${MROOT}/${config}" | sed 's:.*Driver.*\"\(.*\)\":\1:')
206 rvecho "${driver}"
207 else
208 rvecho "none"
209 fi
210 ;;
211 system)
212 driver=$(list_files_in_directory ${MROOT}/${driverdir} -mindepth 1 -maxdepth 1 | sed s':_drv.so::g')
213 rvecho "${driver}"
214 ;;
215 *)
216 help_graphic_driver
217 return 1
218 ;;
219 esac
220 }