Files
openclaw/apps/shared/OpenClawKit/Sources/OpenClawChatUI/OpenClawChatTalkControl.swift
Peter Steinberger 311f5bfbaa feat(macos): honor the selected microphone in Talk and show live voice activity in chat (#109995)
* feat(macos): honor the selected microphone in Talk and surface live level, transcript, and mic picker in chat

* chore(i18n): translate new talk activity strings and regenerate Apple/Android catalogs
2026-07-17 15:45:46 +01:00

56 lines
1.9 KiB
Swift

public struct OpenClawChatAudioInputDevice: Equatable, Identifiable, Sendable {
public var id: String
public var name: String
public init(id: String, name: String) {
self.id = id
self.name = name
}
}
public struct OpenClawChatTalkControl {
public var isEnabled: Bool
public var isListening: Bool
public var isSpeaking: Bool
public var isGatewayConnected: Bool
public var statusText: String
public var providerLabel: String
public var level: Double
public var partialTranscript: String
public var recentTranscript: [String]
public var inputDevices: [OpenClawChatAudioInputDevice]
public var selectedInputDeviceID: String?
public var selectInputDevice: (@MainActor (_ deviceID: String?) -> Void)?
public var toggle: @MainActor (_ sessionKey: String) -> Void
public init(
isEnabled: Bool,
isListening: Bool,
isSpeaking: Bool,
isGatewayConnected: Bool,
statusText: String,
providerLabel: String,
level: Double = 0,
partialTranscript: String = "",
recentTranscript: [String] = [],
inputDevices: [OpenClawChatAudioInputDevice] = [],
selectedInputDeviceID: String? = nil,
selectInputDevice: (@MainActor (_ deviceID: String?) -> Void)? = nil,
toggle: @escaping @MainActor (_ sessionKey: String) -> Void)
{
self.isEnabled = isEnabled
self.isListening = isListening
self.isSpeaking = isSpeaking
self.isGatewayConnected = isGatewayConnected
self.statusText = statusText
self.providerLabel = providerLabel
self.level = level
self.partialTranscript = partialTranscript
self.recentTranscript = recentTranscript
self.inputDevices = inputDevices
self.selectedInputDeviceID = selectedInputDeviceID
self.selectInputDevice = selectInputDevice
self.toggle = toggle
}
}