You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since friendly names are not unique, there may be many devices on one system with the same friendly name.
445
+
As the order of devices in an IMMEndpointEnumerator is arbitrary, we cannot assume that the first device with a matching friendly name is the device the user wants.
446
+
We also can't guarantee that the device the user has selected is active, so we need to retrieve devices by state, in order from most to least preferable.
447
+
It is probably a safe bet that the device the user wants to use is either active or unplugged.
448
+
Thus, the preference order for states is:
449
+
1. ACTIVE- The audio adapter that connects to the endpoint device is present and enabled.
450
+
In addition, if the endpoint device plugs into a jack on the adapter, then the endpoint device is plugged in.
451
+
2. UNPLUGGED - The audio adapter that contains the jack for the endpoint device is present and enabled, but the endpoint device is not plugged into the jack.
452
+
3. DISABLED - The user has disabled the device in the Windows multimedia control panel.
453
+
4. NOTPRESENT - The audio adapter that connects to the endpoint device has been removed from the system, or the user has disabled the adapter device in Device Manager.
454
+
Within a state, if there is more than one device with the selected friendly name, we use the first one.
455
+
456
+
:param friendlyName: Friendly name of the device to search for.
457
+
:return: Endpoint ID string of the best match device, or `None` if no device with a matching friendly name is available.
# Translators: This is the label for the select output device combo in NVDA audio settings.
3042
3042
# Examples of an output device are default soundcard, usb headphones, etc.
3043
3043
deviceListLabelText=_("Audio output &device:")
3044
-
# The Windows Core Audio device enumeration does not have the concept of an ID for the default output device, so we have to insert something ourselves instead.
3045
-
# Translators: Value to show when choosing to use the default audio output device.
Copy file name to clipboardExpand all lines: user_docs/en/changes.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -146,6 +146,8 @@ As the NVDA update check URL is now configurable directly within NVDA, no replac
146
146
*`gui.settingsDialogs.AdvancedPanelControls.wasapiComboBox` has been removed.
147
147
* The `WASAPI` key has been removed from the `audio` section of the config spec.
148
148
* The output from `nvwave.outputDeviceNameToID`, and input to `nvwave.outputDeviceIDToName` are now string identifiers.
149
+
* The configuration key `config.conf["speech"]["outputDevice"]` has been removed.
150
+
It has been replaced by `config.conf["audio"]["outputDevice"]`, which stores a Windows core audio endpoint device ID. (#17547)
149
151
* In `NVDAObjects.window.scintilla.ScintillaTextInfo`, if no text is selected, the `collapse` method is overriden to expand to line if the `end` parameter is set to `True` (#17431, @nvdaes)
150
152
* The following symbols have been removed with no replacement: `languageHandler.getLanguageCliArgs`, `__main__.quitGroup` and `__main__.installGroup` . (#17486, @CyrilleB79)
151
153
* Prefix matching on command line flags, e.g. using `--di` for `--disable-addons` is no longer supported. (#11644, @CyrilleB79)
0 commit comments