#![allow(non_snake_case)]
#![allow(non_upper_case_globals)] #![allow(dead_code)]
use crate::ported::crt::ColorElements;
#[cfg(target_os = "macos")]
use crate::ported::darwin::platform::Platform_getUptime;
#[cfg(not(target_os = "macos"))]
use crate::ported::linux::platform::Platform_getUptime;
use crate::ported::meter::{Meter, MeterClass, Meter_class, LED_METERMODE, TEXT_METERMODE};
use crate::ported::object::ObjectClass;
pub fn UptimeMeter_updateValues(this: &mut Meter) {
let totalseconds = Platform_getUptime();
if totalseconds <= 0 {
this.txtBuffer = "(unknown)".to_string();
return;
}
let seconds = totalseconds % 60;
let minutes = (totalseconds / 60) % 60;
let hours = (totalseconds / 3600) % 24;
let days = totalseconds / 86400;
let daysbuf = if days > 100 {
format!("{} days(!), ", days)
} else if days > 1 {
format!("{} days, ", days)
} else if days == 1 {
"1 day, ".to_string()
} else {
String::new()
};
this.txtBuffer = format!("{}{:02}:{:02}:{:02}", daysbuf, hours, minutes, seconds);
}
pub fn SecondsUptimeMeter_updateValues(this: &mut Meter) {
let totalseconds = Platform_getUptime();
if totalseconds <= 0 {
this.txtBuffer = "(unknown)".to_string();
return;
}
this.txtBuffer = format!("{} s", totalseconds);
}
static UptimeMeter_attributes: [i32; 1] = [ColorElements::UPTIME as i32];
pub static UptimeMeter_class: MeterClass = MeterClass {
super_: ObjectClass {
extends: Some(&Meter_class.super_),
},
display: None,
init: None,
done: None,
updateMode: None,
updateValues: Some(UptimeMeter_updateValues),
draw: None,
getCaption: None,
getUiName: None,
defaultMode: TEXT_METERMODE,
supportedModes: (1 << TEXT_METERMODE) | (1 << LED_METERMODE),
total: 0.0,
attributes: &UptimeMeter_attributes,
name: "Uptime",
uiName: "Uptime",
caption: "Uptime: ",
description: None,
maxItems: 0,
isMultiColumn: false,
isPercentChart: false,
};
pub static SecondsUptimeMeter_class: MeterClass = MeterClass {
super_: ObjectClass {
extends: Some(&Meter_class.super_),
},
display: None,
init: None,
done: None,
updateMode: None,
updateValues: Some(SecondsUptimeMeter_updateValues),
draw: None,
getCaption: None,
getUiName: None,
defaultMode: TEXT_METERMODE,
supportedModes: (1 << TEXT_METERMODE) | (1 << LED_METERMODE),
total: 0.0,
attributes: &UptimeMeter_attributes,
name: "SecondsUptime",
uiName: "Uptime (seconds)",
caption: "Uptime: ",
description: None,
maxItems: 0,
isMultiColumn: false,
isPercentChart: false,
};