diff src/cs/services/fcbm/fcbm_display_ctrl.c @ 230:baa738eeb842

FCBM code implemented in first pass
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 01 May 2021 10:05:53 +0000
parents
children 35474f3a1782
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/services/fcbm/fcbm_display_ctrl.c	Sat May 01 10:05:53 2021 +0000
@@ -0,0 +1,43 @@
+/*
+ * In this module we are going to implement our functions
+ * for controlling display on/off state during charging boot mode.
+ */
+
+#include "rv/rv_general.h"
+#include "rvf/rvf_api.h"
+#include "rvm/rvm_use_id_list.h"
+#include "fcbm/fcbm_func_i.h"
+#include "fcbm/fcbm_timer_i.h"
+#include "fcbm/fcbm_life_cycle.h"
+#include "kpd/kpd_api.h"
+#include "r2d/r2d_blrr_api.h"
+
+void fcbm_display_off_timer(void)
+{
+	if (fcbm_life_cycle_state != FCBM_STATE_ACTIVE) {
+		rvf_send_trace("FCBM display off timer in wrong state", 37,
+				fcbm_life_cycle_state, RV_TRACE_LEVEL_WARNING,
+				FCBM_USE_ID);
+		return;
+	}
+	blrr_display_ctrl(BLRR_DISPLAY_OFF);
+}
+
+void fcbm_process_kpd_msg(T_KPD_KEY_EVENT_MSG *msg)
+{
+	if (fcbm_life_cycle_state != FCBM_STATE_ACTIVE) {
+		rvf_send_trace("FCBM keypad message in wrong state", 34,
+				fcbm_life_cycle_state, RV_TRACE_LEVEL_WARNING,
+				FCBM_USE_ID);
+		return;
+	}
+	switch (msg->key_info.state) {
+	case KPD_KEY_PRESSED:
+		blrr_display_ctrl(BLRR_DISPLAY_CHG_BOOT);
+		return;
+	case KPD_KEY_RELEASED:
+		rvf_start_timer(FCBM_TIMER_DSPL_OFF,
+				RVF_SECS_TO_TICKS(FCBM_DISPLAY_SECS), FALSE);
+		return;
+	}
+}