2009-02-13 2 views
1

Идея состоит в том, что после того, как яркость пройдет определенный уровень, можно переключиться на другую визуальную схему, чтобы обеспечить большую видимость. Кроме того, если это может быть какая-то вещь типа слушателя, это будет еще лучше, но я возьму то, что смогу получить.Есть ли способ запросить текущий уровень яркости ЖК-дисплея MacBook?

ответ

1

epatel был довольно близко, я просто должен был изменить ключевое слово AppleGraphicsControlBacklight к чему-то еще, чтобы заставить его работать на моем MacBook, поэтому я предполагаю, что это может измениться между версиями OSX и/или версиями macbook.

Я собрал короткий рубиновый скрипт, чтобы распечатать небольшой визуальный индикатор в командной строке.

# grab the string containing the values 
brite_string = `ioreg -c AppleBacklightDisplay | grep brightness` 

# build a regex to match those vals 
brite_regex = /"brightness"=\{"min"=([0-9]{1,3}),"value"=([0-9]{1,3}),"max"=([0-9]{1,3})/ 

# match them 
match_data = brite_regex.match(brite_string) 

# extract the values from the match 
min = match_data[1].to_i 
val = match_data[2].to_i 
max = match_data[3].to_i 

# print them out nice 
puts "Current Brightness" 
print "[" 

max.times do |i| 
    print i > val ? " " : "*" 
end 

puts "]" 
+0

Отличные сценарии ... Я подумал, что на самом деле требуется другое решение C/C++/ObjC. Должно быть возможным доступ к нему через IOKit, затем ... – epatel

+0

В конце концов, да, я мог бы захотеть что-то еще более подключенное к IOKit. Это в основном просто доказательство концепции. –

-1

Я не парень-парень, но есть ли/proc в файловой системе? Возможно, вы захотите посмотреть в этом каталоге виртуальных файлов, если он существует.

+0

/proc не существует на Max OS X. Я не знаю, играет ли какая-либо другая директория в той же роли. – mouviciel

+0

hm .. да, просто угадай, так как Linux и OS X - более или менее кузены. – 2009-02-13 21:50:35

+0

/proc существует, но не монтируется в файловой системе. Вы можете получить доступ к нему программно. [citation-needed] – strager

2

Я считаю, что можно найти его с помощью IOKit. Запуск команды ioreg в терминале, как показано ниже, дает две строки, в которых отображается значение яркости.

% ioreg -c AppleGraphicsControlBacklight | grep brightness 

| | |  "IODisplayParameters" = {"brightness"={"min"=0,"value"=408,"max"=1024},"commit"={"reg"=0}} 
| | |  "IODisplayParameters" = {"brightness"={"min"=0,"value"=408,"max"=1024},"commit"={"reg"=0}} 

Может быть, кто-то с достаточно знаний IOKit мог собрать образец ...