Lark, a music server
Lark implements a network music daemon in C++ by glueing off the shelf libraries. In particular it uses the following libraries:
Lark is headless and is controlled via TCP through an API generated by Thrift. See interfaces/lark.thrift for details about the API. Automatically generated Python bindings are in py/. Additional bindings for the other languages (such as Java, Erlang, Ruby, Perl, Haskell) can easily be created by adding additonal Makefiles for each (see py/Makefile.am for an example).
Building on Fedora
A partial list of dependencies:
- thrift (not packaged for fedora)
Fedora has an issue finding Boost from configure scripts, and you need to use
--with-boost-* options to get configure to pass, and get things to build.
./configure --with-boost-system=boost_system-mt --with-boost-filesystem=boost_filesystem-mt --with-boost-thread=boost_thread-mt
Fedora doesn't package
uuid.pc, I had to install uuid myself to get this. If
you intall it locally make sure you have
PKG_CONFIG_PREFIX set up correctly
(you probably need to do this for thrift anyways).
Running: ./cpp/larkd &
Now you need to get the client built, and index some music: pushd py make popd PYTHONPATH=py:$PYTHONPATH python py/lark/gen/LarkService-remote scan /path/to/your/music
This should print
None to the screen, and the
larkd instance will start
printing out information about what files it is indexing.
You need to hack up
py/lark/testclient.py to get music to play.
Building Doxygen Documentation
Lark is set up to use doxygen (although many parts of the code are not yet
annotated for it). To build doxygen docs, run the following command from the
root directory (the one that holds the master Makefile):
The generated documentation will end up in