// DO NOT EDIT. // swift-format-ignore-file // // Generated by the Swift generator plugin for the protocol buffer compiler. // Source: deviceonly.proto // // For information on using the generated types, please see the documentation: // https://github.com/apple/swift-protobuf/ import Foundation import SwiftProtobuf // If the compiler emits an error on this type, it is because this file // was generated by a version of the `protoc` Swift plug-in that is // incompatible with the version of SwiftProtobuf to which you are linking. // Please ensure that you are building against the same version of the API // that was used to generate this file. fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck { struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {} typealias Version = _2 } /// /// TODO: REPLACE enum ScreenFonts: SwiftProtobuf.Enum { typealias RawValue = Int /// /// TODO: REPLACE case fontSmall // = 0 /// /// TODO: REPLACE case fontMedium // = 1 /// /// TODO: REPLACE case fontLarge // = 2 case UNRECOGNIZED(Int) init() { self = .fontSmall } init?(rawValue: Int) { switch rawValue { case 0: self = .fontSmall case 1: self = .fontMedium case 2: self = .fontLarge default: self = .UNRECOGNIZED(rawValue) } } var rawValue: Int { switch self { case .fontSmall: return 0 case .fontMedium: return 1 case .fontLarge: return 2 case .UNRECOGNIZED(let i): return i } } } #if swift(>=4.2) extension ScreenFonts: CaseIterable { // The compiler won't synthesize support with the UNRECOGNIZED case. static var allCases: [ScreenFonts] = [ .fontSmall, .fontMedium, .fontLarge, ] } #endif // swift(>=4.2) /// /// This message is never sent over the wire, but it is used for serializing DB /// state to flash in the device code /// FIXME, since we write this each time we enter deep sleep (and have infinite /// flash) it would be better to use some sort of append only data structure for /// the receive queue and use the preferences store for the other stuff struct DeviceState { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// /// Read only settings/info about this node var myNode: MyNodeInfo { get {return _storage._myNode ?? MyNodeInfo()} set {_uniqueStorage()._myNode = newValue} } /// Returns true if `myNode` has been explicitly set. var hasMyNode: Bool {return _storage._myNode != nil} /// Clears the value of `myNode`. Subsequent reads from it will return its default value. mutating func clearMyNode() {_uniqueStorage()._myNode = nil} /// /// My owner info var owner: User { get {return _storage._owner ?? User()} set {_uniqueStorage()._owner = newValue} } /// Returns true if `owner` has been explicitly set. var hasOwner: Bool {return _storage._owner != nil} /// Clears the value of `owner`. Subsequent reads from it will return its default value. mutating func clearOwner() {_uniqueStorage()._owner = nil} /// /// TODO: REPLACE var nodeDb: [NodeInfo] { get {return _storage._nodeDb} set {_uniqueStorage()._nodeDb = newValue} } /// /// Received packets saved for delivery to the phone var receiveQueue: [MeshPacket] { get {return _storage._receiveQueue} set {_uniqueStorage()._receiveQueue = newValue} } /// /// A version integer used to invalidate old save files when we make /// incompatible changes This integer is set at build time and is private to /// NodeDB.cpp in the device code. var version: UInt32 { get {return _storage._version} set {_uniqueStorage()._version = newValue} } /// /// We keep the last received text message (only) stored in the device flash, /// so we can show it on the screen. /// Might be null var rxTextMessage: MeshPacket { get {return _storage._rxTextMessage ?? MeshPacket()} set {_uniqueStorage()._rxTextMessage = newValue} } /// Returns true if `rxTextMessage` has been explicitly set. var hasRxTextMessage: Bool {return _storage._rxTextMessage != nil} /// Clears the value of `rxTextMessage`. Subsequent reads from it will return its default value. mutating func clearRxTextMessage() {_uniqueStorage()._rxTextMessage = nil} /// /// Used only during development. /// Indicates developer is testing and changes should never be saved to flash. var noSave: Bool { get {return _storage._noSave} set {_uniqueStorage()._noSave = newValue} } /// /// Some GPSes seem to have bogus settings from the factory, so we always do one factory reset. var didGpsReset: Bool { get {return _storage._didGpsReset} set {_uniqueStorage()._didGpsReset = newValue} } var unknownFields = SwiftProtobuf.UnknownStorage() init() {} fileprivate var _storage = _StorageClass.defaultInstance } /// /// The on-disk saved channels struct ChannelFile { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// /// The channels our node knows about var channels: [Channel] = [] var unknownFields = SwiftProtobuf.UnknownStorage() init() {} } /// /// This can be used for customizing the firmware distribution. If populated, /// show a secondary bootup screen with cuatom logo and text for 2.5 seconds. struct OEMStore { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. /// /// The Logo width in Px var oemIconWidth: UInt32 = 0 /// /// The Logo height in Px var oemIconHeight: UInt32 = 0 /// /// The Logo in xbm bytechar format var oemIconBits: Data = Data() /// /// Use this font for the OEM text. var oemFont: ScreenFonts = .fontSmall /// /// Use this font for the OEM text. var oemText: String = String() var unknownFields = SwiftProtobuf.UnknownStorage() init() {} } #if swift(>=5.5) && canImport(_Concurrency) extension ScreenFonts: @unchecked Sendable {} extension DeviceState: @unchecked Sendable {} extension ChannelFile: @unchecked Sendable {} extension OEMStore: @unchecked Sendable {} #endif // swift(>=5.5) && canImport(_Concurrency) // MARK: - Code below here is support for the SwiftProtobuf runtime. extension ScreenFonts: SwiftProtobuf._ProtoNameProviding { static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ 0: .same(proto: "FONT_SMALL"), 1: .same(proto: "FONT_MEDIUM"), 2: .same(proto: "FONT_LARGE"), ] } extension DeviceState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "DeviceState" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ 2: .standard(proto: "my_node"), 3: .same(proto: "owner"), 4: .standard(proto: "node_db"), 5: .standard(proto: "receive_queue"), 8: .same(proto: "version"), 7: .standard(proto: "rx_text_message"), 9: .standard(proto: "no_save"), 11: .standard(proto: "did_gps_reset"), ] fileprivate class _StorageClass { var _myNode: MyNodeInfo? = nil var _owner: User? = nil var _nodeDb: [NodeInfo] = [] var _receiveQueue: [MeshPacket] = [] var _version: UInt32 = 0 var _rxTextMessage: MeshPacket? = nil var _noSave: Bool = false var _didGpsReset: Bool = false static let defaultInstance = _StorageClass() private init() {} init(copying source: _StorageClass) { _myNode = source._myNode _owner = source._owner _nodeDb = source._nodeDb _receiveQueue = source._receiveQueue _version = source._version _rxTextMessage = source._rxTextMessage _noSave = source._noSave _didGpsReset = source._didGpsReset } } fileprivate mutating func _uniqueStorage() -> _StorageClass { if !isKnownUniquelyReferenced(&_storage) { _storage = _StorageClass(copying: _storage) } return _storage } mutating func decodeMessage(decoder: inout D) throws { _ = _uniqueStorage() try withExtendedLifetime(_storage) { (_storage: _StorageClass) in while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 2: try { try decoder.decodeSingularMessageField(value: &_storage._myNode) }() case 3: try { try decoder.decodeSingularMessageField(value: &_storage._owner) }() case 4: try { try decoder.decodeRepeatedMessageField(value: &_storage._nodeDb) }() case 5: try { try decoder.decodeRepeatedMessageField(value: &_storage._receiveQueue) }() case 7: try { try decoder.decodeSingularMessageField(value: &_storage._rxTextMessage) }() case 8: try { try decoder.decodeSingularUInt32Field(value: &_storage._version) }() case 9: try { try decoder.decodeSingularBoolField(value: &_storage._noSave) }() case 11: try { try decoder.decodeSingularBoolField(value: &_storage._didGpsReset) }() default: break } } } } func traverse(visitor: inout V) throws { try withExtendedLifetime(_storage) { (_storage: _StorageClass) in // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 try { if let v = _storage._myNode { try visitor.visitSingularMessageField(value: v, fieldNumber: 2) } }() try { if let v = _storage._owner { try visitor.visitSingularMessageField(value: v, fieldNumber: 3) } }() if !_storage._nodeDb.isEmpty { try visitor.visitRepeatedMessageField(value: _storage._nodeDb, fieldNumber: 4) } if !_storage._receiveQueue.isEmpty { try visitor.visitRepeatedMessageField(value: _storage._receiveQueue, fieldNumber: 5) } try { if let v = _storage._rxTextMessage { try visitor.visitSingularMessageField(value: v, fieldNumber: 7) } }() if _storage._version != 0 { try visitor.visitSingularUInt32Field(value: _storage._version, fieldNumber: 8) } if _storage._noSave != false { try visitor.visitSingularBoolField(value: _storage._noSave, fieldNumber: 9) } if _storage._didGpsReset != false { try visitor.visitSingularBoolField(value: _storage._didGpsReset, fieldNumber: 11) } } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: DeviceState, rhs: DeviceState) -> Bool { if lhs._storage !== rhs._storage { let storagesAreEqual: Bool = withExtendedLifetime((lhs._storage, rhs._storage)) { (_args: (_StorageClass, _StorageClass)) in let _storage = _args.0 let rhs_storage = _args.1 if _storage._myNode != rhs_storage._myNode {return false} if _storage._owner != rhs_storage._owner {return false} if _storage._nodeDb != rhs_storage._nodeDb {return false} if _storage._receiveQueue != rhs_storage._receiveQueue {return false} if _storage._version != rhs_storage._version {return false} if _storage._rxTextMessage != rhs_storage._rxTextMessage {return false} if _storage._noSave != rhs_storage._noSave {return false} if _storage._didGpsReset != rhs_storage._didGpsReset {return false} return true } if !storagesAreEqual {return false} } if lhs.unknownFields != rhs.unknownFields {return false} return true } } extension ChannelFile: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "ChannelFile" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ 1: .same(proto: "channels"), ] mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 1: try { try decoder.decodeRepeatedMessageField(value: &self.channels) }() default: break } } } func traverse(visitor: inout V) throws { if !self.channels.isEmpty { try visitor.visitRepeatedMessageField(value: self.channels, fieldNumber: 1) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: ChannelFile, rhs: ChannelFile) -> Bool { if lhs.channels != rhs.channels {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } } extension OEMStore: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "OEMStore" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ 1: .standard(proto: "oem_icon_width"), 2: .standard(proto: "oem_icon_height"), 3: .standard(proto: "oem_icon_bits"), 4: .standard(proto: "oem_font"), 5: .standard(proto: "oem_text"), ] mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { // The use of inline closures is to circumvent an issue where the compiler // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { case 1: try { try decoder.decodeSingularUInt32Field(value: &self.oemIconWidth) }() case 2: try { try decoder.decodeSingularUInt32Field(value: &self.oemIconHeight) }() case 3: try { try decoder.decodeSingularBytesField(value: &self.oemIconBits) }() case 4: try { try decoder.decodeSingularEnumField(value: &self.oemFont) }() case 5: try { try decoder.decodeSingularStringField(value: &self.oemText) }() default: break } } } func traverse(visitor: inout V) throws { if self.oemIconWidth != 0 { try visitor.visitSingularUInt32Field(value: self.oemIconWidth, fieldNumber: 1) } if self.oemIconHeight != 0 { try visitor.visitSingularUInt32Field(value: self.oemIconHeight, fieldNumber: 2) } if !self.oemIconBits.isEmpty { try visitor.visitSingularBytesField(value: self.oemIconBits, fieldNumber: 3) } if self.oemFont != .fontSmall { try visitor.visitSingularEnumField(value: self.oemFont, fieldNumber: 4) } if !self.oemText.isEmpty { try visitor.visitSingularStringField(value: self.oemText, fieldNumber: 5) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: OEMStore, rhs: OEMStore) -> Bool { if lhs.oemIconWidth != rhs.oemIconWidth {return false} if lhs.oemIconHeight != rhs.oemIconHeight {return false} if lhs.oemIconBits != rhs.oemIconBits {return false} if lhs.oemFont != rhs.oemFont {return false} if lhs.oemText != rhs.oemText {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } }