72 lines
1.5 KiB
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);
|
|
}
|