diff --git a/ModuleKit/Widgets/BarChart.swift b/ModuleKit/Widgets/BarChart.swift index dd4d1169..302cdb82 100644 --- a/ModuleKit/Widgets/BarChart.swift +++ b/ModuleKit/Widgets/BarChart.swift @@ -18,7 +18,6 @@ public class BarChart: WidgetWrapper { private var frameState: Bool = false private var colorState: widget_c = .systemAccent - private let store: UnsafePointer? private var colors: [widget_c] = widget_c.allCases private var value: [Double] = [] private var pressureLevel: Int = 0 @@ -27,9 +26,8 @@ public class BarChart: WidgetWrapper { private var boxSettingsView: NSView? = nil private var frameSettingsView: NSView? = nil - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title - self.store = store if config != nil { var configuration = config! @@ -73,11 +71,11 @@ public class BarChart: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.boxState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) - self.frameState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) - self.labelState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) - self.colorState = widget_c(rawValue: store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState + if !preview { + self.boxState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) + self.frameState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) + self.labelState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) + self.colorState = widget_c(rawValue: Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState } if preview { @@ -294,7 +292,7 @@ public class BarChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.labelState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) self.display() } @@ -306,12 +304,12 @@ public class BarChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.boxState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) if self.frameState { FindAndToggleNSControlState(self.frameSettingsView, state: .off) self.frameState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) } self.display() @@ -325,12 +323,12 @@ public class BarChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.frameState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) if self.boxState { FindAndToggleNSControlState(self.boxSettingsView, state: .off) self.boxState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) } self.display() @@ -339,7 +337,7 @@ public class BarChart: WidgetWrapper { @objc private func toggleColor(_ sender: NSMenuItem) { if let newColor = widget_c.allCases.first(where: { $0.rawValue == sender.title }) { self.colorState = newColor - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) self.display() } } diff --git a/ModuleKit/Widgets/Battery.swift b/ModuleKit/Widgets/Battery.swift index b990c241..db9ba47b 100644 --- a/ModuleKit/Widgets/Battery.swift +++ b/ModuleKit/Widgets/Battery.swift @@ -19,16 +19,13 @@ public class BatterykWidget: WidgetWrapper { private var colorState: Bool = false private var hideAdditionalWhenFull: Bool = true - private let store: UnsafePointer? - private var percentage: Double = 1 private var time: Int = 0 private var charging: Bool = false private var ACStatus: Bool = false - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { let widgetTitle: String = title - self.store = store super.init(.battery, title: widgetTitle, frame: CGRect( x: Constants.Widget.margin.x, @@ -39,12 +36,12 @@ public class BatterykWidget: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.additional = store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_additional", defaultValue: self.additional) - self.timeFormat = store!.pointee.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) - self.iconState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.iconState) - self.colorState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState) - self.hideAdditionalWhenFull = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_hideAdditionalWhenFull", defaultValue: self.hideAdditionalWhenFull) + if !preview { + self.additional = Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_additional", defaultValue: self.additional) + self.timeFormat = Store.shared.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) + self.iconState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.iconState) + self.colorState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState) + self.hideAdditionalWhenFull = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_hideAdditionalWhenFull", defaultValue: self.hideAdditionalWhenFull) } if preview { @@ -233,7 +230,7 @@ public class BatterykWidget: WidgetWrapper { public func setValue(percentage: Double, ACStatus: Bool, isCharging: Bool, time: Int) { var updated: Bool = false - let timeFormat: String = store!.pointee.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) + let timeFormat: String = Store.shared.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) if self.percentage != percentage { self.percentage = percentage @@ -306,7 +303,7 @@ public class BatterykWidget: WidgetWrapper { return } self.additional = key - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_additional", value: key) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_additional", value: key) self.display() } @@ -318,7 +315,7 @@ public class BatterykWidget: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.hideAdditionalWhenFull = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_hideAdditionalWhenFull", value: self.hideAdditionalWhenFull) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_hideAdditionalWhenFull", value: self.hideAdditionalWhenFull) self.display() } @@ -330,7 +327,7 @@ public class BatterykWidget: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.colorState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState) self.display() } } diff --git a/ModuleKit/Widgets/LineChart.swift b/ModuleKit/Widgets/LineChart.swift index e9e6a0b0..a320f82e 100644 --- a/ModuleKit/Widgets/LineChart.swift +++ b/ModuleKit/Widgets/LineChart.swift @@ -22,7 +22,6 @@ public class LineChart: WidgetWrapper { private let width: CGFloat = 34 - private let store: UnsafePointer? private var chart: LineChartView = LineChartView(frame: NSRect( x: 0, y: 0, @@ -36,9 +35,8 @@ public class LineChart: WidgetWrapper { private var boxSettingsView: NSView? = nil private var frameSettingsView: NSView? = nil - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title - self.store = store if config != nil { if let titleFromConfig = config!["Title"] as? String { widgetTitle = titleFromConfig @@ -73,13 +71,13 @@ public class LineChart: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.boxState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) - self.frameState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) - self.valueState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_value", defaultValue: self.valueState) - self.labelState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) - self.valueColorState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_valueColor", defaultValue: self.valueColorState) - self.colorState = widget_c(rawValue: store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState + if !preview { + self.boxState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) + self.frameState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) + self.valueState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_value", defaultValue: self.valueState) + self.labelState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) + self.valueColorState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_valueColor", defaultValue: self.valueColorState) + self.colorState = widget_c(rawValue: Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState } if self.labelState { @@ -315,7 +313,7 @@ public class LineChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.labelState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) self.display() } @@ -327,12 +325,12 @@ public class LineChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.boxState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) if self.frameState { FindAndToggleNSControlState(self.frameSettingsView, state: .off) self.frameState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) } self.display() @@ -346,12 +344,12 @@ public class LineChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.frameState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) if self.boxState { FindAndToggleNSControlState(self.boxSettingsView, state: .off) self.boxState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) } self.display() @@ -365,14 +363,14 @@ public class LineChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.valueState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) self.display() } @objc private func toggleColor(_ sender: NSMenuItem) { if let newColor = widget_c.allCases.first(where: { $0.rawValue == sender.title }) { self.colorState = newColor - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) self.display() } } @@ -385,7 +383,7 @@ public class LineChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.valueColorState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_valueColor", value: self.valueColorState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_valueColor", value: self.valueColorState) self.display() } } diff --git a/ModuleKit/Widgets/Memory.swift b/ModuleKit/Widgets/Memory.swift index e9df52ab..0bb5b605 100644 --- a/ModuleKit/Widgets/Memory.swift +++ b/ModuleKit/Widgets/Memory.swift @@ -16,10 +16,7 @@ public class MemoryWidget: WidgetWrapper { private var orderReversedState: Bool = false private var value: (String, String) = ("0", "0") - private let store: UnsafePointer? - - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { - self.store = store + public init(title: String, config: NSDictionary?, preview: Bool = false) { if config != nil { var configuration = config! @@ -46,8 +43,8 @@ public class MemoryWidget: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.orderReversedState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_orderReversed", defaultValue: self.orderReversedState) + if !preview { + self.orderReversedState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_orderReversed", defaultValue: self.orderReversedState) } if preview { @@ -131,7 +128,7 @@ public class MemoryWidget: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.orderReversedState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_orderReversed", value: self.orderReversedState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_orderReversed", value: self.orderReversedState) self.display() } } diff --git a/ModuleKit/Widgets/Mini.swift b/ModuleKit/Widgets/Mini.swift index 9a57da19..8f23d8d0 100644 --- a/ModuleKit/Widgets/Mini.swift +++ b/ModuleKit/Widgets/Mini.swift @@ -13,7 +13,6 @@ import Cocoa import StatsKit public class Mini: WidgetWrapper { - private let store: UnsafePointer? private let defaultTitle: String private var labelState: Bool = true @@ -34,8 +33,7 @@ public class Mini: WidgetWrapper { } } - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { - self.store = store + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title if config != nil { var configuration = config! @@ -77,9 +75,9 @@ public class Mini: WidgetWrapper { self.canDrawConcurrently = true - if let store = self.store, !preview { - self.colorState = widget_c(rawValue: store.pointee.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState - self.labelState = store.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) + if !preview { + self.colorState = widget_c(rawValue: Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_color", defaultValue: self.colorState.rawValue)) ?? self.colorState + self.labelState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) } } @@ -201,7 +199,7 @@ public class Mini: WidgetWrapper { @objc private func toggleColor(_ sender: NSMenuItem) { if let newColor = widget_c.allCases.first(where: { $0.rawValue == sender.title }) { self.colorState = newColor - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_color", value: self.colorState.rawValue) self.display() } } @@ -214,7 +212,7 @@ public class Mini: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.labelState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) self.display() } } diff --git a/ModuleKit/Widgets/NetworkChart.swift b/ModuleKit/Widgets/NetworkChart.swift index a587934e..fd0544d9 100644 --- a/ModuleKit/Widgets/NetworkChart.swift +++ b/ModuleKit/Widgets/NetworkChart.swift @@ -16,7 +16,6 @@ public class NetworkChart: WidgetWrapper { private var boxState: Bool = false private var frameState: Bool = false - private let store: UnsafePointer? private var chart: NetworkChartView = NetworkChartView( frame: NSRect( x: 0, @@ -31,9 +30,8 @@ public class NetworkChart: WidgetWrapper { private var boxSettingsView: NSView? = nil private var frameSettingsView: NSView? = nil - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title - self.store = store if config != nil { if let titleFromConfig = config!["Title"] as? String { widgetTitle = titleFromConfig @@ -49,9 +47,9 @@ public class NetworkChart: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.boxState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) - self.frameState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) + if !preview { + self.boxState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_box", defaultValue: self.boxState) + self.frameState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_frame", defaultValue: self.frameState) } if preview { @@ -157,12 +155,12 @@ public class NetworkChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.boxState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) if self.frameState { FindAndToggleNSControlState(self.frameSettingsView, state: .off) self.frameState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) } self.display() @@ -176,12 +174,12 @@ public class NetworkChart: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.frameState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_frame", value: self.frameState) if self.boxState { FindAndToggleNSControlState(self.boxSettingsView, state: .off) self.boxState = false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_box", value: self.boxState) } self.display() diff --git a/ModuleKit/Widgets/PieChart.swift b/ModuleKit/Widgets/PieChart.swift index 2b57f79c..067ff1d0 100644 --- a/ModuleKit/Widgets/PieChart.swift +++ b/ModuleKit/Widgets/PieChart.swift @@ -15,7 +15,6 @@ import StatsKit public class PieChart: WidgetWrapper { private var labelState: Bool = true - private let store: UnsafePointer? private var chart: PieChartView = PieChartView( frame: NSRect( x: Constants.Widget.margin.x, @@ -29,9 +28,8 @@ public class PieChart: WidgetWrapper { private let size: CGFloat = Constants.Widget.height - (Constants.Widget.margin.y*2) + (Constants.Widget.margin.x*2) - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title - self.store = store if config != nil { if let titleFromConfig = config!["Title"] as? String { widgetTitle = titleFromConfig @@ -47,8 +45,8 @@ public class PieChart: WidgetWrapper { self.canDrawConcurrently = true - if let store = self.store, !preview { - self.labelState = store.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) + if !preview { + self.labelState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_label", defaultValue: self.labelState) } if preview { @@ -128,7 +126,7 @@ public class PieChart: WidgetWrapper { } self.labelState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_label", value: self.labelState) let x = self.labelState ? 6 + Constants.Widget.spacing : 0 self.labelView!.isHidden = !self.labelState diff --git a/ModuleKit/Widgets/Sensors.swift b/ModuleKit/Widgets/Sensors.swift index 67324e91..cb948325 100644 --- a/ModuleKit/Widgets/Sensors.swift +++ b/ModuleKit/Widgets/Sensors.swift @@ -14,13 +14,11 @@ import StatsKit public class SensorsWidget: WidgetWrapper { private var modeState: String = "automatic" - private let store: UnsafePointer? private var body: CALayer = CALayer() private var values: [KeyValue_t] = [] - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { - self.store = store + public init(title: String, config: NSDictionary?, preview: Bool = false) { if config != nil { var configuration = config! @@ -43,7 +41,7 @@ public class SensorsWidget: WidgetWrapper { height: Constants.Widget.height - (2*Constants.Widget.margin.y) )) - self.modeState = store?.pointee.string(key: "\(self.title)_\(self.type.rawValue)_mode", defaultValue: self.modeState) ?? self.modeState + self.modeState = Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_mode", defaultValue: self.modeState) self.wantsLayer = true self.layerContentsRedrawPolicy = .onSetNeedsDisplay @@ -239,7 +237,7 @@ public class SensorsWidget: WidgetWrapper { return } self.modeState = key - store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_mode", value: key) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_mode", value: key) self.redraw(self.values) } } diff --git a/ModuleKit/Widgets/Speed.swift b/ModuleKit/Widgets/Speed.swift index 27e1b38c..7edd3d0a 100644 --- a/ModuleKit/Widgets/Speed.swift +++ b/ModuleKit/Widgets/Speed.swift @@ -26,12 +26,10 @@ public class SpeedWidget: WidgetWrapper { private var uploadValue: Int64 = 0 private var downloadValue: Int64 = 0 - private let store: UnsafePointer? private var width: CGFloat = 58 - public init(title: String, config: NSDictionary?, store: UnsafePointer?, preview: Bool = false) { + public init(title: String, config: NSDictionary?, preview: Bool = false) { let widgetTitle: String = title - self.store = store if config != nil { if let symbols = config!["Symbols"] as? [String] { self.symbols = symbols @@ -50,10 +48,10 @@ public class SpeedWidget: WidgetWrapper { self.canDrawConcurrently = true - if self.store != nil && !preview { - self.valueState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_value", defaultValue: self.valueState) - self.icon = store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.baseValue) - self.baseValue = store!.pointee.string(key: "\(self.title)_base", defaultValue: self.baseValue) + if !preview { + self.valueState = Store.shared.bool(key: "\(self.title)_\(self.type.rawValue)_value", defaultValue: self.valueState) + self.icon = Store.shared.string(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.baseValue) + self.baseValue = Store.shared.string(key: "\(self.title)_base", defaultValue: self.baseValue) } if self.valueState && self.icon != "none" { @@ -256,7 +254,7 @@ public class SpeedWidget: WidgetWrapper { state = sender is NSButton ? (sender as! NSButton).state: nil } self.valueState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) self.display() if !self.valueState && self.icon == .none { @@ -273,7 +271,7 @@ public class SpeedWidget: WidgetWrapper { return } self.icon = key - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_icon", value: key) + Store.shared.set(key: "\(self.title)_\(self.type.rawValue)_icon", value: key) self.display() if !self.valueState && self.icon == "none" { @@ -290,7 +288,7 @@ public class SpeedWidget: WidgetWrapper { return } self.baseValue = key - self.store?.pointee.set(key: "\(self.title)_base", value: self.baseValue) + Store.shared.set(key: "\(self.title)_base", value: self.baseValue) } public func setValue(upload: Int64, download: Int64) { diff --git a/ModuleKit/module.swift b/ModuleKit/module.swift index 9bf431cc..82e6da1d 100644 --- a/ModuleKit/module.swift +++ b/ModuleKit/module.swift @@ -80,25 +80,23 @@ open class Module: Module_p { private var popupView: Popup_p? = nil private let log: OSLog - private var store: UnsafePointer private var readers: [Reader_p] = [] - public init(store: UnsafePointer, popup: Popup_p?, settings: Settings_v?) { + public init(popup: Popup_p?, settings: Settings_v?) { self.config = module_c(in: Bundle(for: type(of: self)).path(forResource: "config", ofType: "plist")!) self.log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: self.config.name) - self.store = store self.settingsView = settings self.popupView = popup self.available = self.isAvailable() - self.enabled = self.store.pointee.bool(key: "\(self.config.name)_state", defaultValue: self.config.defaultState) + self.enabled = Store.shared.bool(key: "\(self.config.name)_state", defaultValue: self.config.defaultState) if !self.available { os_log(.debug, log: log, "Module is not available") if self.enabled { self.enabled = false - self.store.pointee.set(key: "\(self.config.name)_state", value: false) + Store.shared.set(key: "\(self.config.name)_state", value: false) } return @@ -115,7 +113,7 @@ open class Module: Module_p { os_log(.debug, log: log, "Module started without widget") } - self.settings = Settings(store: store, config: &self.config, widgets: &self.widgets, enabled: self.enabled, moduleSettings: self.settingsView) + self.settings = Settings(config: &self.config, widgets: &self.widgets, enabled: self.enabled, moduleSettings: self.settingsView) self.settings?.toggleCallback = { [weak self] in self?.toggleEnabled() } @@ -134,7 +132,7 @@ open class Module: Module_p { } self.readers.forEach { (reader: Reader_p) in - reader.initStoreValues(title: self.config.name, store: self.store) + reader.initStoreValues(title: self.config.name) reader.start() } } @@ -164,9 +162,9 @@ open class Module: Module_p { guard self.available else { return } self.enabled = true - self.store.pointee.set(key: "\(self.config.name)_state", value: true) + Store.shared.set(key: "\(self.config.name)_state", value: true) self.readers.forEach { (reader: Reader_p) in - reader.initStoreValues(title: self.config.name, store: self.store) + reader.initStoreValues(title: self.config.name) reader.start() } self.widgets.forEach{ $0.enable() } @@ -178,7 +176,7 @@ open class Module: Module_p { guard self.available else { return } self.enabled = false - self.store.pointee.set(key: "\(self.config.name)_state", value: false) + Store.shared.set(key: "\(self.config.name)_state", value: false) self.readers.forEach{ $0.stop() } self.widgets.forEach{ $0.disable() } self.popup?.setIsVisible(false) @@ -222,7 +220,6 @@ open class Module: Module_p { self.config.availableWidgets.forEach { (widgetType: widget_t) in if let widget = widgetType.new( - store: self.store, module: self.config.name, config: self.config.widgetsConfig, defaultWidget: self.config.defaultWidget diff --git a/ModuleKit/reader.swift b/ModuleKit/reader.swift index f748b1d6..3647ac6c 100644 --- a/ModuleKit/reader.swift +++ b/ModuleKit/reader.swift @@ -36,7 +36,7 @@ public protocol Reader_p { func lock() -> Void func unlock() -> Void - func initStoreValues(title: String, store: UnsafePointer) -> Void + func initStoreValues(title: String) -> Void func setInterval(_ value: Int) -> Void } @@ -75,12 +75,12 @@ open class Reader: ReaderInternal_p { os_log(.debug, log: self.log, "Successfully initialize reader") } - public func initStoreValues(title: String, store: UnsafePointer) { + public func initStoreValues(title: String) { guard self.interval == nil else { return } - let updateIntervalString = store.pointee.string(key: "\(title)_updateInterval", defaultValue: "\(self.defaultInterval)") + let updateIntervalString = Store.shared.string(key: "\(title)_updateInterval", defaultValue: "\(self.defaultInterval)") if let updateInterval = Double(updateIntervalString) { self.interval = updateInterval } diff --git a/ModuleKit/settings.swift b/ModuleKit/settings.swift index 005106da..571727af 100644 --- a/ModuleKit/settings.swift +++ b/ModuleKit/settings.swift @@ -27,7 +27,6 @@ open class Settings: NSView, Settings_p { private let headerHeight: CGFloat = 42 private var config: UnsafePointer - private var store: UnsafePointer private var widgets: UnsafeMutablePointer<[Widget]> private var activeWidget: Widget? { @@ -42,8 +41,7 @@ open class Settings: NSView, Settings_p { private var widgetSettings: widget_t? private var moduleSettingsContainer: NSView? - init(store: UnsafePointer, config: UnsafePointer, widgets: UnsafeMutablePointer<[Widget]>, enabled: Bool, moduleSettings: Settings_v?) { - self.store = store + init(config: UnsafePointer, widgets: UnsafeMutablePointer<[Widget]>, enabled: Bool, moduleSettings: Settings_v?) { self.config = config self.widgets = widgets self.moduleSettings = moduleSettings diff --git a/ModuleKit/widget.swift b/ModuleKit/widget.swift index 8d43bb51..3ac838ed 100644 --- a/ModuleKit/widget.swift +++ b/ModuleKit/widget.swift @@ -25,7 +25,7 @@ public enum widget_t: String { case sensors = "sensors" case memory = "memory" - public func new(store: UnsafePointer, module: String, config: NSDictionary, defaultWidget: widget_t) -> Widget? { + public func new(module: String, config: NSDictionary, defaultWidget: widget_t) -> Widget? { var preview: widget_p? = nil var item: widget_p? = nil guard let widgetConfig: NSDictionary = config[self.rawValue] as? NSDictionary else { @@ -34,40 +34,40 @@ public enum widget_t: String { switch self { case .mini: - preview = Mini(title: module, config: widgetConfig, store: store, preview: true) - item = Mini(title: module, config: widgetConfig, store: store, preview: false) + preview = Mini(title: module, config: widgetConfig, preview: true) + item = Mini(title: module, config: widgetConfig, preview: false) break case .lineChart: - preview = LineChart(title: module, config: widgetConfig, store: store, preview: true) - item = LineChart(title: module, config: widgetConfig, store: store, preview: false) + preview = LineChart(title: module, config: widgetConfig, preview: true) + item = LineChart(title: module, config: widgetConfig, preview: false) break case .barChart: - preview = BarChart(title: module, config: widgetConfig, store: store, preview: true) - item = BarChart(title: module, config: widgetConfig, store: store, preview: false) + preview = BarChart(title: module, config: widgetConfig, preview: true) + item = BarChart(title: module, config: widgetConfig, preview: false) break case .pieChart: - preview = PieChart(title: module, config: widgetConfig, store: store, preview: true) - item = PieChart(title: module, config: widgetConfig, store: store, preview: false) + preview = PieChart(title: module, config: widgetConfig, preview: true) + item = PieChart(title: module, config: widgetConfig, preview: false) break case .networkChart: - preview = NetworkChart(title: module, config: widgetConfig, store: store, preview: true) - item = NetworkChart(title: module, config: widgetConfig, store: store, preview: false) + preview = NetworkChart(title: module, config: widgetConfig, preview: true) + item = NetworkChart(title: module, config: widgetConfig, preview: false) break case .speed: - preview = SpeedWidget(title: module, config: widgetConfig, store: store, preview: true) - item = SpeedWidget(title: module, config: widgetConfig, store: store, preview: false) + preview = SpeedWidget(title: module, config: widgetConfig, preview: true) + item = SpeedWidget(title: module, config: widgetConfig, preview: false) break case .battery: - preview = BatterykWidget(title: module, config: widgetConfig, store: store, preview: true) - item = BatterykWidget(title: module, config: widgetConfig, store: store, preview: false) + preview = BatterykWidget(title: module, config: widgetConfig, preview: true) + item = BatterykWidget(title: module, config: widgetConfig, preview: false) break case .sensors: - preview = SensorsWidget(title: module, config: widgetConfig, store: store, preview: true) - item = SensorsWidget(title: module, config: widgetConfig, store: store, preview: false) + preview = SensorsWidget(title: module, config: widgetConfig, preview: true) + item = SensorsWidget(title: module, config: widgetConfig, preview: false) break case .memory: - preview = MemoryWidget(title: module, config: widgetConfig, store: store, preview: true) - item = MemoryWidget(title: module, config: widgetConfig, store: store, preview: false) + preview = MemoryWidget(title: module, config: widgetConfig, preview: true) + item = MemoryWidget(title: module, config: widgetConfig, preview: false) break default: break } diff --git a/Modules/Battery/main.swift b/Modules/Battery/main.swift index fd1b6931..dbcaa3aa 100644 --- a/Modules/Battery/main.swift +++ b/Modules/Battery/main.swift @@ -45,25 +45,21 @@ public class Battery: Module { private let popupView: Popup private var settingsView: Settings - private let store: UnsafePointer - private var lowNotification: NSUserNotification? = nil private var highNotification: NSUserNotification? = nil - public init(_ store: UnsafePointer) { - self.store = store - self.settingsView = Settings("Battery", store: store) - self.popupView = Popup("Battery", store: store) + public init() { + self.settingsView = Settings("Battery") + self.popupView = Popup("Battery") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) guard self.available else { return } self.usageReader = UsageReader() - self.processReader = ProcessReader(self.config.name, store: store) + self.processReader = ProcessReader() self.settingsView.callback = { DispatchQueue.global(qos: .background).async { @@ -130,7 +126,7 @@ public class Battery: Module { } private func checkLowNotification(value: Battery_Usage) { - let level = self.store.pointee.string(key: "\(self.config.name)_lowLevelNotification", defaultValue: "0.15") + let level = Store.shared.string(key: "\(self.config.name)_lowLevelNotification", defaultValue: "0.15") if level == "Disabled" { return } @@ -167,7 +163,7 @@ public class Battery: Module { } private func checkHighNotification(value: Battery_Usage) { - let level = self.store.pointee.string(key: "\(self.config.name)_highLevelNotification", defaultValue: "Disabled") + let level = Store.shared.string(key: "\(self.config.name)_highLevelNotification", defaultValue: "Disabled") if level == "Disabled" { return } diff --git a/Modules/Battery/popup.swift b/Modules/Battery/popup.swift index cc7d52d9..2df56e7a 100644 --- a/Modules/Battery/popup.swift +++ b/Modules/Battery/popup.swift @@ -14,7 +14,6 @@ import ModuleKit import StatsKit internal class Popup: NSView, Popup_p { - private var store: UnsafePointer private var title: String private var grid: NSGridView? = nil @@ -52,7 +51,7 @@ internal class Popup: NSView, Popup_p { private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } private var processesHeight: CGFloat { @@ -63,14 +62,13 @@ internal class Popup: NSView, Popup_p { } private var timeFormat: String { get { - return self.store.pointee.string(key: "\(self.title)_timeFormat", defaultValue: "short") + return Store.shared.string(key: "\(self.title)_timeFormat", defaultValue: "short") } } public var sizeCallback: ((NSSize) -> Void)? = nil - public init(_ title: String, store: UnsafePointer) { - self.store = store + public init(_ title: String) { self.title = title super.init(frame: NSRect( diff --git a/Modules/Battery/readers.swift b/Modules/Battery/readers.swift index bd6b6475..ecca47de 100644 --- a/Modules/Battery/readers.swift +++ b/Modules/Battery/readers.swift @@ -142,8 +142,7 @@ internal class UsageReader: Reader { } public class ProcessReader: Reader<[TopProcess]> { - private let store: UnsafePointer - private let title: String + private let title: String = "Battery" private var task: Process = Process() private var initialized: Bool = false @@ -151,16 +150,10 @@ public class ProcessReader: Reader<[TopProcess]> { private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } - init(_ title: String, store: UnsafePointer) { - self.title = title - self.store = store - super.init() - } - public override func setup() { self.popup = true diff --git a/Modules/Battery/settings.swift b/Modules/Battery/settings.swift index 26ebd122..2956465e 100644 --- a/Modules/Battery/settings.swift +++ b/Modules/Battery/settings.swift @@ -19,7 +19,6 @@ internal class Settings: NSView, Settings_v { public var callbackWhenUpdateNumberOfProcesses: (() -> Void) = {} private let title: String - private let store: UnsafePointer private var button: NSPopUpButton? private var numberOfProcesses: Int = 8 @@ -27,21 +26,20 @@ internal class Settings: NSView, Settings_v { private let highLevelsList: [String] = ["Disabled", "0.5", "0.6", "0.7", "0.75", "0.8", "0.85", "0.9", "0.95", "0.97", "1.0"] private var lowLevelNotification: String { get { - return self.store.pointee.string(key: "\(self.title)_lowLevelNotification", defaultValue: "0.15") + return Store.shared.string(key: "\(self.title)_lowLevelNotification", defaultValue: "0.15") } } private var highLevelNotification: String { get { - return self.store.pointee.string(key: "\(self.title)_highLevelNotification", defaultValue: "Disabled") + return Store.shared.string(key: "\(self.title)_highLevelNotification", defaultValue: "Disabled") } } private var timeFormat: String = "short" - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.numberOfProcesses = store.pointee.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) - self.timeFormat = store.pointee.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) + self.numberOfProcesses = Store.shared.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) + self.timeFormat = Store.shared.string(key: "\(self.title)_timeFormat", defaultValue: self.timeFormat) super.init(frame: CGRect( x: 0, @@ -137,24 +135,24 @@ internal class Settings: NSView, Settings_v { @objc private func changeUpdateIntervalLow(_ sender: NSMenuItem) { if sender.title == "Disabled" { - store.pointee.set(key: "\(self.title)_lowLevelNotification", value: sender.title) + Store.shared.set(key: "\(self.title)_lowLevelNotification", value: sender.title) } else if let value = Double(sender.title.replacingOccurrences(of: "%", with: "")) { - store.pointee.set(key: "\(self.title)_lowLevelNotification", value: "\(value/100)") + Store.shared.set(key: "\(self.title)_lowLevelNotification", value: "\(value/100)") } } @objc private func changeUpdateIntervalHigh(_ sender: NSMenuItem) { if sender.title == "Disabled" { - store.pointee.set(key: "\(self.title)_highLevelNotification", value: sender.title) + Store.shared.set(key: "\(self.title)_highLevelNotification", value: sender.title) } else if let value = Double(sender.title.replacingOccurrences(of: "%", with: "")) { - store.pointee.set(key: "\(self.title)_highLevelNotification", value: "\(value/100)") + Store.shared.set(key: "\(self.title)_highLevelNotification", value: "\(value/100)") } } @objc private func changeNumberOfProcesses(_ sender: NSMenuItem) { if let value = Int(sender.title) { self.numberOfProcesses = value - self.store.pointee.set(key: "\(self.title)_processes", value: value) + Store.shared.set(key: "\(self.title)_processes", value: value) self.callbackWhenUpdateNumberOfProcesses() } } @@ -164,7 +162,7 @@ internal class Settings: NSView, Settings_v { return } self.timeFormat = key - self.store.pointee.set(key: "\(self.title)_timeFormat", value: key) + Store.shared.set(key: "\(self.title)_timeFormat", value: key) self.callback() } } diff --git a/Modules/CPU/main.swift b/Modules/CPU/main.swift index 0b7877a9..d7b9d872 100644 --- a/Modules/CPU/main.swift +++ b/Modules/CPU/main.swift @@ -33,33 +33,26 @@ public class CPU: Module { private var processReader: ProcessReader? = nil private var temperatureReader: TemperatureReader? = nil private var frequencyReader: FrequencyReader? = nil - private let smc: UnsafePointer? - private let store: UnsafePointer private var usagePerCoreState: Bool { get { - return self.store.pointee.bool(key: "\(self.config.name)_usagePerCore", defaultValue: false) + return Store.shared.bool(key: "\(self.config.name)_usagePerCore", defaultValue: false) } } - public init(_ store: UnsafePointer, _ smc: UnsafePointer) { - self.store = store - self.smc = smc - self.settingsView = Settings("CPU", store: store) - self.popupView = Popup("CPU", store: store) + public init(_ smc: UnsafePointer) { + self.settingsView = Settings("CPU") + self.popupView = Popup("CPU") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) guard self.available else { return } self.loadReader = LoadReader() - self.loadReader?.store = store - - self.processReader = ProcessReader(self.config.name, store: store) - self.temperatureReader = TemperatureReader(smc) + self.processReader = ProcessReader() + self.temperatureReader = TemperatureReader(smc: smc) #if arch(x86_64) self.frequencyReader = FrequencyReader() diff --git a/Modules/CPU/popup.swift b/Modules/CPU/popup.swift index b6fea372..42c42916 100644 --- a/Modules/CPU/popup.swift +++ b/Modules/CPU/popup.swift @@ -14,7 +14,6 @@ import ModuleKit import StatsKit internal class Popup: NSView, Popup_p { - private var store: UnsafePointer private var title: String private var grid: NSGridView? = nil @@ -46,7 +45,7 @@ internal class Popup: NSView, Popup_p { private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } private var processesHeight: CGFloat { @@ -56,8 +55,7 @@ internal class Popup: NSView, Popup_p { } } - public init(_ title: String, store: UnsafePointer) { - self.store = store + public init(_ title: String) { self.title = title super.init(frame: NSRect( diff --git a/Modules/CPU/readers.swift b/Modules/CPU/readers.swift index d5862daf..9844ca54 100644 --- a/Modules/CPU/readers.swift +++ b/Modules/CPU/readers.swift @@ -15,8 +15,6 @@ import ModuleKit import os.log internal class LoadReader: Reader { - public var store: UnsafePointer? = nil - private var cpuInfo: processor_info_array_t! private var prevCpuInfo: processor_info_array_t? private var numCpuInfo: mach_msg_type_number_t = 0 @@ -72,7 +70,7 @@ internal class LoadReader: Reader { } self.CPUUsageLock.unlock() - let showHyperthratedCores = self.store?.pointee.bool(key: "CPU_hyperhreading", defaultValue: false) ?? false + let showHyperthratedCores = Store.shared.bool(key: "CPU_hyperhreading", defaultValue: false) if showHyperthratedCores || !self.hasHyperthreadingCores { self.response.usagePerCore = self.usagePerCore } else { @@ -154,21 +152,14 @@ internal class LoadReader: Reader { } public class ProcessReader: Reader<[TopProcess]> { - private let store: UnsafePointer - private let title: String + private let title: String = "CPU" private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } - init(_ title: String, store: UnsafePointer) { - self.title = title - self.store = store - super.init() - } - public override func setup() { self.popup = true } @@ -235,9 +226,9 @@ public class ProcessReader: Reader<[TopProcess]> { } public class TemperatureReader: Reader { - private let smc: UnsafePointer? + private let smc: UnsafePointer - init(_ smc: UnsafePointer) { + init(smc: UnsafePointer) { self.smc = smc super.init() self.popup = true @@ -246,15 +237,15 @@ public class TemperatureReader: Reader { public override func read() { var temperature: Double? = nil - if let value = self.smc?.pointee.getValue("TC0D"), value < 110 { + if let value = self.smc.pointee.getValue("TC0D"), value < 110 { temperature = value - } else if let value = self.smc?.pointee.getValue("TC0E"), value < 110 { + } else if let value = self.smc.pointee.getValue("TC0E"), value < 110 { temperature = value - } else if let value = self.smc?.pointee.getValue("TC0F"), value < 110 { + } else if let value = self.smc.pointee.getValue("TC0F"), value < 110 { temperature = value - } else if let value = self.smc?.pointee.getValue("TC0P"), value < 110 { + } else if let value = self.smc.pointee.getValue("TC0P"), value < 110 { temperature = value - } else if let value = self.smc?.pointee.getValue("TC0H"), value < 110 { + } else if let value = self.smc.pointee.getValue("TC0H"), value < 110 { temperature = value } diff --git a/Modules/CPU/settings.swift b/Modules/CPU/settings.swift index 2d291731..6ba8618b 100644 --- a/Modules/CPU/settings.swift +++ b/Modules/CPU/settings.swift @@ -21,7 +21,6 @@ internal class Settings: NSView, Settings_v { private var numberOfProcesses: Int = 8 private let title: String - private let store: UnsafePointer private var hasHyperthreadingCores = false public var callback: (() -> Void) = {} @@ -31,14 +30,13 @@ internal class Settings: NSView, Settings_v { private var hyperthreadView: NSView? = nil - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.hyperthreadState = store.pointee.bool(key: "\(self.title)_hyperhreading", defaultValue: self.hyperthreadState) - self.usagePerCoreState = store.pointee.bool(key: "\(self.title)_usagePerCore", defaultValue: self.usagePerCoreState) - self.IPGState = store.pointee.bool(key: "\(self.title)_IPG", defaultValue: self.IPGState) - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) - self.numberOfProcesses = store.pointee.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) + self.hyperthreadState = Store.shared.bool(key: "\(self.title)_hyperhreading", defaultValue: self.hyperthreadState) + self.usagePerCoreState = Store.shared.bool(key: "\(self.title)_usagePerCore", defaultValue: self.usagePerCoreState) + self.IPGState = Store.shared.bool(key: "\(self.title)_IPG", defaultValue: self.IPGState) + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.numberOfProcesses = Store.shared.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) if !self.usagePerCoreState { self.hyperthreadState = false } @@ -130,7 +128,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeUpdateInterval(_ sender: NSMenuItem) { if let value = Int(sender.title.replacingOccurrences(of: " sec", with: "")) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } @@ -138,7 +136,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeNumberOfProcesses(_ sender: NSMenuItem) { if let value = Int(sender.title) { self.numberOfProcesses = value - self.store.pointee.set(key: "\(self.title)_processes", value: value) + Store.shared.set(key: "\(self.title)_processes", value: value) self.callbackWhenUpdateNumberOfProcesses() } } @@ -152,13 +150,13 @@ internal class Settings: NSView, Settings_v { } self.usagePerCoreState = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_usagePerCore", value: self.usagePerCoreState) + Store.shared.set(key: "\(self.title)_usagePerCore", value: self.usagePerCoreState) self.callback() FindAndToggleEnableNSControlState(self.hyperthreadView, state: self.usagePerCoreState) if !self.usagePerCoreState { self.hyperthreadState = false - self.store.pointee.set(key: "\(self.title)_hyperhreading", value: self.hyperthreadState) + Store.shared.set(key: "\(self.title)_hyperhreading", value: self.hyperthreadState) FindAndToggleNSControlState(self.hyperthreadView, state: .off) } } @@ -172,7 +170,7 @@ internal class Settings: NSView, Settings_v { } self.hyperthreadState = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_hyperhreading", value: self.hyperthreadState) + Store.shared.set(key: "\(self.title)_hyperhreading", value: self.hyperthreadState) self.callback() } @@ -185,7 +183,7 @@ internal class Settings: NSView, Settings_v { } self.IPGState = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_IPG", value: self.IPGState) + Store.shared.set(key: "\(self.title)_IPG", value: self.IPGState) self.IPGCallback(self.IPGState) } } diff --git a/Modules/Disk/main.swift b/Modules/Disk/main.swift index 66180107..91f80db6 100644 --- a/Modules/Disk/main.swift +++ b/Modules/Disk/main.swift @@ -91,19 +91,17 @@ public class Disk: Module { private var settingsView: Settings private var selectedDisk: String = "" - public init(_ store: UnsafePointer) { - self.settingsView = Settings("Disk", store: store) + public init() { + self.settingsView = Settings("Disk") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) guard self.available else { return } self.capacityReader = CapacityReader() - self.capacityReader?.store = store - self.selectedDisk = store.pointee.string(key: "\(self.config.name)_disk", defaultValue: self.selectedDisk) + self.selectedDisk = Store.shared.string(key: "\(self.config.name)_disk", defaultValue: self.selectedDisk) self.capacityReader?.callbackHandler = { [unowned self] value in self.capacityCallback(value) diff --git a/Modules/Disk/readers.swift b/Modules/Disk/readers.swift index 7b57430e..e10b22bc 100644 --- a/Modules/Disk/readers.swift +++ b/Modules/Disk/readers.swift @@ -18,11 +18,10 @@ import os.log internal class CapacityReader: Reader { private var disks: DiskList = DiskList() - public var store: UnsafePointer? = nil public override func read() { let keys: [URLResourceKey] = [.volumeNameKey] - let removableState = store?.pointee.bool(key: "Disk_removable", defaultValue: false) ?? false + let removableState = Store.shared.bool(key: "Disk_removable", defaultValue: false) let paths = FileManager.default.mountedVolumeURLs(includingResourceValuesForKeys: keys)! guard let session = DASessionCreate(kCFAllocatorDefault) else { diff --git a/Modules/Disk/settings.swift b/Modules/Disk/settings.swift index b1e8fb7c..8a8c6066 100644 --- a/Modules/Disk/settings.swift +++ b/Modules/Disk/settings.swift @@ -22,17 +22,15 @@ internal class Settings: NSView, Settings_v { public var setInterval: ((_ value: Int) -> Void) = {_ in } private let title: String - private let store: UnsafePointer private var selectedDisk: String private var button: NSPopUpButton? private var intervalSelectView: NSView? = nil - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.selectedDisk = store.pointee.string(key: "\(self.title)_disk", defaultValue: "") - self.removableState = store.pointee.bool(key: "\(self.title)_removable", defaultValue: self.removableState) - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.selectedDisk = Store.shared.string(key: "\(self.title)_disk", defaultValue: "") + self.removableState = Store.shared.bool(key: "\(self.title)_removable", defaultValue: self.removableState) + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) super.init(frame: CGRect( x: 0, @@ -117,7 +115,7 @@ internal class Settings: NSView, Settings_v { @objc private func handleSelection(_ sender: NSPopUpButton) { guard let item = sender.selectedItem else { return } self.selectedDisk = item.title - self.store.pointee.set(key: "\(self.title)_disk", value: item.title) + Store.shared.set(key: "\(self.title)_disk", value: item.title) self.selectedDiskHandler(item.title) } @@ -130,7 +128,7 @@ internal class Settings: NSView, Settings_v { } self.removableState = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_removable", value: self.removableState) + Store.shared.set(key: "\(self.title)_removable", value: self.removableState) self.callback() } @@ -142,7 +140,7 @@ internal class Settings: NSView, Settings_v { public func setUpdateInterval(value: Int) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } diff --git a/Modules/Fans/main.swift b/Modules/Fans/main.swift index 49238ebc..277cc471 100644 --- a/Modules/Fans/main.swift +++ b/Modules/Fans/main.swift @@ -35,21 +35,18 @@ public struct Fan { } public class Fans: Module { - private let store: UnsafePointer private var smc: UnsafePointer private var fansReader: FansReader private var settingsView: Settings private let popupView: Popup = Popup() - public init(_ store: UnsafePointer, _ smc: UnsafePointer) { - self.store = store + public init(_ smc: UnsafePointer) { self.smc = smc self.fansReader = FansReader(smc) - self.settingsView = Settings("Fans", store: store, list: &self.fansReader.list) + self.settingsView = Settings("Fans", list: &self.fansReader.list) super.init( - store: store, popup: self.popupView, settings: self.settingsView ) @@ -93,7 +90,7 @@ public class Fans: Module { self.popupView.usageCallback(value) - let label: Bool = store.pointee.bool(key: "Fans_label", defaultValue: false) + let label: Bool = Store.shared.bool(key: "Fans_label", defaultValue: false) var list: [KeyValue_t] = [] value.forEach { (f: Fan) in if f.state { diff --git a/Modules/Fans/settings.swift b/Modules/Fans/settings.swift index 6852447e..707c6633 100644 --- a/Modules/Fans/settings.swift +++ b/Modules/Fans/settings.swift @@ -17,7 +17,6 @@ internal class Settings: NSView, Settings_v { private var updateIntervalValue: Int = 1 private let title: String - private let store: UnsafePointer private var button: NSPopUpButton? private let list: UnsafeMutablePointer<[Fan]> private var labelState: Bool = false @@ -25,9 +24,8 @@ internal class Settings: NSView, Settings_v { public var callback: (() -> Void) = {} public var setInterval: ((_ value: Int) -> Void) = {_ in } - public init(_ title: String, store: UnsafePointer, list: UnsafeMutablePointer<[Fan]>) { + public init(_ title: String, list: UnsafeMutablePointer<[Fan]>) { self.title = title - self.store = store self.list = list super.init(frame: CGRect( @@ -40,8 +38,8 @@ internal class Settings: NSView, Settings_v { self.wantsLayer = true self.canDrawConcurrently = true - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) - self.labelState = store.pointee.bool(key: "\(self.title)_label", defaultValue: self.labelState) + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.labelState = Store.shared.bool(key: "\(self.title)_label", defaultValue: self.labelState) } required init?(coder: NSCoder) { @@ -118,14 +116,14 @@ internal class Settings: NSView, Settings_v { state = sender is NSButton ? (sender as! NSButton).state: nil } - self.store.pointee.set(key: "fan_\(id.rawValue)", value: state! == NSControl.StateValue.on) + Store.shared.set(key: "fan_\(id.rawValue)", value: state! == NSControl.StateValue.on) self.callback() } @objc private func changeUpdateInterval(_ sender: NSMenuItem) { if let value = Int(sender.title.replacingOccurrences(of: " sec", with: "")) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } @@ -139,7 +137,7 @@ internal class Settings: NSView, Settings_v { } self.labelState = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_label", value: self.labelState) + Store.shared.set(key: "\(self.title)_label", value: self.labelState) self.callback() } } diff --git a/Modules/GPU/main.swift b/Modules/GPU/main.swift index 4cd7d703..a7c182fc 100644 --- a/Modules/GPU/main.swift +++ b/Modules/GPU/main.swift @@ -63,7 +63,6 @@ public struct GPUs: value_t { public class GPU: Module { private let smc: UnsafePointer? - private let store: UnsafePointer private var infoReader: InfoReader? = nil private var settingsView: Settings @@ -73,17 +72,15 @@ public class GPU: Module { private var showType: Bool { get { - return self.store.pointee.bool(key: "\(self.config.name)_showType", defaultValue: false) + return Store.shared.bool(key: "\(self.config.name)_showType", defaultValue: false) } } - public init(_ store: UnsafePointer, _ smc: UnsafePointer) { - self.store = store + public init(_ smc: UnsafePointer) { self.smc = smc - self.settingsView = Settings("GPU", store: store) + self.settingsView = Settings("GPU") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) @@ -91,7 +88,7 @@ public class GPU: Module { self.infoReader = InfoReader() self.infoReader?.smc = smc - self.selectedGPU = store.pointee.string(key: "\(self.config.name)_gpu", defaultValue: self.selectedGPU) + self.selectedGPU = Store.shared.string(key: "\(self.config.name)_gpu", defaultValue: self.selectedGPU) self.infoReader?.callbackHandler = { [unowned self] value in self.infoCallback(value) diff --git a/Modules/GPU/settings.swift b/Modules/GPU/settings.swift index 67cba3be..6686434b 100644 --- a/Modules/GPU/settings.swift +++ b/Modules/GPU/settings.swift @@ -19,7 +19,6 @@ internal class Settings: NSView, Settings_v { private var showTypeValue: Bool = false private let title: String - private let store: UnsafePointer public var selectedGPUHandler: (String) -> Void = {_ in } public var callback: (() -> Void) = {} @@ -28,12 +27,11 @@ internal class Settings: NSView, Settings_v { private var hyperthreadView: NSView? = nil private var button: NSPopUpButton? - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.selectedGPU = store.pointee.string(key: "\(self.title)_gpu", defaultValue: "") - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) - self.showTypeValue = store.pointee.bool(key: "\(self.title)_showType", defaultValue: self.showTypeValue) + self.selectedGPU = Store.shared.string(key: "\(self.title)_gpu", defaultValue: "") + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.showTypeValue = Store.shared.bool(key: "\(self.title)_showType", defaultValue: self.showTypeValue) super.init(frame: CGRect( x: 0, @@ -152,7 +150,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeUpdateInterval(_ sender: NSMenuItem) { if let value = Int(sender.title.replacingOccurrences(of: " sec", with: "")) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } @@ -163,7 +161,7 @@ internal class Settings: NSView, Settings_v { } self.selectedGPU = key - self.store.pointee.set(key: "\(self.title)_gpu", value: key) + Store.shared.set(key: "\(self.title)_gpu", value: key) self.selectedGPUHandler(key) } @@ -176,7 +174,7 @@ internal class Settings: NSView, Settings_v { } self.showTypeValue = state! == .on ? true : false - self.store.pointee.set(key: "\(self.title)_showType", value: self.showTypeValue) + Store.shared.set(key: "\(self.title)_showType", value: self.showTypeValue) self.callback() } } diff --git a/Modules/Net/main.swift b/Modules/Net/main.swift index 63d095e6..b631961d 100644 --- a/Modules/Net/main.swift +++ b/Modules/Net/main.swift @@ -77,21 +77,18 @@ public class Network: Module { private var usageReader: UsageReader? = nil private var processReader: ProcessReader? = nil - public init(_ store: UnsafePointer) { - self.settingsView = Settings("Network", store: store) - self.popupView = Popup("Network", store: store) + public init() { + self.settingsView = Settings("Network") + self.popupView = Popup("Network") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) guard self.available else { return } self.usageReader = UsageReader() - self.usageReader?.store = store - - self.processReader = ProcessReader(self.config.name, store: store) + self.processReader = ProcessReader() self.settingsView.callbackWhenUpdateNumberOfProcesses = { self.popupView.numberOfProcessesUpdated() diff --git a/Modules/Net/popup.swift b/Modules/Net/popup.swift index f65f6584..c86adafa 100644 --- a/Modules/Net/popup.swift +++ b/Modules/Net/popup.swift @@ -16,7 +16,6 @@ import StatsKit internal class Popup: NSStackView, Popup_p { public var sizeCallback: ((NSSize) -> Void)? = nil - private var store: UnsafePointer private var title: String private var uploadView: NSView? = nil @@ -52,12 +51,12 @@ internal class Popup: NSStackView, Popup_p { private var base: DataSizeBase { get { - return DataSizeBase(rawValue: store.pointee.string(key: "\(self.title)_base", defaultValue: "byte")) ?? .byte + return DataSizeBase(rawValue: Store.shared.string(key: "\(self.title)_base", defaultValue: "byte")) ?? .byte } } private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } private var processesHeight: CGFloat { @@ -67,9 +66,8 @@ internal class Popup: NSStackView, Popup_p { } } - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store super.init(frame: NSRect( x: 0, diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index b14119d0..866af8cf 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -24,8 +24,6 @@ struct ipResponse: Decodable { } internal class UsageReader: Reader { - public var store: UnsafePointer? = nil - private var reachability: Reachability? = nil private var usage: Network_Usage = Network_Usage() @@ -40,16 +38,16 @@ internal class UsageReader: Reader { private var interfaceID: String { get { - return self.store?.pointee.string(key: "Network_interface", defaultValue: self.primaryInterface) ?? self.primaryInterface + return Store.shared.string(key: "Network_interface", defaultValue: self.primaryInterface) } set { - self.store?.pointee.set(key: "Network_interface", value: newValue) + Store.shared.set(key: "Network_interface", value: newValue) } } private var reader: String { get { - return self.store?.pointee.string(key: "Network_reader", defaultValue: "interface") ?? "interface" + return Store.shared.string(key: "Network_reader", defaultValue: "interface") } } @@ -276,22 +274,15 @@ internal class UsageReader: Reader { } public class ProcessReader: Reader<[Network_Process]> { - private let store: UnsafePointer - private let title: String + private let title: String = "Network" private var previous: [Network_Process] = [] private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } - init(_ title: String, store: UnsafePointer) { - self.title = title - self.store = store - super.init() - } - public override func setup() { self.popup = true } diff --git a/Modules/Net/settings.swift b/Modules/Net/settings.swift index e2f407bc..0ea15016 100644 --- a/Modules/Net/settings.swift +++ b/Modules/Net/settings.swift @@ -22,16 +22,14 @@ internal class Settings: NSView, Settings_v { public var callbackWhenUpdateNumberOfProcesses: (() -> Void) = {} private let title: String - private let store: UnsafePointer private var button: NSPopUpButton? private var list: [Network_interface] = [] - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.numberOfProcesses = store.pointee.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) - self.readerType = store.pointee.string(key: "\(self.title)_reader", defaultValue: self.readerType) + self.numberOfProcesses = Store.shared.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) + self.readerType = Store.shared.string(key: "\(self.title)_reader", defaultValue: self.readerType) super.init(frame: CGRect( x: 0, @@ -93,7 +91,7 @@ internal class Settings: NSView, Settings_v { self.button?.action = #selector(self.handleSelection) self.button?.isEnabled = self.readerType == "interface" - let selectedInterface = self.store.pointee.string(key: "\(self.title)_interface", defaultValue: "") + let selectedInterface = Store.shared.string(key: "\(self.title)_interface", defaultValue: "") let menu = NSMenu() let autodetection = NSMenuItem(title: "Autodetection", action: nil, keyEquivalent: "") menu.addItem(autodetection) @@ -124,10 +122,10 @@ internal class Settings: NSView, Settings_v { guard let item = sender.selectedItem else { return } if item.title == "Autodetection" { - self.store.pointee.remove("\(self.title)_interface") + Store.shared.remove("\(self.title)_interface") } else { if let bsdName = item.identifier?.rawValue { - self.store.pointee.set(key: "\(self.title)_interface", value: bsdName) + Store.shared.set(key: "\(self.title)_interface", value: bsdName) } } @@ -137,7 +135,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeNumberOfProcesses(_ sender: NSMenuItem) { if let value = Int(sender.title) { self.numberOfProcesses = value - self.store.pointee.set(key: "\(self.title)_processes", value: value) + Store.shared.set(key: "\(self.title)_processes", value: value) self.callbackWhenUpdateNumberOfProcesses() } } @@ -147,7 +145,7 @@ internal class Settings: NSView, Settings_v { return } self.readerType = key - self.store.pointee.set(key: "\(self.title)_reader", value: key) + Store.shared.set(key: "\(self.title)_reader", value: key) self.button?.isEnabled = self.readerType == "interface" } } diff --git a/Modules/RAM/main.swift b/Modules/RAM/main.swift index 39632503..1960a83c 100644 --- a/Modules/RAM/main.swift +++ b/Modules/RAM/main.swift @@ -55,12 +55,11 @@ public class RAM: Module { private var usageReader: UsageReader? = nil private var processReader: ProcessReader? = nil - public init(_ store: UnsafePointer) { - self.settingsView = Settings("RAM", store: store) - self.popupView = Popup("RAM", store: store) + public init() { + self.settingsView = Settings("RAM") + self.popupView = Popup("RAM") super.init( - store: store, popup: self.popupView, settings: self.settingsView ) @@ -72,7 +71,7 @@ public class RAM: Module { } self.usageReader = UsageReader() - self.processReader = ProcessReader(self.config.name, store: store) + self.processReader = ProcessReader() self.settingsView.callbackWhenUpdateNumberOfProcesses = { self.popupView.numberOfProcessesUpdated() diff --git a/Modules/RAM/popup.swift b/Modules/RAM/popup.swift index 2f1556a6..426e314f 100644 --- a/Modules/RAM/popup.swift +++ b/Modules/RAM/popup.swift @@ -14,7 +14,6 @@ import ModuleKit import StatsKit internal class Popup: NSView, Popup_p { - private var store: UnsafePointer private var title: String private var grid: NSGridView? = nil @@ -43,7 +42,7 @@ internal class Popup: NSView, Popup_p { private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } private var processesHeight: CGFloat { @@ -55,8 +54,7 @@ internal class Popup: NSView, Popup_p { public var sizeCallback: ((NSSize) -> Void)? = nil - public init(_ title: String, store: UnsafePointer) { - self.store = store + public init(_ title: String) { self.title = title super.init(frame: NSRect( diff --git a/Modules/RAM/readers.swift b/Modules/RAM/readers.swift index ed576346..a4ab05c4 100644 --- a/Modules/RAM/readers.swift +++ b/Modules/RAM/readers.swift @@ -96,21 +96,14 @@ internal class UsageReader: Reader { } public class ProcessReader: Reader<[TopProcess]> { - private let store: UnsafePointer - private let title: String + private let title: String = "RAM" private var numberOfProcesses: Int { get { - return self.store.pointee.int(key: "\(self.title)_processes", defaultValue: 8) + return Store.shared.int(key: "\(self.title)_processes", defaultValue: 8) } } - init(_ title: String, store: UnsafePointer) { - self.title = title - self.store = store - super.init() - } - public override func setup() { self.popup = true } diff --git a/Modules/RAM/settings.swift b/Modules/RAM/settings.swift index 98493d57..41501423 100644 --- a/Modules/RAM/settings.swift +++ b/Modules/RAM/settings.swift @@ -18,17 +18,15 @@ internal class Settings: NSView, Settings_v { private var numberOfProcesses: Int = 8 private let title: String - private let store: UnsafePointer public var callback: (() -> Void) = {} public var callbackWhenUpdateNumberOfProcesses: (() -> Void) = {} public var setInterval: ((_ value: Int) -> Void) = {_ in } - public init(_ title: String, store: UnsafePointer) { + public init(_ title: String) { self.title = title - self.store = store - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) - self.numberOfProcesses = store.pointee.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.numberOfProcesses = Store.shared.int(key: "\(self.title)_processes", defaultValue: self.numberOfProcesses) super.init(frame: CGRect( x: 0, @@ -73,7 +71,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeUpdateInterval(_ sender: NSMenuItem) { if let value = Int(sender.title.replacingOccurrences(of: " sec", with: "")) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } @@ -81,7 +79,7 @@ internal class Settings: NSView, Settings_v { @objc private func changeNumberOfProcesses(_ sender: NSMenuItem) { if let value = Int(sender.title) { self.numberOfProcesses = value - self.store.pointee.set(key: "\(self.title)_processes", value: value) + Store.shared.set(key: "\(self.title)_processes", value: value) self.callbackWhenUpdateNumberOfProcesses() } } diff --git a/Modules/Sensors/main.swift b/Modules/Sensors/main.swift index 174a1292..21fb4c1e 100644 --- a/Modules/Sensors/main.swift +++ b/Modules/Sensors/main.swift @@ -18,12 +18,11 @@ public class Sensors: Module { private let popupView: Popup = Popup() private var settingsView: Settings - public init(_ store: UnsafePointer, _ smc: UnsafePointer) { + public init(_ smc: UnsafePointer) { self.sensorsReader = SensorsReader(smc) - self.settingsView = Settings("Sensors", store: store, list: &self.sensorsReader.list) + self.settingsView = Settings("Sensors", list: &self.sensorsReader.list) super.init( - store: store, popup: self.popupView, settings: self.settingsView ) diff --git a/Modules/Sensors/settings.swift b/Modules/Sensors/settings.swift index b9cf7d72..0d9ed6c8 100644 --- a/Modules/Sensors/settings.swift +++ b/Modules/Sensors/settings.swift @@ -17,15 +17,13 @@ internal class Settings: NSView, Settings_v { private var updateIntervalValue: Int = 3 private let title: String - private let store: UnsafePointer private var button: NSPopUpButton? private let list: UnsafeMutablePointer<[Sensor_t]> public var callback: (() -> Void) = {} public var setInterval: ((_ value: Int) -> Void) = {_ in } - public init(_ title: String, store: UnsafePointer, list: UnsafeMutablePointer<[Sensor_t]>) { + public init(_ title: String, list: UnsafeMutablePointer<[Sensor_t]>) { self.title = title - self.store = store self.list = list super.init(frame: CGRect( @@ -38,7 +36,7 @@ internal class Settings: NSView, Settings_v { self.wantsLayer = true self.canDrawConcurrently = true - self.updateIntervalValue = store.pointee.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) + self.updateIntervalValue = Store.shared.int(key: "\(self.title)_updateInterval", defaultValue: self.updateIntervalValue) } required init?(coder: NSCoder) { @@ -129,14 +127,14 @@ internal class Settings: NSView, Settings_v { state = sender is NSButton ? (sender as! NSButton).state: nil } - self.store.pointee.set(key: "sensor_\(id.rawValue)", value: state! == NSControl.StateValue.on) + Store.shared.set(key: "sensor_\(id.rawValue)", value: state! == NSControl.StateValue.on) self.callback() } @objc private func changeUpdateInterval(_ sender: NSMenuItem) { if let value = Int(sender.title.replacingOccurrences(of: " sec", with: "")) { self.updateIntervalValue = value - self.store.pointee.set(key: "\(self.title)_updateInterval", value: value) + Store.shared.set(key: "\(self.title)_updateInterval", value: value) self.setInterval(value) } } diff --git a/Stats/AppDelegate.swift b/Stats/AppDelegate.swift index 48dae6ef..e613595d 100755 --- a/Stats/AppDelegate.swift +++ b/Stats/AppDelegate.swift @@ -23,14 +23,14 @@ var store: Store = Store() let updater = macAppUpdater(user: "exelban", repo: "stats") var smc: SMCService = SMCService() var modules: [Module] = [ - Battery(&store), - Network(&store), - Fans(&store, &smc), - Sensors(&store, &smc), - Disk(&store), - RAM(&store), - GPU(&store, &smc), - CPU(&store, &smc), + Battery(), + Network(), + Fans(&smc), + Sensors(&smc), + Disk(), + RAM(), + GPU(&smc), + CPU(&smc), ].reversed() var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Stats")