mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-23 15:11:15 +00:00
* feat(ios): add Talk camera flip and mic selection * chore(ios): sync native i18n inventory and locale artifacts for talk camera/mic strings * chore(ios): commit regenerated Localizable.xcstrings for new talk strings * fix(ios): extract Talk composer controls * chore(ios): resync native i18n inventory and locale artifacts atop landed Android entries * fix(ios): repair Talk composer CI checks * chore(i18n): commit regenerated Android locale outputs from catalog reconciliation * chore(i18n): sync Android locale outputs after rebase
67 lines
2.3 KiB
Swift
67 lines
2.3 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 enum OpenClawCameraFacingSelection: String, Equatable, Sendable {
|
|
case back
|
|
case front
|
|
}
|
|
|
|
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 cameraFacing: OpenClawCameraFacingSelection?
|
|
public var flipCamera: (@MainActor () -> 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,
|
|
cameraFacing: OpenClawCameraFacingSelection? = nil,
|
|
flipCamera: (@MainActor () -> 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.cameraFacing = cameraFacing
|
|
self.flipCamera = flipCamera
|
|
self.toggle = toggle
|
|
}
|
|
}
|