Software architecture

Overview

Player is composed primarily of 5 libraries :

  • libplayercommon (C): Error reporting facilities
  • libplayercore (C++): Basic messaging and queueing functionality, support for loading plugins, parsing configuration files
  • libplayerdrivers (C++): The drivers that are included with the Player distribution (and which were compiled)
  • libplayertcp (C++): Support for TCP client/server transport
  • libplayerinterface (C++): Support for interface parsing and XDR data marshaling

These libraries constitute the fundamental functionality of Player. In a way, the commonly-used player server is just a short (< 300 lines) example of how to use these libraries. Other uses are possible, and the libraries have designed with reuse in mind.

Compiling and linking

All Player libraries are installed with pkg-config meta-data files that detail how to compile and link against them. You should always use pkg-config to build applications that use these libraries, in order to correctly handle compiler/linker paths and dependencies. The pkg-config name for each library is the library's name without the lib prefix. For example, to build against libplayercore, you would do something like:

$ g++ `pkg-config --cflags playercore` -o myprogram myprogram.cc `pkg-config --libs playercore`

If pkg-config can't find Player libraries, read pkg-config paths.