2 * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
23 #include <sys/ioctl.h>
25 #include <sys/types.h>
34 #include <Elementary.h>
37 #include <mm_sound_private.h>
38 #include <system_settings.h>
42 #include "animation.h"
49 extern int optind, opterr, optopt;
58 static void print_usages(char *argv0)
60 printf("Usage) %s {--start|--stop}\n"
65 " # %s --offmsg YOUR_MESSAGE\n", argv0, argv0, argv0, argv0,
69 static int get_wav_file(int state, char *wavpath)
72 if (state == TYPE_ON) {
73 snprintf(wavpath, FILE_PATH_MAX-1, "%s", DEFAULT_POWERON_WAV);
74 _D("Wav file: %s", wavpath);
81 static int xready_cb(keynode_t * node, void *user_data)
86 int type = TYPE_UNKNOWN;
87 int soundon = 1; /* default sound on */
88 struct args *args = user_data;
90 static struct option long_options[] = {
91 {"start", no_argument, 0, 's' },
92 {"stop", no_argument, 0, 'p' },
93 {"off", no_argument, 0, 'o' },
94 {"offmsg", required_argument, 0, 'm' },
95 {"clear", no_argument, 0, 'c' },
98 static int invoked_flag = 0;
101 printf("xready_cb\n");
103 if (invoked_flag == 1) {
104 _E("Already launched");
105 printf("Error Already launched\n");
115 for (i = 0; i < argc; i++) {
116 _D("argc %d [%s]", i, argv[i]);
117 printf("argc %d [%s]\n", i, argv[i]);
119 while ((c = getopt_long(argc, argv, "spom:c", long_options, NULL)) >= 0) {
129 type = TYPE_OFF_NOEXIT;
132 if (args->msg) continue;
133 type = TYPE_OFF_WITH_MSG;
134 args->msg = strdup(optarg);
142 _D("[Boot-ani] unknown arg [%s]", optarg);
143 printf("[Boot-anim] unknown arg [%s]\n", optarg);
148 /* check sound profile */
149 if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &soundon) < 0) {
150 _D("VCONFKEY_SETAPPL_SOUND_STATUS_BOOL ==> FAIL!!");
151 printf("VCONFKEY_SETAPPL_SOUND_STATUS_BOOL ==> FAIL!!\n");
154 _D("Sound status: %d", soundon);
155 printf("Sound status: %d\n", soundon);
157 if (init_animation(type, args->msg) != EXIT_SUCCESS) {
158 _D("Exit boot-animation");
159 printf("Exit boot-animation\n");
165 printf("Sound on!!\n");
166 if (!get_wav_file(type, wav_path)) {
167 _D("File path: %s", wav_path);
168 printf("File path: %s\n", wav_path);
169 mm_sound_boot_ready(3);
170 mm_sound_boot_play_sound(wav_path);
179 static void _boot_ani_ui_set_scale(void)
181 double root_height = 0.0;
182 double root_width = 0.0;
183 char buf[128] = { 0, };
187 disp = XOpenDisplay(NULL);
191 screen_num = DefaultScreen(disp);
193 root_height = DisplayHeight(disp, screen_num);
194 root_width = DisplayWidth(disp, screen_num);
198 snprintf(buf, sizeof(buf), "%lf", root_height / BA_DEFAULT_WINDOW_H);
199 //snprintf(buf, sizeof(buf), "%lf", root_width / BA_DEFAULT_WINDOW_W);
200 _D("Boot animation scale : [%s]", buf);
202 setenv("ELM_SCALE", buf, 1);
203 setenv("SCALE_FACTOR", buf, 1);
207 int main(int argc, char *argv[])
211 setenv("HOME", "/home/root", 1);
214 print_usages(argv[0]);
223 _boot_ani_ui_set_scale();
227 fd = open("/tmp/myfile.txt", O_CREAT|O_RDWR, S_IRWXU|S_IRWXO);
228 _D("result of open: %d", fd);
229 printf("[%s/%s/%d] fd == %d\n", __FILE__, __func__, __LINE__, fd);
231 elm_init(argc, argv);
233 if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 0) != 0) {
234 _D("Failed to set finished value to 0\n");
235 printf("[%s/%s/%d] Failed to set finished value to 0\n", __FILE__, __func__, __LINE__);
237 if (xready_cb(NULL, &args) != EXIT_SUCCESS) {
238 vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1);