Skip to content

Building Python bindings for ADLX

Navigation: Programming with ADLXADLX Programming GuideQuick Start

This guide outlines the steps to build a Python binding wrapper for ADLX, a prerequisite to programming with ADLX in a Python application.

Prerequisite(s)

  • ADLX SDK is installed.
  • Visual Studio 2019 is installed.
  • Python 3.9 is installed.
  • pybind11 is installed.
  • The path to the Python 3.9 installation is added to the PYHOME system environment variable.

To build ADLX bindings in Python

  • Create a folder for your Python ADLX binding wrapper, for example ADLXPybind.
  • Create a new file in the ADLXPybind folder and title it bind.cpp.
  • Edit bind.cpp and bind the interfaces you wish to wrap using pybind11. To create bindings for event notifications, inherit the respective listener interface.

For example, inherit IADLXDisplayListChangedListener.

Note: Refer to the Python samples bind.cpp file for an example of a Python binding.

  • Create a C++ Dynamic Link Library project named ADLXPybind and configure the project as follows:
  • | Key | Value | Observations | |---|---|---| | Advanced > Target File Extension | .pyd | Use .pyd as the extension | | VC++ Directories > Include Directories | $(PYHOME)/include

(PYHOME)/Lib/sitepackages/pybind11/includeAddPathofpythonincludeandpathofpybind11includeVC++Directories>LibraryDirectories(PYHOME)/Lib/site-packages/pybind11/include | Add Path of python include and path of pybind11 include | | VC++ Directories > Library Directories | (PYHOME)/libs | Add path of python libs | | C/C++ > Precompiled Header | Not Using Precompiled Headers | Do not use precompiled headers | | Linker > Inpit | python39.lib | Add python lib |

  • Add the bind.cpp file to the project
  • Add the following files to the project:
  • SDK/Platform/Windows/WinAPIs.cpp
  • SDK/ADLXHelper/Windows/Cpp/ADLXHelper.h
  • SDK/ADLXHelper/Windows/Cpp/ADLXHelper.cpp
  • Build the project.

Result: The ADLXPybind.pyd is built in the "$(SolutionDir)$(Platform)$/(Configuration)/" folder.

See Also: IADLXDisplayListChangedListener, ADLXPybind