https://github.com/python/cpython/commit/00a984488894a4e6674018f449eb9ec0cee3a9a1
commit: 00a984488894a4e6674018f449eb9ec0cee3a9a1
branch: main
author: AN Long <a...@users.noreply.github.com>
committer: zooba <steve.do...@microsoft.com>
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 -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to