demo/pong/main.c

See examples/demo/pong

/*
* ZentriOS SDK LICENSE AGREEMENT | Zentri.com, 2015.
*
* Use of source code and/or libraries contained in the ZentriOS SDK is
* subject to the Zentri Operating System SDK license agreement and
* applicable open source license agreements.
*
*/
/* Documentation for this app is available online.
* See https://docs.zentri.com/wifi/sdk/latest/examples/demo/pong
*/
#include "common.h"
#define BUTTON_DEBOUNCE 65 // ms
#define BUTTON_CLICK_TIME 750 // ms
#define BUTTON_PRESS_TIME 800 // ms
game_context_t game_context;
static zos_bool_t is_initialized;
/*************************************************************************************************/
void zn_app_init(void)
{
const button_config_t btn_config =
{
.active_level = BUTTON_ACTIVE_HIGH,
.debounce = BUTTON_DEBOUNCE,
.click_time = BUTTON_CLICK_TIME,
.press_time = BUTTON_PRESS_TIME,
.event_handler.click = game_button_click_event_handler,
.event_handler.press = game_button_press_event_handler
};
command_init();
if(display_init() != ZOS_SUCCESS)
{
ZOS_LOG("Failed to initialize display!");
return;
}
button_init(PLATFORM_BUTTON1, &btn_config, (void*)PLATFORM_BUTTON1);
button_init(PLATFORM_BUTTON2, &btn_config, (void*)PLATFORM_BUTTON2);
game_update_state(STATE_SELECTING_PLAYER);
is_initialized = ZOS_TRUE;
}
/*************************************************************************************************/
void zn_app_deinit(void)
{
command_deinit();
button_deinit(PLATFORM_BUTTON1);
button_deinit(PLATFORM_BUTTON2);
display_deinit();
link_deinit();
}
/*************************************************************************************************/
zos_bool_t zn_app_idle(void)
{
return is_initialized;
}