diff options
Diffstat (limited to 'core/gas.c')
-rw-r--r-- | core/gas.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/core/gas.c b/core/gas.c index 9f67d0b92..040f938f6 100644 --- a/core/gas.c +++ b/core/gas.c @@ -77,3 +77,20 @@ bool gasmix_is_air(struct gasmix gasmix) int he = gasmix.he.permille; return (he == 0) && (o2 == 0 || ((o2 >= O2_IN_AIR - 1) && (o2 <= O2_IN_AIR + 1))); } + +static fraction_t make_fraction(int i) +{ + fraction_t res; + res.permille = i; + return res; +} + +fraction_t get_gas_component_fraction(struct gasmix mix, enum gas_component component) +{ + switch (component) { + case O2: return make_fraction(get_o2(mix)); + case N2: return make_fraction(get_n2(mix)); + case HE: return make_fraction(get_he(mix)); + default: return make_fraction(0); + } +} |