Anonymous avatar Anonymous committed 4a543b7

Made openal module publicly available. Fixed source naming.

Comments (0)

Files changed (5)

examples/import.py

     except ImportError:
         print (sys.exc_info()[1])
 
+    try:
+        import pygame2.openal
+    except ImportError:
+        print (sys.exc_info()[1])
+
     import pygame2.resources
     
     try:

lib/openal/__init__.py

+"""
+OpenAL wrapper package for pygame2.
+"""
+from pygame2.openal.base import *
         depends = [ 'openal' ]),
     
     Module ("openal.base",
-        sources = [ "src/openal/basemod.c",
+        sources = [ "src/openal/openalmod.c",
                     "src/openal/device.c" ],
         depends = [ 'openal' ]),
     ]

src/openal/basemod.c

-/*
-  pygame - Python Game Library
-  Copyright (C) 2010 Marcus von Appen
-
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Library General Public
-  License as published by the Free Software Foundation; either
-  version 2 of the License, or (at your option) any later version.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Library General Public License for more details.
-
-  You should have received a copy of the GNU Library General Public
-  License along with this library; if not, write to the Free
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-*/
-#define PYGAME_OPENALBASE_INTERNAL
-
-#include "openalmod.h"
-#include "pgbase.h"
-#include "pgopenal.h"
-/*#include "openalbase_doc.h"*/
-
-static PyObject* _openal_init (PyObject *self);
-static PyObject* _openal_quit (PyObject *self);
-static PyObject* _openal_geterror (PyObject *self);
-static PyObject* _openal_isextensionpresent (PyObject *self, PyObject *args);
-
-static PyMethodDef _openal_methods[] = {
-    { "init", (PyCFunction)_openal_init, METH_NOARGS, ""/*DOC_BASE_INIT*/ },
-    { "quit", (PyCFunction)_openal_quit, METH_NOARGS, ""/*DOC_BASE_QUIT*/ },
-    { "get_error", (PyCFunction)_openal_geterror, METH_NOARGS, ""/*DOC_BASE_GETERROR*/ },
-    { "is_extension_present", _openal_isextensionpresent, METH_VARARGS, "" },
-    { NULL, NULL, 0, NULL },
-};
-
-static PyObject*
-_openal_init (PyObject *self)
-{
-    Py_RETURN_NONE;
-}
-
-static PyObject*
-_openal_quit (PyObject *self)
-{
-    Py_RETURN_NONE;
-}
-
-static PyObject*
-_openal_geterror (PyObject *self)
-{
-    ALenum error = alGetError ();
-    switch (error)
-    {
-    case AL_INVALID_ENUM:
-        return Text_FromUTF8 ("invalid enumeration value");
-    case AL_INVALID_VALUE:
-        return Text_FromUTF8 ("invalid value");
-    case AL_INVALID_OPERATION:
-        return Text_FromUTF8 ("invalid operation request");
-    case AL_OUT_OF_MEMORY:
-        return Text_FromUTF8 ("insufficient memory");
-    default:
-        Py_RETURN_NONE;
-    }
-}
-
-static PyObject*
-_openal_isextensionpresent (PyObject *self, PyObject *args)
-{
-    char *extname = NULL;
-    PyObject *device = NULL;
-    ALCboolean present;
-    
-    if(!PyArg_ParseTuple (args, "s|O", &extname, &device))
-        return NULL;
-    if (device && !PyDevice_Check (device))
-    {
-        PyErr_SetString (PyExc_TypeError, "device must be a Device");
-        return NULL;
-    }
-    
-    if (device)
-        present = alcIsExtensionPresent (PyDevice_AsDevice (device),
-            (const ALchar*) extname);
-    else
-        present = alIsExtensionPresent ((const ALchar*) extname);
-    if (SetALErrorException (alGetError ()))
-        return NULL;
-    if (present == ALC_FALSE)
-        Py_RETURN_FALSE;
-    Py_RETURN_TRUE;
-}
-
-/* C API */
-int
-SetALErrorException (ALenum error)
-{
-    switch (error)
-    {
-    case AL_INVALID_ENUM:
-        PyErr_SetString (PyExc_PyGameError, "invalid enumeration value");
-        return 1;
-    case AL_INVALID_VALUE:
-        PyErr_SetString (PyExc_PyGameError, "invalid value");
-        return 1;
-    case AL_INVALID_OPERATION:
-        PyErr_SetString (PyExc_PyGameError, "invalid operation request");
-        return 1;
-    case AL_OUT_OF_MEMORY:
-        PyErr_SetString (PyExc_PyGameError, "insufficient memory");
-        return 1;
-    default:
-        return 0;
-    }
-}
-
-#ifdef IS_PYTHON_3
-PyMODINIT_FUNC PyInit_base (void)
-#else
-PyMODINIT_FUNC initbase (void)
-#endif
-{
-    PyObject *mod;
-
-#ifdef IS_PYTHON_3
-    static struct PyModuleDef _module = {
-        PyModuleDef_HEAD_INIT,
-        "base",
-        ""/*DOC_BASE*/,
-        -1,
-        _openal_methods,
-        NULL, NULL, NULL, NULL
-    };
-    mod = PyModule_Create (&_module);
-#else
-    mod = Py_InitModule3 ("base", _openal_methods, ""/*DOC_BASE*/);
-#endif
-    if (!mod)
-        goto fail;
-        
-    if (import_pygame2_base () < 0)
-        goto fail;
-    
-    PyDevice_Type.tp_new = PyType_GenericNew;
-    if (PyType_Ready (&PyDevice_Type) < 0)
-        goto fail;
-
-    PyModule_AddObject (mod, "Device", (PyObject *) &PyDevice_Type);
-    
-    MODINIT_RETURN(mod);
-fail:
-    Py_XDECREF (mod);
-    MODINIT_RETURN (NULL);
-}

src/openal/openalmod.c

+/*
+  pygame - Python Game Library
+  Copyright (C) 2010 Marcus von Appen
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; either
+  version 2 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Library General Public License for more details.
+
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the Free
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+#define PYGAME_OPENALBASE_INTERNAL
+
+#include "openalmod.h"
+#include "pgbase.h"
+#include "pgopenal.h"
+/*#include "openalbase_doc.h"*/
+
+static PyObject* _openal_init (PyObject *self);
+static PyObject* _openal_quit (PyObject *self);
+static PyObject* _openal_geterror (PyObject *self);
+static PyObject* _openal_isextensionpresent (PyObject *self, PyObject *args);
+
+static PyMethodDef _openal_methods[] = {
+    { "init", (PyCFunction)_openal_init, METH_NOARGS, ""/*DOC_BASE_INIT*/ },
+    { "quit", (PyCFunction)_openal_quit, METH_NOARGS, ""/*DOC_BASE_QUIT*/ },
+    { "get_error", (PyCFunction)_openal_geterror, METH_NOARGS, ""/*DOC_BASE_GETERROR*/ },
+    { "is_extension_present", _openal_isextensionpresent, METH_VARARGS, "" },
+    { NULL, NULL, 0, NULL },
+};
+
+static PyObject*
+_openal_init (PyObject *self)
+{
+    Py_RETURN_NONE;
+}
+
+static PyObject*
+_openal_quit (PyObject *self)
+{
+    Py_RETURN_NONE;
+}
+
+static PyObject*
+_openal_geterror (PyObject *self)
+{
+    ALenum error = alGetError ();
+    switch (error)
+    {
+    case AL_INVALID_ENUM:
+        return Text_FromUTF8 ("invalid enumeration value");
+    case AL_INVALID_VALUE:
+        return Text_FromUTF8 ("invalid value");
+    case AL_INVALID_OPERATION:
+        return Text_FromUTF8 ("invalid operation request");
+    case AL_OUT_OF_MEMORY:
+        return Text_FromUTF8 ("insufficient memory");
+    default:
+        Py_RETURN_NONE;
+    }
+}
+
+static PyObject*
+_openal_isextensionpresent (PyObject *self, PyObject *args)
+{
+    char *extname = NULL;
+    PyObject *device = NULL;
+    ALCboolean present;
+    
+    if(!PyArg_ParseTuple (args, "s|O", &extname, &device))
+        return NULL;
+    if (device && !PyDevice_Check (device))
+    {
+        PyErr_SetString (PyExc_TypeError, "device must be a Device");
+        return NULL;
+    }
+    
+    if (device)
+        present = alcIsExtensionPresent (PyDevice_AsDevice (device),
+            (const ALchar*) extname);
+    else
+        present = alIsExtensionPresent ((const ALchar*) extname);
+    if (SetALErrorException (alGetError ()))
+        return NULL;
+    if (present == ALC_FALSE)
+        Py_RETURN_FALSE;
+    Py_RETURN_TRUE;
+}
+
+/* C API */
+int
+SetALErrorException (ALenum error)
+{
+    switch (error)
+    {
+    case AL_INVALID_ENUM:
+        PyErr_SetString (PyExc_PyGameError, "invalid enumeration value");
+        return 1;
+    case AL_INVALID_VALUE:
+        PyErr_SetString (PyExc_PyGameError, "invalid value");
+        return 1;
+    case AL_INVALID_OPERATION:
+        PyErr_SetString (PyExc_PyGameError, "invalid operation request");
+        return 1;
+    case AL_OUT_OF_MEMORY:
+        PyErr_SetString (PyExc_PyGameError, "insufficient memory");
+        return 1;
+    default:
+        return 0;
+    }
+}
+
+#ifdef IS_PYTHON_3
+PyMODINIT_FUNC PyInit_base (void)
+#else
+PyMODINIT_FUNC initbase (void)
+#endif
+{
+    PyObject *mod;
+
+#ifdef IS_PYTHON_3
+    static struct PyModuleDef _module = {
+        PyModuleDef_HEAD_INIT,
+        "base",
+        ""/*DOC_BASE*/,
+        -1,
+        _openal_methods,
+        NULL, NULL, NULL, NULL
+    };
+    mod = PyModule_Create (&_module);
+#else
+    mod = Py_InitModule3 ("base", _openal_methods, ""/*DOC_BASE*/);
+#endif
+    if (!mod)
+        goto fail;
+        
+    if (import_pygame2_base () < 0)
+        goto fail;
+    
+    PyDevice_Type.tp_new = PyType_GenericNew;
+    if (PyType_Ready (&PyDevice_Type) < 0)
+        goto fail;
+
+    PyModule_AddObject (mod, "Device", (PyObject *) &PyDevice_Type);
+    
+    MODINIT_RETURN(mod);
+fail:
+    Py_XDECREF (mod);
+    MODINIT_RETURN (NULL);
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.