J'ai un clavier MacAlly IceKey. Ce clavier a des boutons de volume qui nécessitent un pilote pour fonctionner. Ce pilote n'a pas été mis à jour depuis 2006, et je le soupçonne d'être à l'origine d'une récente recrudescence des paniques de noyau récurrentes sous Mac OS X 10.6.1. Donc, ça va; mais je veux récupérer mes touches de volume!
En utilisant le merveilleux ControllerMate, je peux programmer ces touches pour faire n'importe quoi, y compris lancer un script applescript. Donc, j'essaye d'implémenter cette fonctionnalité. La commande set volume (qui fait partie de Standard Additions) vous permet de régler le volume sur une valeur comprise entre 0 et 100. Les touches de volume du clavier Apple permettent de sélectionner au total 17 réglages de volume (y compris 0). Je pense que la façon la plus simple de dupliquer ce comportement est de conserver une liste des paramètres de volume autorisés et d'en extraire le plus gros (ou le plus petit) suivant.
Le problème
Il ne fonctionne pas. Le script suivant:
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
... ne fonctionne que si le niveau du volume du système se trouve être inférieur à 43. Le système semble interpréter « 50 » comme « 49 »; c'est aussi élevé que le volume ira avec mon script. Si le volume commence supérieur à 50, mon script n'a aucun effet. Le kicker? Si l'instruction "exit repeat" est supprimée, le volume système est défini sur 100, comme vous le souhaitez.
(Bon sang, AppleScript est bizarre parfois.)
Toutes les idées?
Points Bonus
Ce serait super génial pour obtenir cette option pour afficher la superposition du volume ainsi. Est-ce que quelqu'un sait comment accomplir cela? Il n'a même pas besoin d'être à travers AppleScript; Je suis content de coller du code Cocoa dans un outil de ligne de commande si c'est ce qu'il faut.
Il cherche comme je vais devoir prendre votre approche. Il ne réplique pas le comportement du pilote d'Apple (qui semble utiliser l'approche list-of-valid-values), mais il devrait être «assez bon». –