|
1 | 1 | #include "screens/SurfaceScreen.h"
|
2 | 2 |
|
3 |
| -void SurfaceScreen::init(DiveInoSettings diveInoSettings) |
| 3 | +void SurfaceScreen::init(DiveInoSettings diveInoSettings, DiveResult* diveResult) |
4 | 4 | {
|
| 5 | + _diveInoSettings = diveInoSettings; |
| 6 | + _diveResult = diveResult; |
| 7 | + |
5 | 8 | ez.screen.clear();
|
6 | 9 | ez.header.show("Surface");
|
7 | 10 |
|
8 |
| - ez.buttons.show("# # Menu"); |
| 11 | + ez.buttons.show("Menu"); |
| 12 | + |
| 13 | + _display(); |
| 14 | +} |
| 15 | + |
| 16 | +void SurfaceScreen::_display() |
| 17 | +{ |
| 18 | + |
| 19 | + if (ez.theme->name == "Default") { |
| 20 | + M5.Lcd.drawJpg((uint8_t *)ok_small_jpg, (sizeof(ok_small_jpg) / sizeof(ok_small_jpg[0])), 105, 35, 32, 32); |
| 21 | + M5.Lcd.drawJpg((uint8_t *)airplane_small_jpg, (sizeof(airplane_small_jpg) / sizeof(airplane_small_jpg[0])), 105, 75, 32, 32); |
| 22 | + M5.Lcd.drawJpg((uint8_t *)max_depth_small_jpg, (sizeof(max_depth_small_jpg) / sizeof(max_depth_small_jpg[0])), 105, 115, 32, 32); |
| 23 | + M5.Lcd.drawJpg((uint8_t *)deco_stop_small_jpg, (sizeof(deco_stop_small_jpg) / sizeof(deco_stop_small_jpg[0])), 105, 155, 32, 32); |
| 24 | + } |
| 25 | + if (ez.theme->name == "Dark") { |
| 26 | + M5.Lcd.drawJpg((uint8_t *)ok_small_jpg_dark, (sizeof(ok_small_jpg_dark) / sizeof(ok_small_jpg_dark[0])), 105, 35, 32, 32); |
| 27 | + M5.Lcd.drawJpg((uint8_t *)airplane_small_jpg, (sizeof(airplane_small_jpg) / sizeof(airplane_small_jpg[0])), 105, 75, 32, 32); |
| 28 | + M5.Lcd.drawJpg((uint8_t *)max_depth_small_jpg, (sizeof(max_depth_small_jpg) / sizeof(max_depth_small_jpg[0])), 105, 115, 32, 32); |
| 29 | + M5.Lcd.drawJpg((uint8_t *)deco_stop_small_jpg_dark, (sizeof(deco_stop_small_jpg_dark) / sizeof(deco_stop_small_jpg_dark[0])), 105, 155, 32, 32); |
| 30 | + } |
| 31 | + |
| 32 | + ez.canvas.color(ez.theme->foreground); |
| 33 | + ez.canvas.font(sans26); |
| 34 | + |
| 35 | + if (_diveResult != NULL) { |
| 36 | + ez.canvas.pos(150, 40); |
| 37 | + ez.canvas.print(zeropad(_diveResult->durationInSeconds/60, 2)); //minutes |
| 38 | + ez.canvas.print(":"); |
| 39 | + ez.canvas.print(zeropad(_diveResult->durationInSeconds%60, 2)); //seconds |
| 40 | + |
| 41 | + ez.canvas.pos(150, 80); |
| 42 | + ez.canvas.print(zeropad(_diveResult->noFlyTimeInMinutes/60, 2)); //hours |
| 43 | + ez.canvas.print(":"); |
| 44 | + ez.canvas.print(zeropad(_diveResult->noFlyTimeInMinutes%60, 2)); //minutes |
| 45 | + |
| 46 | + ez.canvas.pos(150, 120); |
| 47 | + if (_diveInoSettings.imperialUnitsSetting) { |
| 48 | + ez.canvas.print(_diveResult->maxDepthInMeters*3.28, 0); |
| 49 | + ez.canvas.print(" ft"); |
| 50 | + } else { |
| 51 | + ez.canvas.print(_diveResult->maxDepthInMeters); |
| 52 | + ez.canvas.print(" m"); |
| 53 | + } |
| 54 | + |
| 55 | + ez.canvas.pos(150, 160); |
| 56 | + if (_diveResult->wasDecoDive) { |
| 57 | + ez.canvas.print("yes"); |
| 58 | + } else { |
| 59 | + ez.canvas.print("no"); |
| 60 | + } |
| 61 | + } else { |
| 62 | + ez.canvas.pos(150, 40); |
| 63 | + ez.canvas.print("00:00"); |
| 64 | + |
| 65 | + ez.canvas.pos(150, 80); |
| 66 | + ez.canvas.print("00:00"); |
| 67 | + |
| 68 | + ez.canvas.pos(150, 120); |
| 69 | + ez.canvas.print("n/a"); |
| 70 | + |
| 71 | + ez.canvas.pos(150, 160); |
| 72 | + ez.canvas.print("n/a"); |
| 73 | + } |
9 | 74 | }
|
10 | 75 |
|
11 | 76 | void SurfaceScreen::handleButtonPress(String buttonName)
|
|
0 commit comments