File: init_seq.txt

package info (click to toggle)
librnd 4.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,812 kB
  • sloc: ansic: 126,990; sh: 2,602; makefile: 2,145; awk: 7
file content (84 lines) | stat: -rw-r--r-- 1,932 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
librnd init sequence

int main(int argc, char *argv[])
{
	rnd_main_args_t ga;

	/* fill in rnd_app struct fields */
	rnd_app.package = "foobar";
	rnd_app.version = FOOBAR_VERSION;
	rnd_app.url = "http://repo.hu/projects/foobar";

	rnd_app.default_embedded_menu = "";
	rnd_app.menu_file_paths = menu_file_paths;
	rnd_app.menu_name_fmt = "foobar-menu.lht";

	rnd_app.conf_userdir_path = CONF_USER_DIR;
	rnd_app.conf_user_path = CONF_USER_DIR "/foobar-conf.lht";
	rnd_app.conf_sysdir_path = FOOBARSHAREDIR;
	rnd_app.conf_sys_path = FOOBARSHAREDIR "/foobar-conf.lht";

	rnd_app.crosshair_move_to = my_crosshair_move_to;
	rnd_app.draw_attached = my_draw_attached;

	/* pre-init */
	pcb_fix_locale_and_env();

	/* set up non-hidlib related app states */
	...

	rnd_main_args_init(&ga, argc, foobar_action_args);
	rnd_hidlib_init1(conf_core_init);

	for(n = 1; n < argc; n++) {
		/* optional override code could happen here to process some args locally */
		n += rnd_main_args_add(&ga, argv[n], argv[n+1]);
	}

	rnd_hidlib_init2(pup_buildins, foobar_buildins);
	rnd_hidlib_init3_auto();


	/* set up hidlib related app states - all main infrastructure is up by now */
	...

	if (rnd_main_args_setup1(&ga) != 0) {
		foobar_main_uninit();
		rnd_main_args_uninit(&ga);
		exit(1);
	}

	/* register core actions here */
	...

	if (rnd_main_args_setup2(&ga, &n) != 0) {
		foobar_main_uninit();
		rnd_main_args_uninit(&ga);
		exit(n);
	}


	/* load or create the design specified on command line */
	...

	if (rnd_main_exported(&ga, &foobar.hidlib, 0)) {
		foobar_main_uninit();
		rnd_main_args_uninit(&ga);
		exit(0);
	}

	/* pre-mainloop initializations */
	...

	if (RND_HAVE_GUI_ATTR_DLG)
		gui_support_plugins(1); /* load/initialize GUI plugins that will populate the top window */

	rnd_mainloop_interactive(&ga, &foobar.hidlib); /* main loop */

	/* application uninit *//
	foobar_main_uninit();
	rnd_main_args_uninit(&ga);
	return 0;
}