VFLib is a source code collection of individual modules containing functionality for a variety of applications, with an emphasis on building concurrent systems. VFLib requires JUCE (Jules' Utility Class Extensions), available from Raw Material Software. JUCE is available under both the GNU General Public License and a commercial license. Other than JUCE, VFLib has no external dependencies.
VFLib is hosted on Github at https://github.com/vinniefalco/VFLib
The online documentation is at http://vinniefalco.github.com/VFLib
All platforms supported by JUCE are also supported by VFLib. Currently these platforms include:
-
Windows: Applications and VST/RTAS/NPAPI/ActiveX plugins can be built using MS Visual Studio. The results are all fully compatible with Windows XP, Vista or Windows 7.
-
Mac OS X: Applications and VST/AudioUnit/RTAS/NPAPI plugins with Xcode.
-
GNU/Linux: Applications and plugins can be built for any kernel 2.6 or later.
-
iOS: Native iPhone and iPad apps.
-
Android: Supported.
This documentation assumes that the reader has a working knowledge of JUCE. Some modules built on external libraries assume that the reader understands the operation of those external libraries. Certain modules assume that the reader understands additional domain-specific information. Modules with additional prerequisites are marked in the documentation.
Some modules bring in functionality provided by external libraries. For example, the vf_bzip2 module provides the compression and decompression algorithms in bZip2. Usage of these external library modules is optional. They come with complete source code, as well as options for using either system or user provided variants of the external libraries: it is not necessary to download additional source code packages to use these modules.
External code incorporated into VFLib is covered by separate licenses. See the licensing information and notes in the corresponding source files for copyright information and terms of use.
VFLib requires recent versions of JUCE. It won't work with versions 1.53 or earlier. To use the library it is necessary to first download JUCE to a location where your development environment can find it. Or, you can use your existing installation of JUCE.
This library uses the same modularized organizational structure as JUCE. To use a module, first add a path to the list of includes searched by your development environment or project, which points to the VFLib directory. Then, add the single corresponding .c or .cpp file to your existing project which already uses JUCE. For example, to use the vf_core module, add the file vf_core.cpp to your project. Some modules depend on other modules.
To use a module, include the appropriate header from within your source code. For example, to access classes in the vf_concurrent module, use this:
#include "modules/vf_concurrent/vf_concurrent.h"
Then add the corresponding file vf_concurrent.cpp to your build.
Some VFLib features can be controlled at compilation time through preprocessor directives. The available choices of compilation options are described in AppConfig.h, located in the AppConfigTemplate directory. Copy the provided settings into your existing AppConfig.h (a file used by JUCE convention).
Copyright (C) 2008 by Vinnie Falco (e-mail)
Unless otherwise marked, files in VFLib are published under the GNU General Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Commercial, closed source licenses for VFLib are available, contact the author for details.
Some files contain portions of these external projects, licensed separately:
-
bZip2 is Copyright (C) 1996-2010 Julian R Seward. All rights reserved. See the corresponding file LICENSE for licensing terms.
-
Portions of the software are Copyright (C) 1996-2001, 2006 by The FreeType Project. All rights reserved. FreeType is distributed under both the GNU General Public License, or the FreeType License.
-
Portions of this software are Copyright (C) 1994-2012 Lua.org, PUC-Rio. Lua is distributed under the terms of the MIT License.
-
Luabridge is Copyrighted (C) 2007 by Nathan Reed. Luabridge is distributed under the terms of the MIT License.
-
Soci is Copyright (C) 2004-2008 Maciej Sobczak, Stephen Hutton, and various others noted in the corresponding source files. Soci is distributed under the Boost Software License, Version 1.0.
-
SQLite, placed in the public domain.
-
TagLib is distributed under both the GNU Lesser General Public License, Version 2.1 and the Mozilla Public License.