| /* |
| * SOUND |
| * $Id$ |
| * |
| * play sound on a windows platform |
| * |
| * history: |
| * 99-02-02 fl created |
| * |
| * Copyright (c) 1999 by Secret Labs AB. |
| * Copyright (c) 1999 by Fredrik Lundh. |
| * |
| * fredrik@pythonware.com |
| * http://www.pythonware.com |
| * |
| * -------------------------------------------------------------------- |
| * Permission to use, copy, modify, and distribute this software and |
| * its associated documentation for any purpose and without fee is |
| * hereby granted. This software is provided as is. |
| * -------------------------------------------------------------------- |
| */ |
| |
| #include "Python.h" |
| |
| #include "windows.h" |
| #include "mmsystem.h" |
| |
| static PyObject* |
| _play(PyObject* self, PyObject* args) |
| { |
| int result; |
| |
| /* first argument is a string that should contain the contents of |
| a WAV file. second argument should be non-zero to wait for the |
| sound to complete. */ |
| |
| char *data = NULL; |
| int bytes; |
| int wait = 0; |
| if (!PyArg_ParseTuple(args, "|s#i", &data, &bytes, &wait)) |
| return NULL; |
| |
| result = PlaySound(data, NULL, (SND_MEMORY|SND_NOWAIT|SND_NODEFAULT) | |
| (wait ? 0 : SND_ASYNC)); |
| |
| return Py_BuildValue("i", result); |
| } |
| |
| static PyObject* |
| _stop(PyObject* self, PyObject* args) |
| { |
| if (!PyArg_NoArgs(args)) |
| return NULL; |
| |
| return Py_BuildValue("i", PlaySound(NULL, NULL, 0)); |
| } |
| |
| static PyMethodDef _functions[] = { |
| {"play", _play, 1}, |
| {"stop", _stop, 0}, |
| {NULL, NULL} |
| }; |
| |
| void |
| #ifdef WIN32 |
| __declspec(dllexport) |
| #endif |
| initwinsound() |
| { |
| Py_InitModule("winsound", _functions); |
| } |