Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nvwave/output devices enumeration: first output device is an empty string in Windows 10 Version 2004 and later #11349

Closed
josephsl opened this issue Jul 7, 2020 · 9 comments · Fixed by #11353
Milestone

Comments

@josephsl
Copy link
Collaborator

josephsl commented Jul 7, 2020

Hi,

Reported on Twitter and subsequently confirmed:

Steps to reproduce:

With Windows 10 Version 2004 (May 2020 Update) installed, open NVDA's synthesizer dialog (Control+NVDA+S). Then see which devices are listed under output device combo box.

Actual behavior:

An empty string is displayed at the top.

Expected behavior:

A default output device name (such as Microsoft Sound Mapper) is shown.

System configuration

NVDA installed/portable/running from source:

Installed and portable

NVDA version:

2020.1, 2020.2 beta 2, alpha-20514

Windows version:

Windows 10 Version 20H2 beta (build 19042.330)

Name and version of other software in use when reproducing the issue:

None

Other information about your system:

Multiple sound devices present (internal sound card, wireless headset)

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Versions listed above exhibit the same problem

If addons are disabled, is your problem still occurring?

Yes

Did you try to run the COM registry fixing tool in NVDA menu / tools?

Not applicable

Additional context:

This issue occurs in Version 2004 and later (Version 1909 did return the correct name for the first selected output device). This suggests something going on with device capabilities functions found in winmm.dll which are used to build output device names.

Thanks.

@josephsl josephsl changed the title nvwave/ouput devices enumeration: first output device is an empty string in Windows 10 Versi on2004 nvwave/output devices enumeration: first output device is an empty string in Windows 10 Version 2004 and later Jul 7, 2020
@stickbear2015
Copy link

stickbear2015 commented Jul 7, 2020

I was able to reproduce this with 2019.3.X as well.

@jage9
Copy link
Contributor

jage9 commented Jul 7, 2020

Confirmed with latest snapshot. TO clarify, there is no Windows Sound Mapper option, so if Windows was providing that placeholder name in the past, it is not now. Looked in latest TeamTalk, and it is exhibiting similar behavior, with placeholder text of input and output for the default.
So if Windows is providing a blank, NVDA may need to supply its own text of default, which can probably be assumed if the device name is blank and also first in the list.

@josephsl
Copy link
Collaborator Author

josephsl commented Jul 7, 2020

Hi,

Note: this issue only affects 2004 and 20H2 - Microsoft Sound Mapper is listed in build 20161 (dev).

Thanks.

@agtheblade
Copy link

agtheblade commented Jul 7, 2020

Hello everyone. I was the one who originally reported the bug. Just as an experiment, I turned on Narrator while in the NVDA synthesizer dialog and even Narrator was not able to read the Microsoft sound mapper item. Not sure if that means anything but figured I'd put that out there.

@josephsl
Copy link
Collaborator Author

josephsl commented Jul 8, 2020

@josephsl
Copy link
Collaborator Author

josephsl commented Jul 8, 2020

Hi,

It appears the term "Microsoft Sound Mapper" has been localized in other languages. Therefore this must be an alpha-level change.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Jul 8, 2020
…crosoft Sound Mapper'. Re nvaccess#11349.

On Windows 10 Version 2004 (20H1) and 20H2, an empty string is returned when asking Windowd for the friendly name of WAVE_MAPPER constant (-1). In older Windows releases, this is named 'Microsoft Sound Mapper'. Therefore call it that when enumerating device names for 'output device' list in synthesizer dialog in NVDA.
@leonardder
Copy link
Collaborator

leonardder commented Jul 8, 2020

I’ll submit a pull request targeting alpha snapshots.

I don't think this is necessary. If even Windows Narrator suffers from this issue, it is definitely an issue in Windows and a work around for this doesn't sound very important to me.

@XLTechie
Copy link
Contributor

XLTechie commented Jul 8, 2020

feerrenrut added a commit that referenced this issue Jul 13, 2020
Replace empty string in output device names with 'Microsoft Sound Mapper'.

Fixes #11349.

On Windows 10 Version 2004 (20H1) and 20H2, an empty string is returned when asking Windows for the friendly name of WAVE_MAPPER constant (-1). In older Windows releases, this is named 'Microsoft Sound Mapper'. Therefore call it that when enumerating device names for 'output device' list in synthesizer dialog in NVDA.

Co-authored-by: Reef Turner <reef@nvaccess.org>
@nvaccessAuto nvaccessAuto added this to the 2020.3 milestone Jul 13, 2020
@josephsl
Copy link
Collaborator Author

josephsl commented Sep 16, 2020

Indeed, fixed in a summer cumulative update, therefore this will be reverted. Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Sep 17, 2020
…r output devices in case it is not translated by Windows. Re nvaccess#11349.

In a summer 2020 cumulative update for Windows 10 May 2020 Update, Microsoft Sound Mapper is once again printed when asking for audio output device names but is not translated. Therefore 'translate' this entry. This change is only applicable to 2020 feature updates (May 2020 Update/20H1 and 20H2).
feerrenrut pushed a commit that referenced this issue Sep 21, 2020
…anslated. (PR #11627)

In a summer 2020 cumulative update for Windows 10 May 2020 Update, Microsoft Sound Mapper is once again printed when asking for audio output device names but is not translated. Therefore 'translate' this entry. This change is only applicable to 2020 feature updates (May 2020 Update/20H1 and 20H2).

Fixes #11349
Tweaks #11353
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants