-
Notifications
You must be signed in to change notification settings - Fork 65
/
sound.py
84 lines (63 loc) · 2.55 KB
/
sound.py
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
from ahk.script import ScriptEngine
class SoundMixin(ScriptEngine):
def sound_beep(self, frequency=523, duration=150):
"""
REF: https://autohotkey.com/docs/commands/SoundBeep.htm
:param frequency: number between 37 and 32767
:param duration: how long in milliseconds to play the beep
:return: None
"""
script = self.render_template('sound/beep.ahk', frequency=frequency, duration=duration)
self.run_script(script)
def sound_play(self, filename, blocking=True):
"""
REF: https://autohotkey.com/docs/commands/SoundPlay.htm
:param filename:
:param blocking:
:param wait:
:return:
"""
script = self.render_template('sound/play.ahk', filename=filename, wait=1, blocking=blocking)
self.run_script(script, blocking=blocking)
def sound_get(self, device_number=1, component_type='MASTER', control_type='VOLUME'):
"""
REF: https://autohotkey.com/docs/commands/SoundGet.htm
:param device_number:
:param component_type:
:param control_type:
:return:
"""
script = self.render_template('sound/sound_get.ahk')
return self.run_script(script)
def get_volume(self, device_number=1):
"""
REF: https://autohotkey.com/docs/commands/SoundGetWaveVolume.htm
:param device_number:
:return:
"""
script = self.render_template('sound/get_volume.ahk', device_number=device_number)
result = self.run_script(script)
return result
def sound_set(self, value, device_number=1, component_type='MASTER', control_type='VOLUME'):
"""
REF: https://autohotkey.com/docs/commands/SoundSet.htm
:param value:
:param device_number:
:param component_type:
:param control_type:
:return:
"""
script = self.render_template('sound/sound_set.ahk', value=value,
device_number=device_number,
component_type=component_type,
control_type=control_type)
self.run_script(script)
def set_volume(self, value, device_number=1):
"""
REF: https://autohotkey.com/docs/commands/SoundSetWaveVolume.htm
:param value: percent volume to set volume to
:param device_number:
:return:
"""
script = self.render_template('sound/set_volume.ahk', value=value, device_number=device_number)
self.run_script(script)