diff -rupN pyao-0.82.orig//src/aomodule.c pyao-0.82//src/aomodule.c --- pyao-0.82.orig//src/aomodule.c 2010-10-18 16:20:01.000000000 -0500 +++ pyao-0.82//src/aomodule.c 2010-10-18 16:23:34.406215180 -0500 @@ -47,12 +47,12 @@ parse_args(PyObject *args, PyObject *kwa uint_32 *overwrite) { static const char *driver_id_kwlist[] = {"driver_id", "bits", "rate", - "channels", "byte_format", + "channels", "byte_format", "matrix", "options", "filename", "overwrite", NULL}; static const char *driver_name_kwlist[] = {"driver_name", "bits", "rate", - "channels", "byte_format", + "channels", "byte_format", "matrix", "options", "filename", "overwrite", NULL}; const char *driver_name = NULL; @@ -67,30 +67,33 @@ parse_args(PyObject *args, PyObject *kwa format->bits = 16; format->rate = 44100; format->channels = 2; - format->byte_format = 1; /* What should this be by default? Anyone? */ + format->byte_format = AO_FMT_LITTLE; + format->matrix = NULL; *overwrite = 0; - if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|iiiiO!si", + if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|iiiizO!si", (char **) driver_name_kwlist, &driver_name, &format->bits, &format->rate, &format->channels, &format->byte_format, + &format->matrix, &PyDict_Type, py_options, filename, overwrite)) { *driver_id = ao_driver_id(driver_name); } else { PyErr_Clear(); - if(!(PyArg_ParseTupleAndKeywords(args, kwargs, "i|iiiiO!si", + if(!(PyArg_ParseTupleAndKeywords(args, kwargs, "i|iiiizO!si", (char **) driver_id_kwlist, driver_id, &format->bits, &format->rate, &format->channels, &format->byte_format, + &format->matrix, &PyDict_Type, py_options, filename, overwrite)))