/***************************************************************************** * void DisplayLightingScreen(void) *****************************************************************************/ void DisplayLightingScreen(void) { static DWORD prevTick = 0; static BYTE blink = 0; if((TimerTick_GetTick() - prevTick) > 1000) { prevTick = TimerTick_GetTick(); blink ^=1; if(blink == 1) { SetColor(GREEN);} else SetColor(WHITE); FillCircle(LIGHTING_SCREEN_START + 65, 140, 5); //Bed 3 FillCircle(LIGHTING_SCREEN_START+290, 160, 5); //Terrace FillCircle(LIGHTING_SCREEN_START+250, GetMaxY() - 80, 5); //Living FillCircle(LIGHTING_SCREEN_START + 65, GetMaxY() - 200, 5); //Bed 4 UpdateDisplayNow(); } }
/************************************************************************ Function: WORD GOLDrawCallback() Overview: This function must be implemented by user. GOLDraw() function calls it each time when GOL objects drawing is completed. User drawing should be done here. GOL will not change color, line type and clipping region settings while this function returns zero. Input: none Output: If the function returns non-zero the draw control will be passed to GOL. GOLDraw() can proceed and re-draw objects that needs to be redrawn. ************************************************************************/ bool GFX_GOL_DrawCallback(void) { static uint32_t timeClock = 0; // GFX_GOL_ANALOGCLOCK *pAc; switch(screenState) { case CREATE_BACKGROUND: screenState = DISPLAY_BACKGROUND; // switch to next state return (1); case DISPLAY_BACKGROUND: CreatePreLoadScreen(); screenState = CREATE_MAIN; return(1); case CREATE_MAIN: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); CreateMainScreen(1); screenState = DISPLAY_MAIN; // switch to next state timeClock =0; return (1); // draw objects created case DISPLAY_MAIN: if((TimerTick_GetTick() - timeClock) >= 5000) { timeClock = TimerTick_GetTick(); // pAc = (GFX_GOL_ANALOGCLOCK *)GFX_GOL_ObjectFind(MAIN_SCREEN_ID_ANALOG_CLOCK); // GFX_GOL_ObjectStateSet(pAc, GFX_GOL_ANALOGCLOCK_TICK); } return (1); case CREATE_INFO: //Use PIP for this screen CreateInfo(); while(GFX_Layer(PIP1, SET_PAGE_START, 164,0) == GFX_STATUS_FAILURE); while(GFX_Layer(PIP1, SET_SIZE, GFX_MaxXGet()-164,GFX_MaxYGet()) == GFX_STATUS_FAILURE); while(GFX_Layer(PIP1, SET_PAGE, PIP_PAGE_BUFFER, 0) == GFX_STATUS_FAILURE); while(GFX_Layer(PIP1, SET_LAYER_START, 160,0) == GFX_STATUS_FAILURE); while(GFX_Layer(PIP1, ENABLE, 0, 0) == GFX_STATUS_FAILURE); screenState = DISPLAY_INFO; // switch to next state return (0); case CREATE_SPEED: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); CreateSpeed(); screenState = CREATE_MAIN; // switch to next state return (1); // draw objects created case CREATE_COMFORT: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); CreateComfortScreen(); // create window and sliders screenState = DISPLAY_COMFORT; // switch to next state return (1); // draw objects created case CREATE_SCROLLING: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); GFX_TransitionParametersSet(0,0,PUSH, GFX_ActivePageGet(), BACKGROUND_BUFFER, 1,16,LEFT_TO_RIGHT); while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE); GFX_TransitionParametersSet(0,0,PUSH,BACKGROUND_BUFFER,GFX_ActivePageGet(), 1,10,TOP_TO_BOTTOM); while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE); GFX_TransitionParametersSet(0,0,PUSH,GFX_ActivePageGet(),BACKGROUND_BUFFER, 1,8,RIGHT_TO_LEFT); while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE); GFX_TransitionParametersSet(0,0,PUSH,BACKGROUND_BUFFER,GFX_ActivePageGet(), 1,5,BOTTOM_TO_TOP); while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE); screenState = CREATE_MAIN; return(1); // draw objects created case CREATE_GRADIENT: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); CreateGradientScreen(); // create window screenState = DISPLAY_GRADIENT; // switch to next state return (1); // draw objects created case DISPLAY_SCROLLING: case DISPLAY_GRADIENT: case DISPLAY_COMFORT: case DISPLAY_SPEED: case DISPLAY_INFO: return (1); // redraw objects if needed case CREATE_ALPHABLEND: while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE); CreateAlphaBlendScreen(); screenState = DISPLAY_ALPHABLEND; return(1); case DISPLAY_ALPHABLEND: if((TimerTick_GetTick() - timeClock) >= 500) { if(DisplayAlphaBlendScreen() == true) screenState = CREATE_MAIN; } return (1); // redraw objects if needed default: break; } return (1); // release drawing control to GOL }