Перейти к основному содержимому

Назначение функций

Назначьте DeviceFunction поддерживаемому DeviceOperation.

Предварительные условия

  • Устройство подключено и готово к работе
  • Устройство поддерживает DevicePhysicalOperationsAPI
  • Действие присутствует в physicalOperationsMapping

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

Swift
import AIBuds

Протокол

Swift
/// The protocol for device physical operations API.
protocol DevicePhysicalOperationsAPI: DeviceAPI {
    /// Assign a device function to a specific operation.
    ///
    /// - Parameters:
    ///   - function: The ``DeviceFunction`` to be assigned.
    ///   - operation: The ``DeviceOperation`` that will trigger the function.
    ///   - completion: An optional callback invoked when the assignment completes.
    ///     - success: `true` if the assignment succeeded; `false` otherwise.
    ///     - error: An error object explaining the failure, or `nil` on success.
    func assignFunction(
        _ function: DeviceFunction,
        forPhysicalOperation operation: DeviceOperation,
        completion: AIBudsCompletionHandler?
    )
}

Метод экземпляра

Назначает функцию физическому действию.

Swift
/// Assign a device function to a specific operation.
///
/// - Parameters:
///   - function: The ``DeviceFunction`` to be assigned.
///   - operation: The ``DeviceOperation`` that will trigger the function.
///   - completion: An optional callback invoked when the assignment completes.
///     - success: `true` if the assignment succeeded; `false` otherwise.
///     - error: An error object explaining the failure, or `nil` on success.
func assignFunction(
    _ function: DeviceFunction,
    forPhysicalOperation operation: DeviceOperation,
    completion: AIBudsCompletionHandler?
)

Параметры

ПараметрТипОписание
functionDeviceFunctionНазначаемая функция.
operationDeviceOperationФизическое действие, запускающее функцию.
completionAIBudsCompletionHandler?Необязательный обработчик завершения.

Параметры обработчика:

ИмяТипОписание
successBool / BOOLУспешно ли выполнено назначение.
errorNSError?Сведения об ошибке или nil при успехе.

Возвращаемое значение

Метод не возвращает значение напрямую.

Примеры использования

Swift
import AIBuds

guard let device = device as? DevicePhysicalOperationsAPI else {
    print("Device does not support physical-operation mapping")
    return
}

device.assignFunction(
    .playPause,
    forPhysicalOperation: .rightDoubleClick
) { success, error in
    guard success else {
        print("Assignment failed: \(error?.localizedDescription ?? "Unknown error")")
        return
    }
    print("Function assigned")
}

Обработка ошибок

Проверяйте success, а сведения об ошибке берите из error. Не обновляйте локальное соответствие до успешного завершения операции.

Рекомендации

  1. Опирайтесь на опубликованное соответствие: предлагайте только действия из physicalOperationsMapping.
  2. Используйте перечисления SDK: передавайте DeviceOperation и DeviceFunction, а не произвольные числа.
  3. Обновляйте после успеха: перед показом применённой конфигурации снова прочитайте соответствие.

Примечания

  • За один вызов API назначает одну функцию одному действию.
  • В SDK нет модели KeyMapping или метода customizeKeyMapping.