package types import ( "fmt" "git.zaphyra.eu/airpodsctl/helpers" ) func (device Device) FormatCLIString() (string, int) { result := StringSlice{} result.Add(fmt.Sprintf(helpers.BoldText("============[%s]============"), device.Name)) result.Add(fmt.Sprintf(helpers.BoldText("󰌹 Connected:")+"\t %s", device.Connected.String())) if device.ANCMode.Valid { result.Add(fmt.Sprintf(helpers.BoldText("󰋌 ANC-Mode:")+"\t %s", device.ANCMode.Value)) } if device.BatteryTTLEstimate.Valid { result.Add(fmt.Sprintf(helpers.BoldText("󱧦 Time remaining:")+" ~%s", device.BatteryTTLEstimate)) } if device.Battery.Headphone.Valid { var chargeSymbol string if device.Battery.Headphone.Value.Charging { chargeSymbol = " " } result.Add(fmt.Sprintf(helpers.BoldText("󰁹 Headphones:")+"\t %d% %#s", device.Battery.Headphone.Value.Level, chargeSymbol)) } if device.Battery.LeftBud.Valid || device.Battery.RightBud.Valid { var batteryStateBuds StringSlice if device.Battery.LeftBud.Valid { var chargeSymbol string if device.Battery.LeftBud.Value.Charging { chargeSymbol = " " } batteryStateBuds.Add(fmt.Sprintf("L: %d%%%#s", device.Battery.LeftBud.Value.Level, chargeSymbol)) } if device.Battery.RightBud.Valid { var chargeSymbol string if device.Battery.RightBud.Value.Charging { chargeSymbol = " " } batteryStateBuds.Add(fmt.Sprintf("R: %d%%%#s", device.Battery.RightBud.Value.Level, chargeSymbol)) } result.Add(fmt.Sprintf(helpers.BoldText("󰁹 Buds:")+"\t\t %#s", batteryStateBuds.ConcatString(" "))) } if device.Battery.Case.Valid { var chargeSymbol = "" if device.Battery.Case.Value.Charging { chargeSymbol = "" } result.Add(fmt.Sprintf(helpers.BoldText("󰁹 Case:")+"\t\t %d%%%#s", device.Battery.Case.Value.Level, chargeSymbol)) } result.Add(fmt.Sprintf("\n%s", helpers.BoldText("Features:"))) if device.Features.AdaptiveVolume.Valid { result.Add(fmt.Sprintf(helpers.BoldText("Adaptive Volume:")+"\t %s", device.Features.AdaptiveVolume.Value.FormatFeatureString())) } if device.Features.OneBudAnc.Valid { result.Add(fmt.Sprintf(helpers.BoldText("One Bud ANC:")+"\t\t %s", device.Features.OneBudAnc.Value.FormatFeatureString())) } if device.Features.Conversational.Valid { result.Add(fmt.Sprintf(helpers.BoldText("Conversational-Awareness:")+" %s", device.Features.Conversational.Value.FormatFeatureString())) } if device.Features.VolumeSwipe.Valid { result.Add(fmt.Sprintf(helpers.BoldText("Volume-Swipe:")+"\t\t %s", device.Features.VolumeSwipe.Value.FormatFeatureString())) } result.Add("") return result.ConcatString("\n"), len(result.Value) }