From 5d5d0d99a30fb9604afe4c3170f06551c336e79f Mon Sep 17 00:00:00 2001 From: Baden Parr <1badenparr@gmail.com> Date: Fri, 15 Sep 2023 14:56:38 +1200 Subject: [PATCH] linux: add method to query adapter state --- adapter_linux.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/adapter_linux.go b/adapter_linux.go index 7a81263..3eda4b0 100644 --- a/adapter_linux.go +++ b/adapter_linux.go @@ -73,6 +73,22 @@ func (a *Adapter) SetStateChangeHandler(c func(newState AdapterState)) { a.stateChangeHandler = c } +// State returns the current state of the adapter. +func (a *Adapter) State() AdapterState { + if a.adapter == nil { + return AdapterStateUnknown + } + + powered, err := a.adapter.GetPowered() + if err != nil { + return AdapterStateUnknown + } + if powered { + return AdapterStatePoweredOn + } + return AdapterStatePoweredOff +} + // watchForConnect watches for a signal from the bluez adapter interface that indicates a Powered/Unpowered event. // // We can add extra signals to watch for here,