X-Git-Url: http://git.code-monkey.de/?p=gps-watch.git;a=blobdiff_plain;f=src%2Fapplication%2Fmodel.rs;h=4dc30c0b5c2ba305ad5ffadec6df03db817deac0;hp=a056af5b1fcf41f1a06b18a5eeab0e2fabc837f5;hb=bfb67fecfcab874dfbedce7001bbf991fadd7d73;hpb=beddb8cf26138f9aaa5fa8bacf8aa355fa0b069c diff --git a/src/application/model.rs b/src/application/model.rs index a056af5..4dc30c0 100644 --- a/src/application/model.rs +++ b/src/application/model.rs @@ -24,11 +24,13 @@ pub enum Field { UnixTime(u32), Distance(u32), + Pace(u32) } pub struct Model { pub unix_time: u32, pub distance_cm: u32, + pub pace_s: u32, is_dirty: u32, } @@ -38,6 +40,7 @@ impl Model { Model { unix_time: 0, distance_cm: 0, + pace_s: 0, is_dirty: 0, } } @@ -47,6 +50,12 @@ impl Model { self.distance_cm = 0; self.is_dirty |= Model::dirty_mask(Field::Distance(0)); } + + if self.pace_s != 0 { + self.pace_s = 0; + + self.is_dirty |= Model::dirty_mask(Field::Pace(0)); + } } pub fn update(&mut self, data: Field) { @@ -63,6 +72,12 @@ impl Model { self.is_dirty |= Model::dirty_mask(data); } }, + Field::Pace(pace_s) => { + if self.pace_s != pace_s { + self.pace_s = pace_s; + self.is_dirty |= Model::dirty_mask(data); + } + }, } } @@ -82,6 +97,7 @@ impl Model { match data { Field::UnixTime(_) => 1, Field::Distance(_) => 2, + Field::Pace(_) => 4, } } }