Welcome to Volume Control’s documentation!

PyVolume

OS-agnostic module to control system volume using built-in functions.

pyvolume.pyvolume.log(msg: str)

Log messages if logger is set.

pyvolume.pyvolume.increase(logger: Optional[Logger] = None)

Sets the system volume to maximum.

pyvolume.pyvolume.decrease(logger: Optional[Logger] = None)

Mutes the system volume.

pyvolume.pyvolume.pyvolume(level: int, debug: bool = False, logger: Optional[Logger] = None) None

Legacy function.

pyvolume.pyvolume.custom(percent: int, logger: Optional[Logger] = None) None

Set system volume to a certain level.

Parameters:
  • percent – Volume level in percentage.

  • logger – Bring your own logger for custom logging.

Notes

  • This package uses:
    • amixer for volume controls in Linux.

    • osascript for volume controls in macOS.

    • key combinations for volume controls in Windows.

  • amixer is a command-line mixer for ALSA(Advanced Linux Sound Architecture) sound-card driver.

Module

Module to store shared object and validate host machine’s operating system.

class pyvolume.module.Settings

Wrapper for settings.

>>> Settings
os: str = 'Darwin'
logger: Logger = None

Windows

Module to change volume in WindowsOS, using windows binaries.

>>> WindowsVolume
class pyvolume.windows.KeyBoardInput

Inherits Structure from ctypes for operations using keyboard.

>>> KeyBoardInput
_fields_ = [('wVk', <class 'ctypes.c_ushort'>), ('wScan', <class 'ctypes.c_ushort'>), ('dwFlags', <class 'ctypes.c_ulong'>), ('time', <class 'ctypes.c_ulong'>), ('dwExtraInfo', <class 'pyvolume.windows.LP_c_ulong'>)]
dwExtraInfo

Structure/Union member

dwFlags

Structure/Union member

time

Structure/Union member

wScan

Structure/Union member

wVk

Structure/Union member

class pyvolume.windows.HardwareInput

Inherits Structure from ctypes for operations using external hardware.

>>> HardwareInput
_fields_ = [('uMsg', <class 'ctypes.c_ulong'>), ('wParamL', <class 'ctypes.c_short'>), ('wParamH', <class 'ctypes.c_ushort'>)]
uMsg

Structure/Union member

wParamH

Structure/Union member

wParamL

Structure/Union member

class pyvolume.windows.MouseInput

Inherits Structure from ctypes for operations using a mouse.

>>> MouseInput
_fields_ = [('dx', <class 'ctypes.c_long'>), ('dy', <class 'ctypes.c_long'>), ('mouseData', <class 'ctypes.c_ulong'>), ('dwFlags', <class 'ctypes.c_ulong'>), ('time', <class 'ctypes.c_ulong'>), ('dwExtraInfo', <class 'pyvolume.windows.LP_c_ulong'>)]
dwExtraInfo

Structure/Union member

dwFlags

Structure/Union member

dx

Structure/Union member

dy

Structure/Union member

mouseData

Structure/Union member

time

Structure/Union member

class pyvolume.windows.InputI

Inherits Union from ctypes for input operations.

>>> MouseInput
_fields_ = [('ki', <class 'pyvolume.windows.KeyBoardInput'>), ('mi', <class 'pyvolume.windows.MouseInput'>), ('hi', <class 'pyvolume.windows.HardwareInput'>)]
hi

Structure/Union member

ki

Structure/Union member

mi

Structure/Union member

class pyvolume.windows.Input

Inherits Structure from ctypes to set type fields.

>>> MouseInput
_fields_ = [('type', <class 'ctypes.c_ulong'>), ('ii', <class 'pyvolume.windows.InputI'>)]
ii

Structure/Union member

type

Structure/Union member

pyvolume.windows.key_down(key_code: int) None

Function for key down.

Parameters:

key_code – Key code.

pyvolume.windows.key_up(key_code: int) None

Function for key up.

Parameters:

key_code – Key code.

pyvolume.windows.key(key_code: int) None

Operator for the key function with time interval.

Parameters:

key_code – Key code.

pyvolume.windows.volume_up() None

Controller for increase volume.

pyvolume.windows.volume_down() None

Controller for decrease volume.

pyvolume.windows.mute() None

Controller for mute.

pyvolume.windows.set_volume(level: int) None

Set volume to a custom level.

Parameters:

level – Level to which the volume has to be set.

Indices and tables