123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #include "BaseActivity.h"
- #include "globals.h"
- #include "Helpers.h"
- #include "Logs.h"
-
- BaseActivity::BaseActivity(
- IActivity* mParentActivity
- , IActivity* mChildActivity
- , IActivity* mPreviousActivity
- , IActivity* mNextActivity
- )
- : m_lcdUpdateNeeded(true)
- , m_parentActivity(mParentActivity), m_childActivity(mChildActivity), m_previousActivity(mPreviousActivity)
- , m_nextActivity(mNextActivity)
- {
- }
-
- void BaseActivity::begin()
- {
- m_lcdUpdateNeeded = true;
- }
-
- void BaseActivity::loop()
- {
- if (!g_hibernateService.getValue() && !g_hibernateService.hasChanged())
- {
- if (g_btnCancel.wasReleased())
- {
- LOG(1, "BaseActivity: Cancel pressed");
- onButtonReleased(Cancel);
- }
- else if (g_btnOk.wasReleased())
- {
- LOG(1, "BaseActivity: Ok pressed");
- onButtonReleased(Ok);
- }
- else if (g_btnMinus.wasReleased())
- {
- LOG(1, "BaseActivity: Minus pressed");
- onButtonReleased(Minus);
- }
- else if (g_btnPlus.wasReleased())
- {
- LOG(1, "BaseActivity: Plus pressed");
- onButtonReleased(Plus);
- }
- }
-
- if (m_lcdUpdateNeeded)
- {
- updateLcd();
- }
- }
-
- void BaseActivity::updateLcd()
- {
- LOG(1, "BaseActivity: Updating LCD");
- char lines[2][17];
- lines[0][0] = 0;
- lines[1][0] = 0;
- char* lines_[2] = {lines[0], lines[1]};
- getLcdText(lines_);
- for (int i = 0; i < 2; ++i)
- {
- g_lcd.setCursor(0, i);
- Helpers::fillLine(lines[i], 16, ' ');
- g_lcd.print(lines[i]);
- }
- m_lcdUpdateNeeded = false;
- }
-
- void BaseActivity::onButtonReleased(BaseActivity::Button button)
- {
- if (button == Cancel)
- {
- if (m_parentActivity)
- {
- g_appCore.setActivity(m_parentActivity);
- }
- }
- else if (button == Ok)
- {
- if (m_childActivity)
- {
- g_appCore.setActivity(m_childActivity);
- }
- }
- else if (button == Minus)
- {
- if (m_previousActivity)
- {
- g_appCore.setActivity(m_previousActivity);
- }
- }
- else if (button == Plus)
- {
- if (m_nextActivity)
- {
- g_appCore.setActivity(m_nextActivity);
- }
- }
- }
-
|