mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
200 lines
4.2 KiB
Swift
200 lines
4.2 KiB
Swift
//
|
|
// ScreenIntervals.swift
|
|
// Meshtastic
|
|
//
|
|
// Copyright(c) Garth Vander Houwen 8/20/22.
|
|
//
|
|
|
|
import Foundation
|
|
import MeshtasticProtobufs
|
|
|
|
enum ScreenUnits: Int, CaseIterable, Identifiable {
|
|
|
|
case metric = 0
|
|
case imperial = 1
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .metric:
|
|
return "Metric"
|
|
case .imperial:
|
|
return "Imperial"
|
|
}
|
|
}
|
|
func protoEnumValue() -> Config.DisplayConfig.DisplayUnits {
|
|
|
|
switch self {
|
|
case .metric:
|
|
return Config.DisplayConfig.DisplayUnits.metric
|
|
case .imperial:
|
|
return Config.DisplayConfig.DisplayUnits.imperial
|
|
}
|
|
}
|
|
}
|
|
|
|
enum ScreenOnIntervals: Int, CaseIterable, Identifiable {
|
|
|
|
case fifteenSeconds = 15
|
|
case thirtySeconds = 30
|
|
case oneMinute = 60
|
|
case fiveMinutes = 300
|
|
case tenMinutes = 600
|
|
case fifteenMinutes = 900
|
|
case thirtyMinutes = 1800
|
|
case oneHour = 3600
|
|
case max = 31536000 // One Year
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .fifteenSeconds:
|
|
return "Fifteen Seconds".localized
|
|
case .thirtySeconds:
|
|
return "Thirty Seconds".localized
|
|
case .oneMinute:
|
|
return "One Minute".localized
|
|
case .fiveMinutes:
|
|
return "Five Minutes".localized
|
|
case .tenMinutes:
|
|
return "Ten Minutes".localized
|
|
case .fifteenMinutes:
|
|
return "Fifteen Minutes".localized
|
|
case .thirtyMinutes:
|
|
return "Thirty Minutes".localized
|
|
case .oneHour:
|
|
return "One Hour".localized
|
|
case .max:
|
|
return "Always On".localized
|
|
}
|
|
}
|
|
}
|
|
|
|
// Default of 0 is off
|
|
enum ScreenCarouselIntervals: Int, CaseIterable, Identifiable {
|
|
|
|
case off = 0
|
|
case fifteenSeconds = 15
|
|
case thirtySeconds = 30
|
|
case oneMinute = 60
|
|
case fiveMinutes = 300
|
|
case tenMinutes = 600
|
|
case fifteenMinutes = 900
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .off:
|
|
return "off".localized.capitalized
|
|
case .fifteenSeconds:
|
|
return "Fifteen Seconds".localized
|
|
case .thirtySeconds:
|
|
return "Thirty Seconds".localized
|
|
case .oneMinute:
|
|
return "One Minute".localized
|
|
case .fiveMinutes:
|
|
return "Five Minutes".localized
|
|
case .tenMinutes:
|
|
return "Ten Minutes".localized
|
|
case .fifteenMinutes:
|
|
return "Fifteen Minutes".localized
|
|
}
|
|
}
|
|
}
|
|
// Default of 0 is auto
|
|
enum OledTypes: Int, CaseIterable, Identifiable {
|
|
|
|
case auto = 0
|
|
case ssd1306 = 1
|
|
case sh1106 = 2
|
|
case sh1107 = 3
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .auto:
|
|
return "Detect Automatically".localized
|
|
case .ssd1306:
|
|
return "SSD 1306"
|
|
case .sh1106:
|
|
return "SH 1106"
|
|
case .sh1107:
|
|
return "SH 1107"
|
|
}
|
|
}
|
|
func protoEnumValue() -> Config.DisplayConfig.OledType {
|
|
|
|
switch self {
|
|
case .auto:
|
|
return Config.DisplayConfig.OledType.oledAuto
|
|
case .ssd1306:
|
|
return Config.DisplayConfig.OledType.oledSsd1306
|
|
case .sh1106:
|
|
return Config.DisplayConfig.OledType.oledSh1106
|
|
case .sh1107:
|
|
return Config.DisplayConfig.OledType.oledSh1107
|
|
}
|
|
}
|
|
}
|
|
|
|
// Default of 0 is auto
|
|
enum DisplayModes: Int, CaseIterable, Identifiable {
|
|
|
|
case defaultMode = 0
|
|
case twoColor = 1
|
|
case inverted = 2
|
|
case color = 3
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .defaultMode:
|
|
return "Default 128x64 screen layout".localized
|
|
case .twoColor:
|
|
return "Optimized for 2 color displays".localized
|
|
case .inverted:
|
|
return "Inverted top bar for 2 Color display".localized
|
|
case .color:
|
|
return "TFT Full Color Displays".localized
|
|
}
|
|
}
|
|
func protoEnumValue() -> Config.DisplayConfig.DisplayMode {
|
|
|
|
switch self {
|
|
case .defaultMode:
|
|
return Config.DisplayConfig.DisplayMode.default
|
|
case .twoColor:
|
|
return Config.DisplayConfig.DisplayMode.twocolor
|
|
case .inverted:
|
|
return Config.DisplayConfig.DisplayMode.inverted
|
|
case .color:
|
|
return Config.DisplayConfig.DisplayMode.color
|
|
}
|
|
}
|
|
}
|
|
|
|
// Default of 0 is metric
|
|
enum Units: Int, CaseIterable, Identifiable {
|
|
|
|
case metric = 0
|
|
case imperial = 1
|
|
|
|
var id: Int { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
case .metric:
|
|
return "Metric"
|
|
case .imperial:
|
|
return "Imperial"
|
|
}
|
|
}
|
|
func protoEnumValue() -> Config.DisplayConfig.DisplayUnits {
|
|
|
|
switch self {
|
|
case .metric:
|
|
return Config.DisplayConfig.DisplayUnits.metric
|
|
case .imperial:
|
|
return Config.DisplayConfig.DisplayUnits.imperial
|
|
}
|
|
}
|
|
}
|