Example #1
0
/**
 * Initialize the templ theme
 * @param hue [0..360] hue value from HSV color space to define the theme's base color
 * @param font pointer to a font (NULL to use the default)
 * @return pointer to the initialized theme
 */
lv_theme_t * lv_theme_templ_init(uint16_t hue, lv_font_t *font)
{
    if(font == NULL) font = LV_FONT_DEFAULT;

    _hue = hue;
    _font = font;

    /*For backward compatibility initialize all theme elements with a default style */
    uint16_t i;
    lv_style_t **style_p = (lv_style_t**) &theme;
    for(i = 0; i < sizeof(lv_theme_t) / sizeof(lv_style_t*); i++) {
        *style_p = &def;
        style_p++;
    }

    basic_init();
    cont_init();
    btn_init();
    label_init();
    img_init();
    line_init();
    led_init();
    bar_init();
    slider_init();
    sw_init();
    lmeter_init();
    gauge_init();
    chart_init();
    cb_init();
    btnm_init();
    kb_init();
    mbox_init();
    page_init();
    ta_init();
    list_init();
    ddlist_init();
    roller_init();
    tabview_init();
    win_init();

    return &theme;
}
static bool zendan(struct program_config *c)
{
//script test run
	{
		static const wgChar *functionname[] = {
			wgT("cpu_erase"), wgT("ppu_erase"),
			wgT("erase_wait"), wgT("program_main")
		};
		HSQUIRRELVM v = qr_open(&c->log);
		int i;
		for(i = 0; i < sizeof(functionname)/sizeof(wgChar *); i++){
			qr_function_register_global(v, functionname[i], script_nop);
		}
		qr_function_register_global(v, _SC("cpu_write"), cpu_write_check);
		qr_function_register_global(v, _SC("cpu_command"), cpu_command);
		qr_function_register_global(v, _SC("cpu_program"), cpu_program_count);
		
		qr_function_register_global(v, _SC("ppu_program"), ppu_program_count);
		qr_function_register_global(v, _SC("ppu_command"), ppu_command);
		qr_function_register_global(v, _SC("vram_mirrorfind"), vram_mirrorfind);
		
		if(script_execute(v, wgT("testrun"), c) == false){
			qr_close(v);
			return false;
		}
		qr_close(v);
		assert(c->cpu.memory.size != 0);

		if(c->cpu.programming.count % c->cpu.memory.size  != 0){
			c->log.append(c->log.object, wgT("logical error: cpu_programsize is not connected 0x%06x/0x%06x\n"), (int) c->cpu.programming.count, (int) c->cpu.memory.size);
			return false;
		}
		if(c->ppu.memory.size != 0){
			if(c->ppu.programming.count % c->ppu.memory.size != 0){
				c->log.append(c->log.object, wgT("logical error: ppu_programsize is not connected 0x%06x/0x%06x\n"), (int) c->ppu.programming.count, (int) c->ppu.memory.size);
				return false;
			}
		}
	}
//script execute 
	//SQBool ret;
	c->cpu.command_change = true;
	gauge_init(&c->cpu);
	c->ppu.command_change = true;
	gauge_init(&c->ppu);
	{
		HSQUIRRELVM v = qr_open(&c->log); 
		qr_function_register_global(v, _SC("cpu_write"), cpu_write);
		qr_function_register_global(v, _SC("cpu_erase"), cpu_erase);
		qr_function_register_global(v, _SC("cpu_program"), cpu_program_memory);
		qr_function_register_global(v, _SC("cpu_command"), cpu_command);
		qr_function_register_global(v, _SC("ppu_erase"), ppu_erase);
		qr_function_register_global(v, _SC("ppu_program"), ppu_program_memory);
		qr_function_register_global(v, _SC("ppu_command"), ppu_command);
		qr_function_register_global(v, _SC("program_main"), program_main);
		qr_function_register_global(v, _SC("erase_wait"), erase_wait);
		qr_function_register_global(v, _SC("vram_mirrorfind"), script_nop);
		script_execute(v, wgT("program"), c);
		//assert(sq_gettype(v, -2) == OT_BOOL);
		//sq_getbool(v, -1, &ret);
		qr_close(v);
	}
	return true; //ret == SQTrue ? true : false;
}