blob: 8edb3818e7dfff04f63668a8350b1425ab331f3a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
open Arg
(*
Sett default path to sysfs
*)
let default_sysfs_dir = ref "/sys"
let default_backlight_path = ref (String.concat "" (List.append [!default_sysfs_dir] ["/class/backlight/intel_backlight"]))
let default_backlight_maxbrightness_path = ref (String.concat "" (List.append [!default_backlight_path] ["/max_brightness"]))
let default_backlight_brightness_path = ref (String.concat "" (List.append [!default_backlight_path] ["/brightness"]))
let set_backlight_path () = default_backlight_path := (String.concat "" (List.append [!default_sysfs_dir] ["/class/backlight/intel_backlight"]))
let set_backlight_maxbrightness_path () = default_backlight_maxbrightness_path := (String.concat "" (List.append [!default_backlight_path] ["/max_brightness"]))
let set_backlight_brightness_path () = default_backlight_brightness_path := (String.concat "" (List.append [!default_backlight_path] ["/brightness"]))
let print_debug () =
begin
let _ = Printf.printf "sysfs: %s\n" !default_sysfs_dir in
let _ = Printf.printf "backlight: %s\n" !default_backlight_path in
let _ = Printf.printf "max_brightness: %s\n" !default_backlight_maxbrightness_path in
Printf.printf "brightness: %s\n" !default_backlight_brightness_path
end
let set_sysfs_dir dir =
begin
(Printf.printf "Setting value of sysfs to %s\n" dir);
default_sysfs_dir := dir;
set_backlight_path ();
set_backlight_maxbrightness_path ();
set_backlight_brightness_path ()
end
let read_data filename =
let ic = open_in filename in
try
let line = input_line ic in
close_in ic;
(line)
with e ->
close_in_noerr ic;
raise e
let show_brightness () =
let b = read_data !default_backlight_brightness_path in
let mb = read_data !default_backlight_maxbrightness_path in
let _ = Printf.printf "Brightness: %s\n" b in
Printf.printf "Max Brightness: %s\n" mb
(* Set brightness from 0-100% *)
let write_data filename a =
let oc = open_out filename in
output_string oc a;
close_out oc;;
let set_brightness brightness_path nv =
let mb = read_data !default_backlight_maxbrightness_path in
let i_mb = int_of_string mb in
let nv_percent =((float_of_int nv) /. 100.0) *. (float_of_int i_mb) in
let _ = Printf.printf "%f\n" nv_percent in
write_data brightness_path (string_of_int (int_of_float nv_percent))
let arg_num = Array.length Sys.argv
let main =
begin
let speclist =
[
("-s",Arg.String (set_sysfs_dir),"Sysfs directory")
] in
let usage_msg = "set backlight value" in
let _ = Arg.parse speclist print_endline usage_msg in
(* If there is not argument print value of default path *)
if arg_num == 1 then
show_brightness();
(* If there is 1 argument set value to brigthness *)
if arg_num == 2 then
set_brightness !default_backlight_brightness_path (int_of_string Sys.argv.(1));
print_debug ();
end
let () = main;;
|