mirror of
				https://github.com/onyx-and-iris/nvda-addon-voicemeeter.git
				synced 2025-11-04 06:11:46 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "51ccd76c2a7b606caabbb75d9e605197ca57ef88" and "770a7742a20ea0af1801a48de48897fd21fe8542" have entirely different histories.
		
	
	
		
			51ccd76c2a
			...
			770a7742a2
		
	
		
							
								
								
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@ -1,5 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
    "python.analysis.diagnosticSeverityOverrides": {
 | 
			
		||||
        "reportMissingImports": "none"
 | 
			
		||||
    }
 | 
			
		||||
    },
 | 
			
		||||
    "black-formatter.args": [
 | 
			
		||||
        "--line-length=120"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@ -14,11 +14,11 @@ def _make_gestures():
 | 
			
		||||
    defaults = {
 | 
			
		||||
        "kb:NVDA+alt+s": "strip_mode",
 | 
			
		||||
        "kb:NVDA+alt+b": "bus_mode",
 | 
			
		||||
        "kb:NVDA+alt+g": "slider_mode",  # Gate
 | 
			
		||||
        "kb:NVDA+alt+c": "slider_mode",  # Comp
 | 
			
		||||
        "kb:NVDA+alt+t": "slider_mode",  # Gate
 | 
			
		||||
        "kb:NVDA+alt+d": "slider_mode",  # Denoiser
 | 
			
		||||
        "kb:NVDA+alt+a": "slider_mode",  # Audibility
 | 
			
		||||
        "kb:NVDA+alt+g": "slider_mode",
 | 
			
		||||
        "kb:NVDA+alt+c": "slider_mode",
 | 
			
		||||
        "kb:NVDA+alt+t": "slider_mode",
 | 
			
		||||
        "kb:NVDA+alt+d": "slider_mode",
 | 
			
		||||
        "kb:NVDA+alt+a": "slider_mode",
 | 
			
		||||
        "kb:NVDA+shift+q": "announce_controller",
 | 
			
		||||
        "kb:NVDA+shift+a": "announce_voicemeeter_version",
 | 
			
		||||
        "kb:NVDA+shift+o": "toggle_mono",
 | 
			
		||||
 | 
			
		||||
@ -22,10 +22,6 @@ class Binds:
 | 
			
		||||
    bind_get_voicemeeter_type.restype = LONG
 | 
			
		||||
    bind_get_voicemeeter_type.argtypes = [ct.POINTER(LONG)]
 | 
			
		||||
 | 
			
		||||
    bind_get_voicemeeter_version = libc.VBVMR_GetVoicemeeterVersion
 | 
			
		||||
    bind_get_voicemeeter_version.restype = LONG
 | 
			
		||||
    bind_get_voicemeeter_version.argtypes = [ct.POINTER(LONG)]
 | 
			
		||||
 | 
			
		||||
    bind_is_parameters_dirty = libc.VBVMR_IsParametersDirty
 | 
			
		||||
    bind_is_parameters_dirty.restype = LONG
 | 
			
		||||
    bind_is_parameters_dirty.argtypes = None
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ def get_vmpath():
 | 
			
		||||
try:
 | 
			
		||||
    vm_parent = Path(get_vmpath()).parent
 | 
			
		||||
except FileNotFoundError as e:
 | 
			
		||||
    raise VMError("Unable to fetch DLL path from the registry") from e
 | 
			
		||||
    raise VMError(f"Unable to fetch DLL path from the registry") from e
 | 
			
		||||
 | 
			
		||||
DLL_NAME = f'VoicemeeterRemote{"64" if BITS == 64 else ""}.dll'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ class CommandsMixin:
 | 
			
		||||
    ### ANNOUNCEMENTS ###
 | 
			
		||||
 | 
			
		||||
    def script_announce_voicemeeter_version(self, _):
 | 
			
		||||
        ui.message(f"Running Voicemeeter {self.kind} {self.controller.version}")
 | 
			
		||||
        ui.message(f"Running Voicemeeter {self.kind}")
 | 
			
		||||
 | 
			
		||||
    def script_announce_controller(self, _):
 | 
			
		||||
        ui.message(f"Controller for {self.controller.ctx.strategy} {self.controller.ctx.index + 1}")
 | 
			
		||||
 | 
			
		||||
@ -8,9 +8,13 @@ class Strategy(ABC):
 | 
			
		||||
        self._slider_mode = "gain"
 | 
			
		||||
 | 
			
		||||
    @abstractmethod
 | 
			
		||||
    def identifier(self):
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def identifier(self):
 | 
			
		||||
        return f"{self}[{self._index}]"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def index(self):
 | 
			
		||||
        return self._index
 | 
			
		||||
@ -50,19 +54,11 @@ class StripStrategy(Strategy):
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "Strip"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def identifier(self):
 | 
			
		||||
        return f"{self}[{self._index}]"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class BusStrategy(Strategy):
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "Bus"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def identifier(self):
 | 
			
		||||
        return f"{self}[{self._index}]"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Context:
 | 
			
		||||
    def __init__(self, strategy: Strategy) -> None:
 | 
			
		||||
 | 
			
		||||
@ -27,17 +27,6 @@ class Controller(Binds):
 | 
			
		||||
        self.call(self.bind_get_voicemeeter_type, ct.byref(c_type))
 | 
			
		||||
        return KindId(c_type.value).name.lower()
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def version(self):
 | 
			
		||||
        ver = ct.c_long()
 | 
			
		||||
        self.call(self.bind_get_voicemeeter_version, ct.byref(ver))
 | 
			
		||||
        return "{}.{}.{}.{}".format(
 | 
			
		||||
            (ver.value & 0xFF000000) >> 24,
 | 
			
		||||
            (ver.value & 0x00FF0000) >> 16,
 | 
			
		||||
            (ver.value & 0x0000FF00) >> 8,
 | 
			
		||||
            ver.value & 0x000000FF,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def run_voicemeeter(self, kind_id):
 | 
			
		||||
        val = kind_id.value
 | 
			
		||||
        if val == 3 and BITS == 64:
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
class VMError(Exception):
 | 
			
		||||
    """Base voicemeeterlib exception class"""
 | 
			
		||||
    """Base voicemeeterlib exception class."""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class VMCAPIError(VMError):
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,8 @@ param(
 | 
			
		||||
 | 
			
		||||
function Copy-FilestoScratchpad {
 | 
			
		||||
    $source = Join-Path $PSScriptRoot "addon" "globalPlugins" "voicemeeter"
 | 
			
		||||
    $target = Join-Path $env:appdata "nvda" "scratchpad" "globalPlugins" "voicemeeter"
 | 
			
		||||
    Robocopy $source $target /MIR /NFL /NDL /NJH /NJS /nc /ns /np
 | 
			
		||||
    $target = Join-Path $env:appdata "nvda" "scratchpad" "globalPlugins"
 | 
			
		||||
    Copy-Item -Path $source -Destination $target -Recurse -Force
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function main {
 | 
			
		||||
 | 
			
		||||
@ -1,46 +0,0 @@
 | 
			
		||||
[tool.black]
 | 
			
		||||
line-length = 119
 | 
			
		||||
 | 
			
		||||
[tool.ruff]
 | 
			
		||||
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
 | 
			
		||||
select = ["E", "F"]
 | 
			
		||||
# Avoid enforcing line-length violations (`E501`). Let Black deal with this.
 | 
			
		||||
ignore = ["E501"]
 | 
			
		||||
# Allow autofix for all enabled rules (when `--fix`) is provided.
 | 
			
		||||
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
 | 
			
		||||
unfixable = []
 | 
			
		||||
# Exclude a variety of commonly ignored directories.
 | 
			
		||||
exclude = [
 | 
			
		||||
    ".bzr",
 | 
			
		||||
    ".direnv",
 | 
			
		||||
    ".eggs",
 | 
			
		||||
    ".git",
 | 
			
		||||
    ".git-rewrite",
 | 
			
		||||
    ".hg",
 | 
			
		||||
    ".mypy_cache",
 | 
			
		||||
    ".nox",
 | 
			
		||||
    ".pants.d",
 | 
			
		||||
    ".pytype",
 | 
			
		||||
    ".ruff_cache",
 | 
			
		||||
    ".svn",
 | 
			
		||||
    ".tox",
 | 
			
		||||
    ".venv",
 | 
			
		||||
    "__pypackages__",
 | 
			
		||||
    "_build",
 | 
			
		||||
    "buck-out",
 | 
			
		||||
    "build",
 | 
			
		||||
    "dist",
 | 
			
		||||
    "node_modules",
 | 
			
		||||
    "venv",
 | 
			
		||||
]
 | 
			
		||||
# Same as Black.
 | 
			
		||||
line-length = 119
 | 
			
		||||
# Allow unused variables when underscore-prefixed.
 | 
			
		||||
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
 | 
			
		||||
# Assume Python 3.7
 | 
			
		||||
target-version = "py37"
 | 
			
		||||
[tool.ruff.mccabe]
 | 
			
		||||
# Unlike Flake8, default to a complexity level of 10.
 | 
			
		||||
max-complexity = 10
 | 
			
		||||
[tool.ruff.per-file-ignores]
 | 
			
		||||
"__init__.py" = ["E402", "F401"] # Ignore unused import and variable not accessed violations
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user