Magellan Linux

Diff of /trunk/busybox/splash-functions.rc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/busybox/splash-funtions.rc revision 1264 by niro, Fri Jan 28 19:08:48 2011 UTC trunk/busybox/splash-functions.rc revision 1839 by niro, Fri Jul 13 09:55:49 2012 UTC
# Line 5  Line 5 
5    
6  splash()  splash()
7  {  {
8     local cmd
9     local args
10    
11     # check for a framebuffer console first!
12     [[ ! -e ${SPLASH_DEV} ]] && return 0
13     # proc must be mounted too
14     [[ ! -e /proc/cmdline ]] && return 0
15     # only run fbsplash if theme was found
16     [[ ! -e ${SPLASH_THEMES}/${SPLASH_THEME} ]] && return
17     # and run only if a config for the current resolution exist
18     [[ ! -e ${SPLASH_THEMES}/${SPLASH_THEME}/$(splash_resolution).conf ]] && return
19    
20     # create fifo if not exist
21     if [[ ! -w ${SPLASH_FIFO} ]]
22     then
23     mkfifo ${SPLASH_FIFO}
24     fi
25    
26     # check cmdline for config_opts
27     #   splash=silent,theme:mcore
28     for cmd in $(< /proc/cmdline)
29     do
30     case "${cmd}" in
31     splash=*)
32     # split the cmd and put everything into an array
33     args=( $(echo "${cmd}" | sed 's:[,\:=]:\ :g') )
34     # mode is always args[1]
35     SPLASH_MODE="${args[1]}"
36     # theme is always args[3]
37     SPLASH_THEME="${args[3]}"
38     ;;
39     esac
40     done
41    
42   case $1 in   case $1 in
43   rc_init) rc_init ;;   rc_init) rc_init ;;
44   rc_verbose|rc_exit) rc_exit ;;   rc_verbose|rc_exit) rc_exit ;;
45     # redraw splash image and text
46     svc_started)
47     if [[ ${runlevel} = boot ]] || [[ ${runlevel} = sysinit ]]
48     then
49     splash_control "image:"
50     splash_control "write:${SPLASH_BOOT_MESSAGE}"
51     fi
52     ;;
53     svc_stopped)
54     if [[ ${runlevel} = shutdown ]]
55     then
56     splash_control "image:"
57     splash_control "write:${SPLASH_SHUTDOWN_MESSAGE}"
58     fi
59     if [[ ${runlevel} = reboot ]]
60     then
61     splash_control "image:"
62     splash_control "write:${SPLASH_REBOOT_MESSAGE}"
63     fi
64     ;;
65   esac   esac
66  }  }
67    
# Line 17  rc_init() Line 71  rc_init()
71   then   then
72   local resolution="$(splash_resolution)"   local resolution="$(splash_resolution)"
73    
  splash_cursor disable  
74   chvt ${SPLASH_TTY}   chvt ${SPLASH_TTY}
75     sleep 0.5
76    
77   if [[ $runlevel = boot ]] || [[ ${runlevel} = sysinit ]]   if [[ ${runlevel} = boot ]] || [[ ${runlevel} = sysinit ]]
78   then   then
79   fbsplash -i ${SPLASH_THEMES}/${SPLASH_THEME}/${resolution}.conf \   fbsplash -i ${SPLASH_THEMES}/${SPLASH_THEME}/${resolution}.conf \
80   -s ${SPLASH_THEMES}/${SPLASH_THEME}/startup-${resolution}.ppm.gz \   -s ${SPLASH_THEMES}/${SPLASH_THEME}/startup-${resolution}.ppm.gz \
81   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \
82   -f ${SPLASH_FIFO} \   -f ${SPLASH_FIFO} \
83     -d ${SPLASH_DEV} \
84   ${SPLASH_OPTS} &   ${SPLASH_OPTS} &
85    
86     wait_for_fbsplash
87   splash_control "write:${SPLASH_BOOT_MESSAGE}"   splash_control "write:${SPLASH_BOOT_MESSAGE}"
88   fi   fi
89    
# Line 37  rc_init() Line 93  rc_init()
93   -s ${SPLASH_THEMES}/${SPLASH_THEME}/shutdown-${resolution}.ppm.gz \   -s ${SPLASH_THEMES}/${SPLASH_THEME}/shutdown-${resolution}.ppm.gz \
94   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \
95   -f ${SPLASH_FIFO} \   -f ${SPLASH_FIFO} \
96     -d ${SPLASH_DEV} \
97   ${SPLASH_OPTS} &   ${SPLASH_OPTS} &
98    
99     wait_for_fbsplash
100   splash_control "write:${SPLASH_SHUTDOWN_MESSAGE}"   splash_control "write:${SPLASH_SHUTDOWN_MESSAGE}"
101   fi   fi
102    
103   if [[ $runlevel = reboot ]]   if [[ ${runlevel} = reboot ]]
104   then   then
105   fbsplash -i ${SPLASH_THEMES}/${SPLASH_THEME}/${resolution}.conf \   fbsplash -i ${SPLASH_THEMES}/${SPLASH_THEME}/${resolution}.conf \
106   -s ${SPLASH_THEMES}/${SPLASH_THEME}/reboot-${resolution}.ppm.gz \   -s ${SPLASH_THEMES}/${SPLASH_THEME}/reboot-${resolution}.ppm.gz \
107   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \   -m ${SPLASH_THEMES}/${SPLASH_THEME}/splash-font.gz \
108   -f ${SPLASH_FIFO} \   -f ${SPLASH_FIFO} \
109     -d ${SPLASH_DEV} \
110   ${SPLASH_OPTS} &   ${SPLASH_OPTS} &
111    
112     wait_for_fbsplash
113   splash_control "write:${SPLASH_REBOOT_MESSAGE}"   splash_control "write:${SPLASH_REBOOT_MESSAGE}"
114   fi   fi
115   fi   fi
# Line 60  rc_exit() Line 120  rc_exit()
120   if [[ ${SPLASH_MODE} = silent ]]   if [[ ${SPLASH_MODE} = silent ]]
121   then   then
122   splash_control "exit"   splash_control "exit"
123   splash_cursor enable   if [[ -n ${SPLASH_X11_TTY} ]]
124   chvt 1   then
125     chvt ${SPLASH_X11_TTY}
126     else
127     chvt 1
128     fi
129   fi   fi
130  }  }
131    
# Line 70  splash_resolution() Line 134  splash_resolution()
134   fbres   fbres
135  }  }
136    
137    wait_for_fbsplash()
138    {
139     while [[ -z $(pidof fbsplash) ]]
140     do
141     sleep 0.1
142     done
143    }
144    
145  splash_control()  splash_control()
146  {  {
147   # only write to fifo if the fbsplash process is runnning   # only write to fifo if the fbsplash process is runnning
# Line 79  splash_control() Line 151  splash_control()
151   echo "$@" > ${SPLASH_FIFO}   echo "$@" > ${SPLASH_FIFO}
152   fi   fi
153  }  }
   
 # disable|enable  
 splash_cursor()  
 {  
  case $1 in  
  enable) echo -e "\e[?0c";;  
  disable) echo -e "\e[?1c" ;;  
  esac  
 }  

Legend:
Removed from v.1264  
changed lines
  Added in v.1839