diff --git a/Builds/VisualStudio2012/Beast.props b/Builds/VisualStudio2012/Beast.props
new file mode 100644
index 00000000..ce63ed75
--- /dev/null
+++ b/Builds/VisualStudio2012/Beast.props
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ Level4
+
+
+
+
\ No newline at end of file
diff --git a/Builds/VisualStudio2012/BeastConfig.h b/Builds/VisualStudio2012/BeastConfig.h
index fa848555..42cf4e65 100644
--- a/Builds/VisualStudio2012/BeastConfig.h
+++ b/Builds/VisualStudio2012/BeastConfig.h
@@ -17,31 +17,87 @@
*/
//==============================================================================
-#ifndef BEAST_BEASTCONFIG_HEADER
-#define BEAST_BEASTCONFIG_HEADER
+#ifndef BEAST_BEASTCONFIG_H_INCLUDED
+#define BEAST_BEASTCONFIG_H_INCLUDED
-// beast_core flags:
+//------------------------------------------------------------------------------
-#ifndef BEAST_FORCE_DEBUG
- //#define BEAST_FORCE_DEBUG
+/** Config: BEAST_FORCE_DEBUG
+
+ Normally, BEAST_DEBUG is set to 1 or 0 based on compiler and project
+ settings, but if you define this value, you can override this to force it
+ to be true or false.
+*/
+#ifndef BEAST_FORCE_DEBUG
+//#define BEAST_FORCE_DEBUG 0
#endif
-#ifndef BEAST_LOG_ASSERTIONS
- //#define BEAST_LOG_ASSERTIONS 1
+//------------------------------------------------------------------------------
+
+/** Config: BEAST_LOG_ASSERTIONS
+
+ If this flag is enabled, the the bassert and bassertfalse macros will always
+ use Logger::writeToLog() to write a message when an assertion happens.
+
+ Enabling it will also leave this turned on in release builds. When it's
+ disabled, however, the bassert and bassertfalse macros will not be compiled
+ in a release build.
+
+ @see bassert, bassertfalse, Logger
+*/
+#ifndef BEAST_LOG_ASSERTIONS
+//#define BEAST_LOG_ASSERTIONS 0
#endif
-#ifndef BEAST_CHECK_MEMORY_LEAKS
- //#define BEAST_CHECK_MEMORY_LEAKS
+//------------------------------------------------------------------------------
+
+/** Config: BEAST_CHECK_MEMORY_LEAKS
+
+ Enables a memory-leak check for certain objects when the app terminates.
+ See the LeakedObjectDetector and LeakChecked classes, and the
+ BEAST_LEAK_DETECTOR macro for more details about enabling leak checking for
+ specific classes.
+*/
+#ifndef BEAST_CHECK_MEMORY_LEAKS
+//#define BEAST_CHECK_MEMORY_LEAKS 1
#endif
-#ifndef BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES
- //#define BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES
+//------------------------------------------------------------------------------
+
+/** Config: BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES
+
+ In a Visual C++ build, this can be used to stop the required system libs
+ being automatically added to the link stage.
+*/
+#ifndef BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES
+//#define BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES 1
#endif
+//------------------------------------------------------------------------------
+
+/** Config: BEAST_INCLUDE_ZLIB_CODE
+
+ This can be used to disable Beast's embedded 3rd-party zlib code.
+ You might need to tweak this if you're linking to an external zlib library in your app,
+ but for normal apps, this option should be left alone.
+
+ If you disable this, you might also want to set a value for BEAST_ZLIB_INCLUDE_PATH, to
+ specify the path where your zlib headers live.
+*/
+#ifndef BEAST_INCLUDE_ZLIB_CODE
+//#define BEAST_INCLUDE_ZLIB_CODE 0
+#endif
+
+#ifndef BEAST_ZLIB_INCLUDE_PATH
+#define BEAST_ZLIB_INCLUDE_PATH
+#endif
+
+//------------------------------------------------------------------------------
+
// beast_basics flags
-#ifndef BEAST_USE_BOOST
-#define BEAST_USE_BOOST 0
+#ifndef BEAST_BOOST_IS_AVAILABLE
+#define BEAST_BOOST_IS_AVAILABLE 0
#endif
// Choose one to override default for platform
@@ -50,7 +106,7 @@
//#define BEAST_BIND_USES_BOOST 1
#ifndef BEAST_USE_LEAKCHECKED
-#define BEAST_USE_LEAKCHECKED BEAST_CHECK_MEMORY_LEAKS
+#define BEAST_USE_LEAKCHECKED 1
#endif
#endif
diff --git a/Builds/VisualStudio2012/beast.vcxproj b/Builds/VisualStudio2012/beast.vcxproj
index 5872be29..195335e4 100644
--- a/Builds/VisualStudio2012/beast.vcxproj
+++ b/Builds/VisualStudio2012/beast.vcxproj
@@ -5,10 +5,18 @@
DebugWin32
+
+ Debug
+ x64
+ ReleaseWin32
+
+ Release
+ x64
+
@@ -18,68 +26,59 @@
true
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -91,7 +90,6 @@
-
@@ -102,14 +100,25 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -117,6 +126,7 @@
+
@@ -126,15 +136,22 @@
+
+
+
+
+
+
+
@@ -184,6 +201,7 @@
+
@@ -216,452 +234,658 @@
true
+ truetrue
-
-
- true
- true
-
-
- true
- true
-
-
- true
- true
-
-
- true
- true
+ truetrue
+ truetrue
-
-
- true
- true
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
-
-
- true
- true
+ truetrue
+ truetrue
-
-
- true
- true
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ true
+
+
+ true
+ true
+ true
+ true
+
+
+ true
+ true
+ true
+ true
+
+
+ true
+ true
+ true
+ true
+
+
+ true
+ true
+ true
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ truetrue
+ true
@@ -676,6 +900,12 @@
v110Unicode
+
+ StaticLibrary
+ true
+ v110
+ Unicode
+ StaticLibraryfalse
@@ -683,14 +913,31 @@
trueUnicode
+
+ StaticLibrary
+ false
+ v110
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
@@ -698,7 +945,19 @@
- Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ $(ProjectDir)
+
+
+ Windows
+ true
+
+
+
+
+
+ DisabledWIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)$(ProjectDir)
@@ -710,7 +969,23 @@
- Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ $(ProjectDir)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+ MaxSpeed
diff --git a/Builds/VisualStudio2012/beast.vcxproj.filters b/Builds/VisualStudio2012/beast.vcxproj.filters
index 5a57fbb7..99d27f26 100644
--- a/Builds/VisualStudio2012/beast.vcxproj.filters
+++ b/Builds/VisualStudio2012/beast.vcxproj.filters
@@ -95,9 +95,6 @@
{e3a8f3eb-7f0f-4b81-b978-0dd0823f583b}
-
- {3e9389c0-c8f0-4657-ab11-cbbea889d3be}
- {ba11b980-76dd-49a4-b2c7-878e9f08f8ce}
@@ -119,6 +116,12 @@
{f58dddf7-fe43-49a2-8e57-91feba586119}
+
+ {b70d6403-2d7a-4377-81ff-390830ab0276}
+
+
+ {69e28551-92ea-420b-a465-75ed248e3b59}
+
@@ -473,51 +476,12 @@
beast_basics
-
- beast_basics\containers
-
-
- beast_basics\containers
-
-
- beast_basics\containers
-
-
- beast_basics\containers
-
-
- beast_basics\containers
- beast_basics\diagnostic
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
- beast_basics\events
-
- beast_basics\events
-
-
- beast_basics\functor
- beast_basics\functor
@@ -533,21 +497,6 @@
beast_basics\memory
-
- beast_basics\memory
-
-
- beast_basics\memory
-
-
- beast_basics\memory
-
-
- beast_basics\memory
-
-
- beast_basics\memory
- beast_basics\memory
@@ -563,21 +512,12 @@
beast_basics\memory
-
- beast_basics\memory
- beast_basics\memorybeast_basics\memory
-
- beast_basics\memory
-
-
- beast_basics\memory
- beast_basics\threads
@@ -611,15 +551,72 @@
beast_basics\threads
-
- beast_basics\threads
- beast_basics\threadsbeast_basics\threads
+
+ beast_core\containers
+
+
+ beast_core\functional
+
+
+ beast_core\memory
+
+
+ beast_core\memory
+
+
+ beast_core\memory
+
+
+ beast_core\memory
+
+
+ beast_core\memory
+
+
+ beast_core\memory
+
+
+ beast_core\containers
+
+
+ beast_core\containers
+
+
+ beast_core\threads
+
+
+ beast_core\memory
+
+
+ beast_core\containers
+
+
+ beast_core\containers
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
@@ -877,24 +874,9 @@
beast_basics\diagnostic
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
-
-
- beast_basics\diagnostic
- beast_basics\events
-
- beast_basics\events
- beast_basics\math
@@ -913,15 +895,9 @@
beast_basics\native
-
- beast_basics\native
- beast_basics\native
-
- beast_basics\native
- beast_basics\threads
@@ -964,5 +940,17 @@
beast_core\native
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
+
+ beast_core\diagnostic
+
\ No newline at end of file
diff --git a/modules/beast_basics/beast_basics.cpp b/modules/beast_basics/beast_basics.cpp
index f366a436..ef990ae6 100644
--- a/modules/beast_basics/beast_basics.cpp
+++ b/modules/beast_basics/beast_basics.cpp
@@ -41,27 +41,17 @@ namespace beast
{
#include "diagnostic/beast_CatchAny.cpp"
-#include "diagnostic/beast_Debug.cpp"
-#include "diagnostic/beast_Error.cpp"
-#include "diagnostic/beast_FPUFlags.cpp"
-#include "diagnostic/beast_LeakChecked.cpp"
#include "events/beast_OncePerSecond.cpp"
-#include "events/beast_PerformedAtExit.cpp"
#include "math/beast_MurmurHash.cpp"
#include "threads/beast_InterruptibleThread.cpp"
#include "threads/beast_Semaphore.cpp"
-
-#if BEAST_USE_BOOST
#include "memory/beast_FifoFreeStoreWithTLS.cpp"
-#else
#include "memory/beast_FifoFreeStoreWithoutTLS.cpp"
-#endif
#include "memory/beast_GlobalPagedFreeStore.cpp"
#include "memory/beast_PagedFreeStore.cpp"
-
#include "threads/beast_CallQueue.cpp"
#include "threads/beast_ConcurrentObject.cpp"
#include "threads/beast_Listeners.cpp"
@@ -74,11 +64,9 @@ namespace beast
#if BEAST_WINDOWS
#include "native/beast_win32_FPUFlags.cpp"
-#include "native/beast_win32_Threads.cpp"
#else
#include "native/beast_posix_FPUFlags.cpp"
-#include "native/beast_posix_Threads.cpp"
#endif
}
@@ -86,21 +74,3 @@ namespace beast
#if BEAST_MSVC
#pragma warning (pop)
#endif
-
-//------------------------------------------------------------------------------
-
-#if BEAST_USE_BOOST
-namespace boost {
-namespace placeholders {
-boost::arg<1> _1;
-boost::arg<2> _2;
-boost::arg<3> _3;
-boost::arg<4> _4;
-boost::arg<5> _5;
-boost::arg<6> _6;
-boost::arg<7> _7;
-boost::arg<8> _8;
-boost::arg<9> _9;
-}
-}
-#endif
diff --git a/modules/beast_basics/beast_basics.h b/modules/beast_basics/beast_basics.h
index ec08e90d..5ab2fb0b 100644
--- a/modules/beast_basics/beast_basics.h
+++ b/modules/beast_basics/beast_basics.h
@@ -23,330 +23,214 @@
@ingroup beast_basics
*/
-#ifndef BEAST_BASICS_BEASTHEADER
-#define BEAST_BASICS_BEASTHEADER
+#ifndef BEAST_BASICS_H_INCLUDED
+#define BEAST_BASICS_H_INCLUDED
-//==============================================================================
+//------------------------------------------------------------------------------
+
+/* If you fail to make sure that all your compile units are building Beast with
+ the same set of option flags, then there's a risk that different compile
+ units will treat the classes as having different memory layouts, leading to
+ very nasty memory corruption errors when they all get linked together.
+ That's why it's best to always include the BeastConfig.h file before any
+ beast headers.
+*/
+#ifndef BEAST_BEASTCONFIG_H_INCLUDED
+# ifdef _MSC_VER
+# pragma message ("Have you included your BeastConfig.h file before including the Beast headers?")
+# else
+# warning "Have you included your BeastConfig.h file before including the Beast headers?"
+# endif
+#endif
+
+//------------------------------------------------------------------------------
/**
- @mainpage Beast: A multipurpose library using parts of JUCE.
- ### Version 1.1
+@mainpage Beast: A C++ library for server development.
- Copyright (C) 2008 by Vinnie Falco \ ([e-mail][0])
+### Version 1.0
- Beast is a source code collection of individual modules containing
- functionality for a variety of applications, with an emphasis on building
- concurrent systems. Beast requires [JUCE][3] (Jules' Utility Class
- Extensions), available from [Raw Material Software][4]. JUCE is available
- under both the [GNU General Public License][5] and a [commercial license][6].
- Other than JUCE, Beast has no external dependencies.
+Copyright 2008, 2013 by Vinnie Falco \ ([e-mail][0])
- Beast is hosted on Github at [https://github.com/vinniefalco/Beast][1]
+Beast is a source code collection of individual modules containing
+functionality for a variety of applications, with an emphasis on building
+concurrent systems. Beast incorporates parts of [JUCE][3] (Jules' Utility
+Class Extensions), available from [Raw Material Software][4]. Beast has no
+external dependencies
- The online documentation is at [http://vinniefalco.github.com/Beast][2]
+Beast is hosted on Github at [https://github.com/vinniefalco/Beast][1]
- ## Platforms
+The online documentation is at [http://vinniefalco.github.com/Beast][2]
- All platforms supported by JUCE are also supported by Beast. Currently these
- platforms include:
+## Platforms
- - **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.
+All platforms supported by JUCE are also supported by Beast. Currently these
+platforms include:
- - **Mac OS X**: Applications and VST/AudioUnit/RTAS/NPAPI plugins with Xcode.
+- **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.
- - **GNU/Linux**: Applications and plugins can be built for any kernel 2.6 or
- later.
+- **Mac OS X**: Applications and VST/AudioUnit/RTAS/NPAPI plugins with Xcode.
- - **iOS**: Native iPhone and iPad apps.
+- **GNU/Linux**: Applications and plugins can be built for any kernel 2.6 or
+later.
- - **Android**: Supported.
+- **FreeBSD**: Kernel version 8.4 or higher required.
- ## Prerequisites
+- **iOS**: Native iPhone and iPad apps.
- 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.
+- **Android**: Supported.
- ## External Modules
+## Prerequisites
- Some modules bring in functionality provided by external libraries. For
- example, the @ref beast_bzip2 module provides the compression and decompression
- algorithms in [bZip2][7]. 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.
+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.
- External code incorporated into Beast is covered by separate licenses. See
- the licensing information and notes in the corresponding source files for
- copyright information and terms of use.
+## External Modules
- ## Integration
+Some modules bring in functionality provided by external libraries. For
+example, the @ref beast_bzip2 module provides the compression and decompression
+algorithms in [bZip2][7]. 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.
- Beast 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.
+External code incorporated into Beast is covered by separate licenses. See
+the licensing information and notes in the corresponding source files for
+copyright information and terms of use.
- 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 Beast directory. Then,
- add the single corresponding .c or .cpp file to your existing project which
- already uses JUCE. For example, to use the @ref beast_core module, add the file
- beast_core.cpp to your project. Some modules depend on other modules.
+## Integration
- To use a module, include the appropriate header from within your source code.
- For example, to access classes in the @ref beast_concurrent module, use this:
+Beast 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.
- @code
+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 Beast directory. Then,
+add the single corresponding .c or .cpp file to your existing project which
+already uses JUCE. For example, to use the @ref beast_core module, add the file
+beast_core.cpp to your project. Some modules depend on other modules.
- #include "modules/beast_concurrent/beast_concurrent.h"
+To use a module, include the appropriate header from within your source code.
+For example, to access classes in the @ref beast_concurrent module, use this:
- @endcode
+@code
- Then add the corresponding file beast_concurrent.cpp to your build.
+#include "modules/beast_concurrent/beast_concurrent.h"
- ## AppConfig
+@endcode
- Some Beast 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).
+Then add the corresponding file beast_concurrent.cpp to your build.
- ## License
+## AppConfig
- This library contains portions of other open source products covered by
- separate licenses. Please see the corresponding source files for specific
- terms.
+Some Beast 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).
- Beast is provided under the terms of The MIT License (MIT):
+## License
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
+This library contains portions of other open source products covered by
+separate licenses. Please see the corresponding source files for specific
+terms.
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
+Beast is provided under the terms of The ISC License:
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- IN THE SOFTWARE.
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
- Some files contain portions of these external projects, licensed separately:
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- - [bZip2][7] is Copyright (C) 1996-2010 Julian R Seward. All rights
+Some files contain portions of these external projects, licensed separately:
+
+- [bZip2][7] 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][8]. All rights reserved. [FreeType][8] is distributed
- under both the [GNU General Public License][5], or the
- [FreeType License][9].
-
- - Portions of this software are Copyright (C) 1994-2012 [Lua.org][10], PUC-Rio.
- Lua is distributed under the terms of the [MIT License][11].
-
- - [Luabridge][12] is Copyright (C) 2012 by Vinnie Falco and Copyrighted (C)
- 2007 by Nathan Reed. [Luabridge][12] is distributed under the terms of the
- [MIT License][11].
-
- - [Soci][13] is Copyright (C) 2004-2008 Maciej Sobczak, Stephen Hutton, and
+- [Soci][13] 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][14].
- - [SQLite][15], placed in the public domain.
+- [SQLite][15], placed in the public domain.
- - [TagLib][16] is distributed under both the [GNU Lesser General Public License,
- Version 2.1][17] and the [Mozilla Public License][18].
+[0]: mailto:vinnie.falco@gmail.com "Vinnie Falco (Email)"
+[1]: https://github.com/vinniefalco/Beast "Beast Project"
+[2]: http://vinniefalco.github.com/Beast/ "Beast Documentation"
+[3]: http://rawmaterialsoftware.com/juce.php "JUCE"
+[4]: http://rawmaterialsoftware.com/ "Raw Material Software"
+[5]: http://www.gnu.org/licenses/gpl-2.0.html "GNU General Public License, version 2"
+[6]: http://rawmaterialsoftware.com/jucelicense.php "JUCE Licenses"
+[7]: http://www.bzip.org/ "bZip2: Home"
+[8]: http://freetype.org/ "The FreeType Project"
+[9]: http://www.freetype.org/FTL.TXT "The FreeType Project License"
+[10]: http://www.lua.org/ "The Programming Language Lua"
+[11]: http://opensource.org/licenses/ISC "The ISC License"
+[12]: https://github.com/vinniefalco/LuaBridge
+[13]: http://soci.sourceforge.net/ "SOCI"
+[14]: http://www.boost.org/LICENSE_1_0.txt "Boost Software License, Version 1.0"
+[15]: http://sqlite.org/ "SQLite Home Page"
+[16]: http://developer.kde.org/~wheeler/taglib.html "TagLib"
+[17]: http://www.gnu.org/licenses/lgpl-2.1.html "Gnu Lesser General Public License, version 2.1"
+[18]: http://www.mozilla.org/MPL/1.1/ "Mozilla Public License"
- [0]: mailto:vinnie.falco@gmail.com "Vinnie Falco (Email)"
- [1]: https://github.com/vinniefalco/Beast "Beast Project"
- [2]: http://vinniefalco.github.com/Beast/ "Beast Documentation"
- [3]: http://rawmaterialsoftware.com/juce.php "JUCE"
- [4]: http://rawmaterialsoftware.com/ "Raw Material Software"
- [5]: http://www.gnu.org/licenses/gpl-2.0.html "GNU General Public License, version 2"
- [6]: http://rawmaterialsoftware.com/jucelicense.php "JUCE Licenses"
- [7]: http://www.bzip.org/ "bZip2: Home"
- [8]: http://freetype.org/ "The FreeType Project"
- [9]: http://www.freetype.org/FTL.TXT "The FreeType Project License"
- [10]: http://www.lua.org/ "The Programming Language Lua"
- [11]: http://www.opensource.org/licenses/mit-license.html "The MIT License"
- [12]: https://github.com/vinniefalco/LuaBridge
- [13]: http://soci.sourceforge.net/ "SOCI"
- [14]: http://www.boost.org/LICENSE_1_0.txt "Boost Software License, Version 1.0"
- [15]: http://sqlite.org/ "SQLite Home Page"
- [16]: http://developer.kde.org/~wheeler/taglib.html "TagLib"
- [17]: http://www.gnu.org/licenses/lgpl-2.1.html "Gnu Lesser General Public License, version 2.1"
- [18]: http://www.mozilla.org/MPL/1.1/ "Mozilla Public License"
-
- @copyright Copyright (C) 2008 by Vinnie Falco \ ([e-mail][0])
- @copyright Provided under the [MIT License][11]
+@copyright Copyright 2008-2013 by Vinnie Falco \ ([e-mail][0])
+@copyright Provided under the [ISC LIcense][11]
*/
-/*============================================================================*/
-/**
- @internal
+//------------------------------------------------------------------------------
- Implementation classes.
+/** Implementation classes.
- Thase classes are used internally.
+ Thase classes are used internally.
- @defgroup internal internal
+ @defgroup internal internal
+ @internal
*/
-/*============================================================================*/
-/**
- External modules.
+//------------------------------------------------------------------------------
- These modules bring in functionality from third party or system libraries.
+/** External modules.
- @defgroup external external
+ These modules bring in functionality from third party or system libraries.
+
+ @defgroup external external
*/
-/*============================================================================*/
-/**
- Core classes.
+//------------------------------------------------------------------------------
- This module provides core required functionality, and classes useful for
- general development. All other modules require this module.
+/** Core classes.
- @todo Discuss the treatment of exceptions versus Error objects in the library.
+ This module provides core required functionality, and classes useful for
+ general development. All other modules require this module.
- @todo Discuss the additions to BeastConfig.h
+ @todo Discuss the treatment of exceptions versus Error objects in the
+ library.
- @defgroup beast_core beast_core
+ @todo Discuss the additions to BeastConfig.h
+
+ @defgroup beast_core beast_core
*/
-/* See the JUCE notes regarding BeastConfig.h
-
- This file must always be included before any Juce headers.
-
- There are some Beast specific build options that may be placed
- into this file. See the AppConfig.h provided with Beast.
-*/
-
-/* BeastConfig.h must be included before this file */
-
-/* Use sensible default configurations if they forgot
- to append the necessary macros into their BeastConfig.h.
-*/
-#ifndef BEAST_USE_BOOST
-#define BEAST_USE_BOOST 0
-#endif
-
-#ifndef BEAST_USE_LEAKCHECKED
-#define BEAST_USE_LEAKCHECKED BEAST_CHECK_MEMORY_LEAKS
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include