int systest_init(void) { pjsua_logging_config log_cfg; pj_status_t status = PJ_SUCCESS; status = pjsua_create(); if (status != PJ_SUCCESS) { systest_perror("Sorry we've had error in pjsua_create(): ", status); return status; } pjsua_logging_config_default(&log_cfg); log_cfg.log_filename = pj_str(add_path(doc_path, LOG_OUT_PATH)); pjsua_config_default(&systest.ua_cfg); pjsua_media_config_default(&systest.media_cfg); systest.media_cfg.clock_rate = TEST_CLOCK_RATE; systest.media_cfg.snd_clock_rate = DEV_CLOCK_RATE; if (OVERRIDE_AUD_FRAME_PTIME) systest.media_cfg.audio_frame_ptime = OVERRIDE_AUD_FRAME_PTIME; systest.media_cfg.channel_count = CHANNEL_COUNT; systest.rec_id = REC_DEV_ID; systest.play_id = PLAY_DEV_ID; systest.media_cfg.ec_tail_len = 0; systest.media_cfg.snd_auto_close_time = 0; #if defined(OVERRIDE_AUDDEV_PLAY_LAT) && OVERRIDE_AUDDEV_PLAY_LAT!=0 systest.media_cfg.snd_play_latency = OVERRIDE_AUDDEV_PLAY_LAT; #endif #if defined(OVERRIDE_AUDDEV_REC_LAT) && OVERRIDE_AUDDEV_REC_LAT!=0 systest.media_cfg.snd_rec_latency = OVERRIDE_AUDDEV_REC_LAT; #endif status = pjsua_init(&systest.ua_cfg, &log_cfg, &systest.media_cfg); if (status != PJ_SUCCESS) { pjsua_destroy(); systest_perror("Sorry we've had error in pjsua_init(): ", status); return status; } status = pjsua_start(); if (status != PJ_SUCCESS) { pjsua_destroy(); systest_perror("Sorry we've had error in pjsua_start(): ", status); return status; } status = gui_init(&root_menu); if (status != 0) goto on_return; return 0; on_return: gui_destroy(); return status; }
/* A simple usage here */ int main(int argc, char *argv[]) { gui_create(300, 300); gui_settrans(gui_hwnd(), 70); /* set 70% non-transperant */ //gui_show(img->imageData, img->width, img->height, img->widthStep, 3); gui_wait(0); gui_destroy(); return 0; }
void systest_deinit(void) { gui_destroy(); pjsua_destroy(); }
static void exit_app(void) { systest_save_result(add_path(doc_path, RESULT_OUT_PATH)); gui_destroy(); }
int main(int argc, char **argv) { int rc = 0; struct cfgdata_t cfg; struct params_t params; kx_inputs inputs; lg = log_open(16); log_msg(lg, "%s starting", PACKAGE_STRING); initmode = do_init(); /* Get cmdline parameters */ params.cfg = &cfg; init_cfgdata(&cfg); cfg.angle = 0; /* No rotation by default */ parse_cmdline(&cfg); kxb_ttydev = cfg.ttydev; setup_terminal(kxb_ttydev, &kxb_echo_state, 1); /* Setup function that will restore terminal when exit() will called */ atexit(atexit_restore_terminal); log_msg(lg, "FB angle is %d, tty is %s", cfg.angle, cfg.ttydev); #ifdef USE_MACHINE_KERNEL machine_kernel = get_machine_kernelpath(); /* FIXME should be passed as arg to get_bootinfo() */ #endif #ifdef USE_DELAY /* extra delay for initializing slow SD/CF */ sleep(USE_DELAY); #endif int no_ui = 1; /* UI presence flag */ #ifdef USE_FBMENU params.gui = NULL; if (no_ui) { params.gui = gui_init(cfg.angle); if (NULL == params.gui) { log_msg(lg, "Can't initialize GUI"); } else no_ui = 0; } #endif #ifdef USE_TEXTUI FILE *ttyfp; params.tui = NULL; if (no_ui) { if (cfg.ttydev) ttyfp = fopen(cfg.ttydev, "w"); else ttyfp = stdout; params.tui = tui_init(ttyfp); if (NULL == params.tui) { log_msg(lg, "Can't initialize TUI"); if (ttyfp != stdout) fclose(ttyfp); } else no_ui = 0; } #endif if (no_ui) exit(-1); /* Exit if no one UI was initialized */ params.menu = build_menu(¶ms); params.bootcfg = NULL; scan_devices(¶ms); if (-1 == fill_menu(¶ms)) { exit(-1); } /* Collect input devices */ inputs_init(&inputs, 8); inputs_open(&inputs); inputs_preprocess(&inputs); /* Run main event loop * Return values: <0 - error, >=0 - selected item id */ rc = do_main_loop(¶ms, &inputs); #ifdef USE_FBMENU if (params.gui) { if (rc < 0) gui_clear(params.gui); gui_destroy(params.gui); } #endif #ifdef USE_TEXTUI if (params.tui) { tui_destroy(params.tui); if (ttyfp != stdout) fclose(ttyfp); } #endif inputs_close(&inputs); inputs_clean(&inputs); log_close(lg); lg = NULL; /* rc < 0 indicate error */ if (rc < 0) exit(rc); menu_destroy(params.menu, 0); if (rc >= A_DEVICES) { start_kernel(¶ms, rc - A_DEVICES); } /* When we reach this point then some error has occured */ DPRINTF("We should not reach this point!"); exit(-1); }