17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyDoc_STRVAR(winsound_PlaySound__doc__,
67db96d56Sopenharmony_ci"PlaySound($module, /, sound, flags)\n"
77db96d56Sopenharmony_ci"--\n"
87db96d56Sopenharmony_ci"\n"
97db96d56Sopenharmony_ci"A wrapper around the Windows PlaySound API.\n"
107db96d56Sopenharmony_ci"\n"
117db96d56Sopenharmony_ci"  sound\n"
127db96d56Sopenharmony_ci"    The sound to play; a filename, data, or None.\n"
137db96d56Sopenharmony_ci"  flags\n"
147db96d56Sopenharmony_ci"    Flag values, ored together.  See module documentation.");
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci#define WINSOUND_PLAYSOUND_METHODDEF    \
177db96d56Sopenharmony_ci    {"PlaySound", _PyCFunction_CAST(winsound_PlaySound), METH_FASTCALL|METH_KEYWORDS, winsound_PlaySound__doc__},
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_cistatic PyObject *
207db96d56Sopenharmony_ciwinsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags);
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_cistatic PyObject *
237db96d56Sopenharmony_ciwinsound_PlaySound(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
247db96d56Sopenharmony_ci{
257db96d56Sopenharmony_ci    PyObject *return_value = NULL;
267db96d56Sopenharmony_ci    static const char * const _keywords[] = {"sound", "flags", NULL};
277db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "PlaySound", 0};
287db96d56Sopenharmony_ci    PyObject *argsbuf[2];
297db96d56Sopenharmony_ci    PyObject *sound;
307db96d56Sopenharmony_ci    int flags;
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
337db96d56Sopenharmony_ci    if (!args) {
347db96d56Sopenharmony_ci        goto exit;
357db96d56Sopenharmony_ci    }
367db96d56Sopenharmony_ci    sound = args[0];
377db96d56Sopenharmony_ci    flags = _PyLong_AsInt(args[1]);
387db96d56Sopenharmony_ci    if (flags == -1 && PyErr_Occurred()) {
397db96d56Sopenharmony_ci        goto exit;
407db96d56Sopenharmony_ci    }
417db96d56Sopenharmony_ci    return_value = winsound_PlaySound_impl(module, sound, flags);
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ciexit:
447db96d56Sopenharmony_ci    return return_value;
457db96d56Sopenharmony_ci}
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciPyDoc_STRVAR(winsound_Beep__doc__,
487db96d56Sopenharmony_ci"Beep($module, /, frequency, duration)\n"
497db96d56Sopenharmony_ci"--\n"
507db96d56Sopenharmony_ci"\n"
517db96d56Sopenharmony_ci"A wrapper around the Windows Beep API.\n"
527db96d56Sopenharmony_ci"\n"
537db96d56Sopenharmony_ci"  frequency\n"
547db96d56Sopenharmony_ci"    Frequency of the sound in hertz.\n"
557db96d56Sopenharmony_ci"    Must be in the range 37 through 32,767.\n"
567db96d56Sopenharmony_ci"  duration\n"
577db96d56Sopenharmony_ci"    How long the sound should play, in milliseconds.");
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci#define WINSOUND_BEEP_METHODDEF    \
607db96d56Sopenharmony_ci    {"Beep", _PyCFunction_CAST(winsound_Beep), METH_FASTCALL|METH_KEYWORDS, winsound_Beep__doc__},
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_cistatic PyObject *
637db96d56Sopenharmony_ciwinsound_Beep_impl(PyObject *module, int frequency, int duration);
647db96d56Sopenharmony_ci
657db96d56Sopenharmony_cistatic PyObject *
667db96d56Sopenharmony_ciwinsound_Beep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
677db96d56Sopenharmony_ci{
687db96d56Sopenharmony_ci    PyObject *return_value = NULL;
697db96d56Sopenharmony_ci    static const char * const _keywords[] = {"frequency", "duration", NULL};
707db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "Beep", 0};
717db96d56Sopenharmony_ci    PyObject *argsbuf[2];
727db96d56Sopenharmony_ci    int frequency;
737db96d56Sopenharmony_ci    int duration;
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
767db96d56Sopenharmony_ci    if (!args) {
777db96d56Sopenharmony_ci        goto exit;
787db96d56Sopenharmony_ci    }
797db96d56Sopenharmony_ci    frequency = _PyLong_AsInt(args[0]);
807db96d56Sopenharmony_ci    if (frequency == -1 && PyErr_Occurred()) {
817db96d56Sopenharmony_ci        goto exit;
827db96d56Sopenharmony_ci    }
837db96d56Sopenharmony_ci    duration = _PyLong_AsInt(args[1]);
847db96d56Sopenharmony_ci    if (duration == -1 && PyErr_Occurred()) {
857db96d56Sopenharmony_ci        goto exit;
867db96d56Sopenharmony_ci    }
877db96d56Sopenharmony_ci    return_value = winsound_Beep_impl(module, frequency, duration);
887db96d56Sopenharmony_ci
897db96d56Sopenharmony_ciexit:
907db96d56Sopenharmony_ci    return return_value;
917db96d56Sopenharmony_ci}
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ciPyDoc_STRVAR(winsound_MessageBeep__doc__,
947db96d56Sopenharmony_ci"MessageBeep($module, /, type=MB_OK)\n"
957db96d56Sopenharmony_ci"--\n"
967db96d56Sopenharmony_ci"\n"
977db96d56Sopenharmony_ci"Call Windows MessageBeep(x).\n"
987db96d56Sopenharmony_ci"\n"
997db96d56Sopenharmony_ci"x defaults to MB_OK.");
1007db96d56Sopenharmony_ci
1017db96d56Sopenharmony_ci#define WINSOUND_MESSAGEBEEP_METHODDEF    \
1027db96d56Sopenharmony_ci    {"MessageBeep", _PyCFunction_CAST(winsound_MessageBeep), METH_FASTCALL|METH_KEYWORDS, winsound_MessageBeep__doc__},
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_cistatic PyObject *
1057db96d56Sopenharmony_ciwinsound_MessageBeep_impl(PyObject *module, int type);
1067db96d56Sopenharmony_ci
1077db96d56Sopenharmony_cistatic PyObject *
1087db96d56Sopenharmony_ciwinsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
1097db96d56Sopenharmony_ci{
1107db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1117db96d56Sopenharmony_ci    static const char * const _keywords[] = {"type", NULL};
1127db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "MessageBeep", 0};
1137db96d56Sopenharmony_ci    PyObject *argsbuf[1];
1147db96d56Sopenharmony_ci    Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
1157db96d56Sopenharmony_ci    int type = MB_OK;
1167db96d56Sopenharmony_ci
1177db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
1187db96d56Sopenharmony_ci    if (!args) {
1197db96d56Sopenharmony_ci        goto exit;
1207db96d56Sopenharmony_ci    }
1217db96d56Sopenharmony_ci    if (!noptargs) {
1227db96d56Sopenharmony_ci        goto skip_optional_pos;
1237db96d56Sopenharmony_ci    }
1247db96d56Sopenharmony_ci    type = _PyLong_AsInt(args[0]);
1257db96d56Sopenharmony_ci    if (type == -1 && PyErr_Occurred()) {
1267db96d56Sopenharmony_ci        goto exit;
1277db96d56Sopenharmony_ci    }
1287db96d56Sopenharmony_ciskip_optional_pos:
1297db96d56Sopenharmony_ci    return_value = winsound_MessageBeep_impl(module, type);
1307db96d56Sopenharmony_ci
1317db96d56Sopenharmony_ciexit:
1327db96d56Sopenharmony_ci    return return_value;
1337db96d56Sopenharmony_ci}
1347db96d56Sopenharmony_ci/*[clinic end generated code: output=b7e53fab4f26aeaf input=a9049054013a1b77]*/
135