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.

Last updated 12 September 2005 21:38:45