/******************************************************************************* MPLAB Harmony Graphics Composer Generated Implementation File File Name: gfx_hgc_definitions.c Summary: Build-time generated implementation from the MPLAB Harmony Graphics Composer. Description: Build-time generated implementation from the MPLAB Harmony Graphics Composer. Created with MPLAB Harmony Version 1.06 *******************************************************************************/ // DOM-IGNORE-BEGIN /******************************************************************************* Copyright (c) 2013-2014 released Microchip Technology Inc. All rights reserved. Microchip licenses to you the right to use, modify, copy and distribute Software only when embedded on a Microchip microcontroller or digital signal controller that is integrated into your product or third party product (pursuant to the sublicense terms in the accompanying license agreement). You should refer to the license agreement accompanying this Software for additional information regarding your rights and obligations. SOFTWARE AND DOCUMENTATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. *******************************************************************************/ // DOM-IGNORE-END #include "gfx_hgc_definitions.h" /*** Generated Asset References ***/ /*** Generated ASCII Text Labels ***/ /*** HGC Object Global ***/ HGC_OBJECTS hgcObj; static HGC_STATES hgcState; /****************************************************************************** Function: HGC_SCREEN_STATES GFX_HGC_GetScreenState ( void ) Remarks: This function returns the screen state */ HGC_SCREEN_STATES GFX_HGC_GetScreenState ( void ) { return hgcObj.screenState; } /****************************************************************************** Function: void GFX_HGC_SetScreenState ( HGC_SCREEN_STATES newState ) Remarks: This function sets the screen state machine to a new state */ void GFX_HGC_SetScreenState ( HGC_SCREEN_STATES newState ) { hgcObj.prevRefreshState = hgcObj.screenState; hgcObj.screenState = newState; } /****************************************************************************** Function: void GFX_HGC_Setup ( void ) Summary: This function sets up the GOL message callback and draw callbacks. */ void GFX_HGC_Setup ( void ) { } /****************************************************************************** Function: void GFX_HGC_Tasks (SYS_MODULE_OBJ gfxObject); Summary: This function is called in SYS_Tasks. The intent wait until the GFX library is initialized before supplying items to draw */ void GFX_HGC_Tasks (SYS_MODULE_OBJ gfxObject) { switch ( hgcState ) { case HGC_STATE_INIT: if (GFX_Status(gfxObject)==SYS_STATUS_READY) { GFX_HGC_Setup(); hgcState = HGC_STATE_RUNNING; } break; case HGC_STATE_RUNNING: //Drive screen state machine GFX_HGC_DrawScreenTask(); break; default: break; } } /****************************************************************************** Function: void GFX_HGC_DrawScreenTask( void ) Remarks: Task loop to drive the HGC generated screen state machine for HGC design that has primitives only */ void GFX_HGC_DrawScreenTask( void ) { switch (hgcObj.screenState) { case HGC_SCREEN_STATE_INIT: //Draw the primary screen as selected in the Composer GFX_HGC_SetScreenState(HGC_SCREEN_STATE_SETUP_SCREEN_Screen1); break; case HGC_SCREEN_STATE_SETUP_SCREEN_Screen1: GFX_HGC_SetupScreen(Screen1); GFX_HGC_SetScreenState(HGC_SCREEN_STATE_PRE_DRAW_PRIMITIVE_SCREEN_Screen1); break; case HGC_SCREEN_STATE_PRE_DRAW_PRIMITIVE_SCREEN_Screen1: GFX_HGC_SetScreenState(HGC_SCREEN_STATE_DRAW_PRIMITIVE_SCREEN_Screen1); break; case HGC_SCREEN_STATE_DRAW_PRIMITIVE_SCREEN_Screen1: GFX_HGC_DrawScreen_Primitives(Screen1); GFX_HGC_SetScreenState(HGC_SCREEN_STATE_POST_DRAW_PRIMITIVE_SCREEN_Screen1); break; case HGC_SCREEN_STATE_POST_DRAW_PRIMITIVE_SCREEN_Screen1: GFX_HGC_SetScreenState(HGC_SCREEN_STATE_DISPLAY_SCREEN_Screen1); break; case HGC_SCREEN_STATE_DISPLAY_SCREEN_Screen1: break; default: break; } } /****************************************************************************** Function: void GFX_HGC_SetupScreen( uint8_t screenId ) Remarks: Clears current screen and starts a fresh screen with its background color */ void GFX_HGC_SetupScreen(uint8_t screenId) { switch (screenId) { case Screen1: GFX_ColorSet(GFX_INDEX_0, GFX_RGBConvert(0x00, 0x00, 0x00)); GFX_ScreenClear(GFX_INDEX_0); break; default: break; } } /****************************************************************************** Function: bool GFX_HGC_ChangeScreen( uint8_t screenId ) Output: Returns true if a screenId matches an existing screen identifier Remarks: Can be called to initiate GFX Library to draw a new screen */ bool GFX_HGC_ChangeScreen(uint8_t screenId) { switch (screenId) { case Screen1: GFX_HGC_SetScreenState(HGC_SCREEN_STATE_SETUP_SCREEN_Screen1); break; default: return false; } return true; // release drawing control to GOL } /****************************************************************************** Function: bool GFX_HGC_DrawScreen_Primitives( uint8_t screenId ) Output: Returns true if a screenId matches an existing screen identifier Remarks: HGC-specified GFX Primitives are drawn here, grouped by screen. GFX Primitives are drawn after GFX GOL Objects to make sure GFX GOL Objects do not cover GFX Primitives */ bool GFX_HGC_DrawScreen_Primitives(uint8_t screenId) { switch (screenId) { case Screen1: break; default: return true; } return true; // release drawing control to GOL } /****************************************************************************** Function: bool GFX_HGC_DrawItem(int itemId) Output: Returns true if a itemId matches an existing item identifier Remarks: Every item specified in every screen in HGC is listed in this function */ bool GFX_HGC_DrawItem(int itemId) { switch(itemId) { default: return false; // process by default } return true; }