https://github.com/python/cpython/commit/00a984488894a4e6674018f449eb9ec0cee3a9a1
commit: 00a984488894a4e6674018f449eb9ec0cee3a9a1
branch: main
author: AN Long <[email protected]>
committer: zooba <[email protected]>
date: 2025-03-20T16:35:52Z
summary:
gh-131453: Add additional constants to winsound module (GH-131454)
files:
A Misc/NEWS.d/next/Windows/2025-03-19-21-58-16.gh-issue-131453.qQ4J5H.rst
M Doc/library/winsound.rst
M Lib/test/test_winsound.py
M PC/winsound.c
diff --git a/Doc/library/winsound.rst b/Doc/library/winsound.rst
index 799fb3dea19501..925984c3cdb0cb 100644
--- a/Doc/library/winsound.rst
+++ b/Doc/library/winsound.rst
@@ -142,6 +142,27 @@ provided by Windows platforms. It includes functions and
several constants.
to specify an application-defined sound alias.
+.. data:: SND_SENTRY
+
+ Triggers a SoundSentry event when the sound is played.
+
+ .. versionadded:: 3.14
+
+
+.. data:: SND_SYNC
+
+ The sound is played synchronously. This is the default behavior.
+
+ .. versionadded:: 3.14
+
+
+.. data:: SND_SYSTEM
+
+ Assign the sound to the audio session for system notification sounds.
+
+ .. versionadded:: 3.14
+
+
.. data:: MB_ICONASTERISK
Play the ``SystemDefault`` sound.
@@ -166,3 +187,30 @@ provided by Windows platforms. It includes functions and
several constants.
Play the ``SystemDefault`` sound.
+
+.. data:: MB_ICONERROR
+
+ Play the ``SystemHand`` sound.
+
+ .. versionadded:: 3.14
+
+
+.. data:: MB_ICONINFORMATION
+
+ Play the ``SystemDefault`` sound.
+
+ .. versionadded:: 3.14
+
+
+.. data:: MB_ICONSTOP
+
+ Play the ``SystemHand`` sound.
+
+ .. versionadded:: 3.14
+
+
+.. data:: MB_ICONWARNING
+
+ Play the ``SystemExclamation`` sound.
+
+ .. versionadded:: 3.14
diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py
index 870ab7bd41d8ce..9724d830ade0b4 100644
--- a/Lib/test/test_winsound.py
+++ b/Lib/test/test_winsound.py
@@ -82,6 +82,18 @@ def test_hand(self):
def test_question(self):
safe_MessageBeep(winsound.MB_ICONQUESTION)
+ def test_error(self):
+ safe_MessageBeep(winsound.MB_ICONERROR)
+
+ def test_information(self):
+ safe_MessageBeep(winsound.MB_ICONINFORMATION)
+
+ def test_stop(self):
+ safe_MessageBeep(winsound.MB_ICONSTOP)
+
+ def test_warning(self):
+ safe_MessageBeep(winsound.MB_ICONWARNING)
+
def test_keyword_args(self):
safe_MessageBeep(type=winsound.MB_OK)
@@ -161,6 +173,15 @@ def test_stopasync(self):
# does not raise on systems without a sound card.
winsound.PlaySound(None, winsound.SND_PURGE)
+ def test_sound_sentry(self):
+ safe_PlaySound("SystemExit", winsound.SND_ALIAS | winsound.SND_SENTRY)
+
+ def test_sound_sync(self):
+ safe_PlaySound("SystemExit", winsound.SND_ALIAS | winsound.SND_SYNC)
+
+ def test_sound_system(self):
+ safe_PlaySound("SystemExit", winsound.SND_ALIAS | winsound.SND_SYSTEM)
+
if __name__ == "__main__":
unittest.main()
diff --git
a/Misc/NEWS.d/next/Windows/2025-03-19-21-58-16.gh-issue-131453.qQ4J5H.rst
b/Misc/NEWS.d/next/Windows/2025-03-19-21-58-16.gh-issue-131453.qQ4J5H.rst
new file mode 100644
index 00000000000000..4f44c091745700
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2025-03-19-21-58-16.gh-issue-131453.qQ4J5H.rst
@@ -0,0 +1 @@
+Some :data:`!SND_*` and :data:`!MB_*` constants are added to :mod:`winsound`.
diff --git a/PC/winsound.c b/PC/winsound.c
index 1cb42f2f3bdfc6..f485c2c5972b01 100644
--- a/PC/winsound.c
+++ b/PC/winsound.c
@@ -56,7 +56,10 @@ PyDoc_STRVAR(sound_module_doc,
"SND_NODEFAULT - Do not play a default beep if the sound can not be found\n"
"SND_NOSTOP - Do not interrupt any sounds currently playing\n" // Raising
RuntimeError if needed
"SND_NOWAIT - Return immediately if the sound driver is busy\n" // Without any
errors
-"SND_APPLICATION - sound is an application-specific alias in the registry."
+"SND_APPLICATION - sound is an application-specific alias in the registry.\n"
+"SND_SENTRY - Triggers a SoundSentry event when the sound is played.\n"
+"SND_SYNC - Play the sound synchronously, default behavior.\n"
+"SND_SYSTEM - Assign sound to the audio session for system notification
sounds.\n"
"\n"
"Beep(frequency, duration) - Make a beep through the PC speaker.\n"
"MessageBeep(type) - Call Windows MessageBeep.");
@@ -232,12 +235,19 @@ exec_module(PyObject *module)
ADD_DEFINE(SND_PURGE);
ADD_DEFINE(SND_LOOP);
ADD_DEFINE(SND_APPLICATION);
+ ADD_DEFINE(SND_SENTRY);
+ ADD_DEFINE(SND_SYNC);
+ ADD_DEFINE(SND_SYSTEM);
ADD_DEFINE(MB_OK);
ADD_DEFINE(MB_ICONASTERISK);
ADD_DEFINE(MB_ICONEXCLAMATION);
ADD_DEFINE(MB_ICONHAND);
ADD_DEFINE(MB_ICONQUESTION);
+ ADD_DEFINE(MB_ICONERROR);
+ ADD_DEFINE(MB_ICONINFORMATION);
+ ADD_DEFINE(MB_ICONSTOP);
+ ADD_DEFINE(MB_ICONWARNING);
#undef ADD_DEFINE
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]