/ahk/sound.py

https://github.com/spyoungtech/ahk · Python · 84 lines · 24 code · 12 blank · 48 comment · 0 complexity · 828c311bc891f1c9f1ba318c5a3f2304 MD5 · raw file

  1. from ahk.script import ScriptEngine
  2. class SoundMixin(ScriptEngine):
  3. def sound_beep(self, frequency=523, duration=150):
  4. """
  5. REF: https://autohotkey.com/docs/commands/SoundBeep.htm
  6. :param frequency: number between 37 and 32767
  7. :param duration: how long in milliseconds to play the beep
  8. :return: None
  9. """
  10. script = self.render_template('sound/beep.ahk', frequency=frequency, duration=duration)
  11. self.run_script(script)
  12. def sound_play(self, filename, blocking=True):
  13. """
  14. REF: https://autohotkey.com/docs/commands/SoundPlay.htm
  15. :param filename:
  16. :param blocking:
  17. :param wait:
  18. :return:
  19. """
  20. script = self.render_template('sound/play.ahk', filename=filename, wait=1, blocking=blocking)
  21. self.run_script(script, blocking=blocking)
  22. def sound_get(self, device_number=1, component_type='MASTER', control_type='VOLUME'):
  23. """
  24. REF: https://autohotkey.com/docs/commands/SoundGet.htm
  25. :param device_number:
  26. :param component_type:
  27. :param control_type:
  28. :return:
  29. """
  30. script = self.render_template('sound/sound_get.ahk')
  31. return self.run_script(script)
  32. def get_volume(self, device_number=1):
  33. """
  34. REF: https://autohotkey.com/docs/commands/SoundGetWaveVolume.htm
  35. :param device_number:
  36. :return:
  37. """
  38. script = self.render_template('sound/get_volume.ahk', device_number=device_number)
  39. result = self.run_script(script)
  40. return result
  41. def sound_set(self, value, device_number=1, component_type='MASTER', control_type='VOLUME'):
  42. """
  43. REF: https://autohotkey.com/docs/commands/SoundSet.htm
  44. :param value:
  45. :param device_number:
  46. :param component_type:
  47. :param control_type:
  48. :return:
  49. """
  50. script = self.render_template('sound/sound_set.ahk', value=value,
  51. device_number=device_number,
  52. component_type=component_type,
  53. control_type=control_type)
  54. self.run_script(script)
  55. def set_volume(self, value, device_number=1):
  56. """
  57. REF: https://autohotkey.com/docs/commands/SoundSetWaveVolume.htm
  58. :param value: percent volume to set volume to
  59. :param device_number:
  60. :return:
  61. """
  62. script = self.render_template('sound/set_volume.ahk', value=value, device_number=device_number)
  63. self.run_script(script)