Фон
У меня есть клавиатура MacAlly IceKey. Эта клавиатура имеет кнопки регулировки громкости, для работы которых требуется драйвер. Этот драйвер не обновлялся с 2006 года, и я подозреваю, что он является источником недавнего всплеска повторяющейся паники ядра, с которой я столкнулся в Mac OS X 10.6.1. Итак, это идет; но я хочу вернуть мои клавиши регулировки громкости!
Используя замечательный ControllerMate , я могу запрограммировать эти ключи на все, в том числе на выполнение сценария appleScript. Итак, я пытаюсь реализовать эту функциональность.
Команда установки громкости (часть стандартных дополнений) позволяет вам установить громкость на любое значение от 0 до 100. Клавиши громкости на клавиатуре Apple позволяют выбрать до 17 настроек громкости (включая 0). Я полагаю, что самый простой способ продублировать это поведение - сохранить список разрешенных настроек громкости и выбрать следующий самый большой (или самый маленький) из этого.
Проблема
Это не работает. Следующий скрипт:
set volumesList to {0, 6, 12, 18, 25, 31, 37, 43, 50, 56, 62, 68, 75, 81, 87, 93, 100}
set sysVolume to get volume settings
repeat with curVolume in volumesList
if (curVolume > (output volume of sysVolume)) then
set volume output volume (contents of curVolume)
exit repeat
end if
end repeat
get volume settings
... работает только в том случае, если уровень громкости системы ниже 43. Система, кажется, интерпретирует «50» как «49»; это так же высоко, как громкость моего сценария. Если громкость начинается выше 50, мой сценарий не действует. Кикер? Если оператор «exit repeat» будет удален, системный том будет установлен на 100 - как и следовало ожидать.
(Боже, AppleScript иногда странный .)
Есть идеи?
Бонусные баллы
Было бы очень здорово, чтобы это отображало наложение громкости. Кто-нибудь знает, как этого добиться? Это даже не должно быть через AppleScript; Я рад, что добавил код Какао в инструмент командной строки, если это то, что нужно.