Integrating PyAL¶
PyAL consists of two modules, openal
, which is a plain 1:1 API wrapper
around the OpenAL 1.1 specification, and openal.audio
, which contains
some high-level audio classes and helper functions, which use the OpenAL
wrapper.
Both modules are implemented in a way that shall make it easy for you to integrate and deploy them with your own software projects. You can rely on PyAL as third-party package, so that the user needs to install it before he can use your software. Alternatively, you can just copy both modules into your project, shipping them within your own project bundle.
Importing¶
The openal
module relies on an external OpenAL library which it can
access for creating the wrapper functions. This means that the user needs to
have OpenAL installed or that you ship an OpenAL library with your project.
If the user has an OpenAL library installed on the target system, the
ctypes
hooks of openal
try to find it in the OS-specific standard
locations via ctypes.util.find_library()
. If you are going to ship your
own OpenAL library with the project or can not rely on the standard mechanism
of ctypes
, it is also possible to set the environment variable
PYAL_DLL_PATH
, which shall point to the directory of the OpenAL
library.
Note
PYAL_DLL_PATH
is preferred over the standard mechanism. That said,
if the module finds a OpenAL library in PYAL_DLL_PATH
, it will try
to use that one in the first place, before using any OpenAL library
installed on the target system.
Let’s assume, you ship your own library OpenAL.dll within your project
location fancy_project/third_party. You can set the environment variable
PYAL_DLL_PATH
before starting Python.
# Win32 platforms
set PYAL_DLL_PATH=C:\path\to\fancy_project\third_party
# Unix/Posix-alike environments - bourne shells export
PYAL_DLL_PATH=/path/to/fancy_project/third_party
# Unix/Posix-alike environments - C shells setenv PYAL_DLL_PATH
/path/to/fancy_project/third_party
You also can set the environment variable within Python using
os.environ
.
os.environ["PYAL_DLL_PATH"] = "C:\\path\\to\\fancy_project\\third_party"
os.environ["PYAL_DLL_PATH"] = "/path/to/fancy_project/third_party"
Note
If you aim to integrate openal
directly into your software and do not
want or are not allowed to change the environment variables, you can
also change the os.getenv("PYAL_DLL_PATH")
query within the openal.py
file to point to the directory, in which you keep the DLL.