summaryrefslogtreecommitdiffstats
path: root/PC
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2016-09-06 21:32:43 (GMT)
committerZachary Ware <zachary.ware@gmail.com>2016-09-06 21:32:43 (GMT)
commitc401881d689b2ca89211a6ff2cd5ac96150d237d (patch)
tree49045f3371cd68e0542ea1d57d1b4eba70de3d98 /PC
parentef537db68813ebaae11f54b780f21ad7dac05845 (diff)
downloadcpython-c401881d689b2ca89211a6ff2cd5ac96150d237d.zip
cpython-c401881d689b2ca89211a6ff2cd5ac96150d237d.tar.gz
cpython-c401881d689b2ca89211a6ff2cd5ac96150d237d.tar.bz2
Closes #27982: Allow keyword arguments to winsound functions
Diffstat (limited to 'PC')
-rw-r--r--PC/clinic/winsound.c.h40
-rw-r--r--PC/winsound.c17
2 files changed, 30 insertions, 27 deletions
diff --git a/PC/clinic/winsound.c.h b/PC/clinic/winsound.c.h
index a4c3938..766479a 100644
--- a/PC/clinic/winsound.c.h
+++ b/PC/clinic/winsound.c.h
@@ -3,7 +3,7 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(winsound_PlaySound__doc__,
-"PlaySound($module, sound, flags, /)\n"
+"PlaySound($module, /, sound, flags)\n"
"--\n"
"\n"
"A wrapper around the Windows PlaySound API.\n"
@@ -14,19 +14,21 @@ PyDoc_STRVAR(winsound_PlaySound__doc__,
" Flag values, ored together. See module documentation.");
#define WINSOUND_PLAYSOUND_METHODDEF \
- {"PlaySound", (PyCFunction)winsound_PlaySound, METH_VARARGS, winsound_PlaySound__doc__},
+ {"PlaySound", (PyCFunction)winsound_PlaySound, METH_VARARGS|METH_KEYWORDS, winsound_PlaySound__doc__},
static PyObject *
winsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags);
static PyObject *
-winsound_PlaySound(PyObject *module, PyObject *args)
+winsound_PlaySound(PyObject *module, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"sound", "flags", NULL};
+ static _PyArg_Parser _parser = {"Oi:PlaySound", _keywords, 0};
PyObject *sound;
int flags;
- if (!PyArg_ParseTuple(args, "Oi:PlaySound",
+ if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser,
&sound, &flags)) {
goto exit;
}
@@ -37,7 +39,7 @@ exit:
}
PyDoc_STRVAR(winsound_Beep__doc__,
-"Beep($module, frequency, duration, /)\n"
+"Beep($module, /, frequency, duration)\n"
"--\n"
"\n"
"A wrapper around the Windows Beep API.\n"
@@ -49,19 +51,21 @@ PyDoc_STRVAR(winsound_Beep__doc__,
" How long the sound should play, in milliseconds.");
#define WINSOUND_BEEP_METHODDEF \
- {"Beep", (PyCFunction)winsound_Beep, METH_VARARGS, winsound_Beep__doc__},
+ {"Beep", (PyCFunction)winsound_Beep, METH_VARARGS|METH_KEYWORDS, winsound_Beep__doc__},
static PyObject *
winsound_Beep_impl(PyObject *module, int frequency, int duration);
static PyObject *
-winsound_Beep(PyObject *module, PyObject *args)
+winsound_Beep(PyObject *module, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"frequency", "duration", NULL};
+ static _PyArg_Parser _parser = {"ii:Beep", _keywords, 0};
int frequency;
int duration;
- if (!PyArg_ParseTuple(args, "ii:Beep",
+ if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser,
&frequency, &duration)) {
goto exit;
}
@@ -72,7 +76,7 @@ exit:
}
PyDoc_STRVAR(winsound_MessageBeep__doc__,
-"MessageBeep($module, x=MB_OK, /)\n"
+"MessageBeep($module, /, type=MB_OK)\n"
"--\n"
"\n"
"Call Windows MessageBeep(x).\n"
@@ -80,24 +84,26 @@ PyDoc_STRVAR(winsound_MessageBeep__doc__,
"x defaults to MB_OK.");
#define WINSOUND_MESSAGEBEEP_METHODDEF \
- {"MessageBeep", (PyCFunction)winsound_MessageBeep, METH_VARARGS, winsound_MessageBeep__doc__},
+ {"MessageBeep", (PyCFunction)winsound_MessageBeep, METH_VARARGS|METH_KEYWORDS, winsound_MessageBeep__doc__},
static PyObject *
-winsound_MessageBeep_impl(PyObject *module, int x);
+winsound_MessageBeep_impl(PyObject *module, int type);
static PyObject *
-winsound_MessageBeep(PyObject *module, PyObject *args)
+winsound_MessageBeep(PyObject *module, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
- int x = MB_OK;
+ static const char * const _keywords[] = {"type", NULL};
+ static _PyArg_Parser _parser = {"|i:MessageBeep", _keywords, 0};
+ int type = MB_OK;
- if (!PyArg_ParseTuple(args, "|i:MessageBeep",
- &x)) {
+ if (!_PyArg_ParseTupleAndKeywordsFast(args, kwargs, &_parser,
+ &type)) {
goto exit;
}
- return_value = winsound_MessageBeep_impl(module, x);
+ return_value = winsound_MessageBeep_impl(module, type);
exit:
return return_value;
}
-/*[clinic end generated code: output=b999334e2e444ad2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=40b3d3ef2faefb15 input=a9049054013a1b77]*/
diff --git a/PC/winsound.c b/PC/winsound.c
index 7e06b7b..7feebcb 100644
--- a/PC/winsound.c
+++ b/PC/winsound.c
@@ -52,7 +52,7 @@ PyDoc_STRVAR(sound_module_doc,
"SND_NOWAIT - Return immediately if the sound driver is busy\n" // Without any errors
"\n"
"Beep(frequency, duration) - Make a beep through the PC speaker.\n"
-"MessageBeep(x) - Call Windows MessageBeep.");
+"MessageBeep(type) - Call Windows MessageBeep.");
/*[clinic input]
module winsound
@@ -68,14 +68,13 @@ winsound.PlaySound
The sound to play; a filename, data, or None.
flags: int
Flag values, ored together. See module documentation.
- /
A wrapper around the Windows PlaySound API.
[clinic start generated code]*/
static PyObject *
winsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags)
-/*[clinic end generated code: output=49a0fd16a372ebeb input=7bdf637f10201d37]*/
+/*[clinic end generated code: output=49a0fd16a372ebeb input=c63e1f2d848da2f2]*/
{
int ok;
wchar_t *wsound;
@@ -132,14 +131,13 @@ winsound.Beep
Must be in the range 37 through 32,767.
duration: int
How long the sound should play, in milliseconds.
- /
A wrapper around the Windows Beep API.
[clinic start generated code]*/
static PyObject *
winsound_Beep_impl(PyObject *module, int frequency, int duration)
-/*[clinic end generated code: output=f32382e52ee9b2fb input=628a99d2ddf73798]*/
+/*[clinic end generated code: output=f32382e52ee9b2fb input=40e360cfa00a5cf0]*/
{
BOOL ok;
@@ -163,8 +161,7 @@ winsound_Beep_impl(PyObject *module, int frequency, int duration)
/*[clinic input]
winsound.MessageBeep
- x: int(c_default="MB_OK") = MB_OK
- /
+ type: int(c_default="MB_OK") = MB_OK
Call Windows MessageBeep(x).
@@ -172,13 +169,13 @@ x defaults to MB_OK.
[clinic start generated code]*/
static PyObject *
-winsound_MessageBeep_impl(PyObject *module, int x)
-/*[clinic end generated code: output=1ad89e4d8d30a957 input=a776c8a85c9853f6]*/
+winsound_MessageBeep_impl(PyObject *module, int type)
+/*[clinic end generated code: output=120875455121121f input=db185f741ae21401]*/
{
BOOL ok;
Py_BEGIN_ALLOW_THREADS
- ok = MessageBeep(x);
+ ok = MessageBeep(type);
Py_END_ALLOW_THREADS
if (!ok) {