vOOice/VoiceInk/AppIntents/ToggleMiniRecorderIntent.swift

33 lines
1002 B
Swift

import AppIntents
import Foundation
import AppKit
struct ToggleMiniRecorderIntent: AppIntent {
static var title: LocalizedStringResource = "Toggle VoiceInk Recorder"
static var description = IntentDescription("Start or stop the VoiceInk mini recorder for voice transcription.")
static var openAppWhenRun: Bool = false
@MainActor
func perform() async throws -> some IntentResult & ProvidesDialog {
NotificationCenter.default.post(name: .toggleMiniRecorder, object: nil)
let dialog = IntentDialog(stringLiteral: "VoiceInk recorder toggled")
return .result(dialog: dialog)
}
}
enum IntentError: Error, LocalizedError {
case appNotAvailable
case serviceNotAvailable
var errorDescription: String? {
switch self {
case .appNotAvailable:
return "VoiceInk app is not available"
case .serviceNotAvailable:
return "VoiceInk recording service is not available"
}
}
}