X-Git-Url: http://git.code-monkey.de/?p=gps-watch.git;a=blobdiff_plain;f=src%2Fapplication%2Fmain.rs;h=bdd1e4d14c6d9d664485ce999972cf10829938fd;hp=95a60dad6d266560a86e045b45f2175020346ebc;hb=bfb67fecfcab874dfbedce7001bbf991fadd7d73;hpb=beddb8cf26138f9aaa5fa8bacf8aa355fa0b069c diff --git a/src/application/main.rs b/src/application/main.rs index 95a60da..bdd1e4d 100644 --- a/src/application/main.rs +++ b/src/application/main.rs @@ -60,6 +60,7 @@ extern { enum View { Time, Distance, + Pace, } struct Timer { @@ -91,14 +92,16 @@ impl Timer { fn next_view(view: View) -> View { match view { View::Time => View::Distance, - View::Distance => View::Time, + View::Distance => View::Pace, + View::Pace => View::Time, } } fn previous_view(view: View) -> View { match view { - View::Time => View::Distance, + View::Time => View::Pace, View::Distance => View::Time, + View::Pace => View::Distance, } } @@ -252,6 +255,7 @@ pub unsafe extern "C" fn _start() -> ! { let mut time_view = views::TimeView::new(); let mut distance_view = views::DistanceView::new(); + let mut pace_view = views::PaceView::new(); let mut model = model::Model::new(); @@ -264,6 +268,7 @@ pub unsafe extern "C" fn _start() -> ! { logger.log(&prev_tap, &tap); model.update(model::Field::Distance(logger.total_distance_cm)); + model.update(model::Field::Pace(logger.pace_s)); } model.update(model::Field::UnixTime(tap.unix_time)); @@ -314,6 +319,11 @@ pub unsafe extern "C" fn _start() -> ! { display.draw(&screen); } }, + View::Pace => { + if pace_view.draw(&mut screen, &mut model) { + display.draw(&screen); + } + }, } heart_icon_timer.update(|state| { @@ -358,6 +368,7 @@ pub unsafe extern "C" fn _start() -> ! { match view { View::Time => time_view.invalidate(), View::Distance => distance_view.invalidate(), + View::Pace => pace_view.invalidate(), } }