cpython/Modules/winsound.c

72 lines
1.5 KiB
C

/*
* 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);
}