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 /* Sound is not supported Since Tizen 4.0 */
71 static int get_wav_file(int state, char *wavpath)
74 if (state == TYPE_ON) {
75 snprintf(wavpath, FILE_PATH_MAX-1, "%s", DEFAULT_POWERON_WAV);
76 _D("Wav file: %s", wavpath);
84 static int xready_cb(keynode_t * node, void *user_data)
89 int type = TYPE_UNKNOWN;
90 struct args *args = user_data;
91 static struct option long_options[] = {
92 {"start", no_argument, 0, 's' },
93 {"stop", no_argument, 0, 'p' },
94 {"off", no_argument, 0, 'o' },
95 {"offmsg", required_argument, 0, 'm' },
96 {"clear", no_argument, 0, 'c' },
99 static int invoked_flag = 0;
102 printf("xready_cb\n");
104 if (invoked_flag == 1) {
105 _E("Already launched");
106 printf("Error Already launched\n");
116 for (i = 0; i < argc; i++) {
117 _D("argc %d [%s]", i, argv[i]);
118 printf("argc %d [%s]\n", i, argv[i]);
120 while ((c = getopt_long(argc, argv, "spom:c", long_options, NULL)) >= 0) {
130 type = TYPE_OFF_NOEXIT;
133 if (args->msg) continue;
134 type = TYPE_OFF_WITH_MSG;
135 args->msg = strdup(optarg);
143 _D("[Boot-ani] unknown arg [%s]", optarg);
144 printf("[Boot-anim] unknown arg [%s]\n", optarg);
149 /* Sound is not supported Since Tizen 4.0 */
151 /* check sound profile */
153 int soundon = 1; /* default sound on */
154 if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &soundon) < 0) {
155 _D("VCONFKEY_SETAPPL_SOUND_STATUS_BOOL ==> FAIL!!");
156 printf("VCONFKEY_SETAPPL_SOUND_STATUS_BOOL ==> FAIL!!\n");
159 _D("Sound status: %d", soundon);
160 printf("Sound status: %d\n", soundon);
163 if (init_animation(type, args->msg) != EXIT_SUCCESS) {
164 _D("Exit boot-animation");
165 printf("Exit boot-animation\n");
172 printf("Sound on!!\n");
173 if (!get_wav_file(type, wav_path)) {
174 _D("File path: %s", wav_path);
175 printf("File path: %s\n", wav_path);
176 mm_sound_boot_ready(3);
177 mm_sound_boot_play_sound(wav_path);
187 static void _boot_ani_ui_set_scale(void)
189 double root_height = 0.0;
190 double root_width = 0.0;
191 char buf[128] = { 0, };
195 disp = XOpenDisplay(NULL);
199 screen_num = DefaultScreen(disp);
201 root_height = DisplayHeight(disp, screen_num);
202 root_width = DisplayWidth(disp, screen_num);
206 snprintf(buf, sizeof(buf), "%lf", root_height / BA_DEFAULT_WINDOW_H);
207 //snprintf(buf, sizeof(buf), "%lf", root_width / BA_DEFAULT_WINDOW_W);
208 _D("Boot animation scale : [%s]", buf);
210 setenv("ELM_SCALE", buf, 1);
211 setenv("SCALE_FACTOR", buf, 1);
215 int main(int argc, char *argv[])
219 setenv("HOME", "/home/root", 1);
222 print_usages(argv[0]);
231 _boot_ani_ui_set_scale();
235 fd = open("/tmp/myfile.txt", O_CREAT|O_RDWR, S_IRWXU|S_IRWXO);
236 _D("result of open: %d", fd);
237 printf("[%s/%s/%d] fd == %d\n", __FILE__, __func__, __LINE__, fd);
239 elm_init(argc, argv);
241 if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 0) != 0) {
242 _D("Failed to set finished value to 0\n");
243 printf("[%s/%s/%d] Failed to set finished value to 0\n", __FILE__, __func__, __LINE__);
245 if (xready_cb(NULL, &args) != EXIT_SUCCESS) {
246 vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1);