1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #include "BaseActivity.h"
- #include "globals.h"
- #include "Helpers.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())
- {
- onButtonReleased(Cancel);
- }
- else if (g_btnOk.wasReleased())
- {
- onButtonReleased(Ok);
- }
- else if (g_btnMinus.wasReleased())
- {
- onButtonReleased(Minus);
- }
- else if (g_btnPlus.wasReleased())
- {
- onButtonReleased(Plus);
- }
- }
-
- if (m_lcdUpdateNeeded)
- {
- updateLcd();
- }
- }
-
- void BaseActivity::updateLcd()
- {
- 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);
- }
- }
- }
-
|