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

Update VolumePoup.cs #31

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

theonlyavengerreal
Copy link

Prevent incorrect volume level display, same as Windows.

Prevent incorrect volume level display, same as Windows.
@@ -39,7 +39,7 @@ public void updateValueSafe()
}
else
{
volume = ((int)(getVolume() * 100)).ToString();
volume = (getVolume() * 100).ToString();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This produces a decimal specifically with the number 8 from testing.
image

A better solution would be to use rounding with the appropriate rounding technique.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible. Maybe it's a Windows 11 issue.
I'm actively using it on Windows 10 x64, without the int conversion, it works perfectly. Using both keyboard volume, and using the mouse cursor to change the slider from tray, displays the same value as Windows, no decimals.
I recommend you are using real conditions to verify, not unit tests.
Investigate what is happening, find the source of the issue before coming up with solutions.
The quickest way to get in more trouble is to be smart about it and theoretical, without knowing the source and patching the result.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See this commit on my fork. Tested using both volume up/down keys and the slider from tray.

Result:
image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Microsoft's documentation here and this code

pAudioEndpointVolume.GetMasterVolumeLevelScalar(out masterVolume);

GetMasterVolumeLevelScalar returns a float value between 0.0 and 1.0.

The reason why in Windows 11 it may appear as a decimal is because of what is is mentioned with Note that the shape of the curve might change in future versions of Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants