RileyLinkDeviceProvider.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // RileyLinkDeviceProvider.swift
  3. // RileyLinkBLEKit
  4. //
  5. // Created by Pete Schwamb on 9/5/22.
  6. // Copyright © 2022 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public protocol RileyLinkDeviceProviderDelegate : AnyObject {
  10. func rileylinkDeviceProvider(_ rileylinkDeviceProvider: RileyLinkDeviceProvider, didChange state: RileyLinkConnectionState)
  11. }
  12. public protocol RileyLinkDeviceProvider: AnyObject {
  13. typealias RawStateValue = [String : Any]
  14. var delegate: RileyLinkDeviceProviderDelegate? { get set }
  15. var idleListeningState: RileyLinkBluetoothDevice.IdleListeningState { get set }
  16. var idleListeningEnabled: Bool { get }
  17. var timerTickEnabled: Bool { get set }
  18. var connectingCount: Int { get }
  19. func deprioritize(_ device: RileyLinkDevice, completion: (() -> Void)?)
  20. func assertIdleListening(forcingRestart: Bool)
  21. func getDevices(_ completion: @escaping (_ devices: [RileyLinkDevice]) -> Void)
  22. func connect(_ device: RileyLinkDevice)
  23. func disconnect(_ device: RileyLinkDevice)
  24. func setScanningEnabled(_ enabled: Bool)
  25. func shouldConnect(to deviceID: String) -> Bool
  26. var debugDescription: String { get }
  27. }