From 7a01b05b3861a667eb32ce2e0fc88ff3bacb99ae Mon Sep 17 00:00:00 2001
From: mogguh <mogguh@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Tue, 2 Sep 2008 17:25:26 +0000
Subject: Moved: The folder classes has been renamed to base Updated:
 ultrastardx.dpr has been changed accordingly

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1339 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 199 insertions(+)
 create mode 100644 src/base/UConfig.pas

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
new file mode 100644
index 00000000..b77c2a5a
--- /dev/null
+++ b/src/base/UConfig.pas
@@ -0,0 +1,199 @@
+unit UConfig;
+
+// -------------------------------------------------------------------
+// Note on version comparison (for developers only):
+// -------------------------------------------------------------------
+// Delphi (in contrast to FPC) DOESN'T support MACROS. So we
+// can't define a macro like VERSION_MAJOR(version) to extract
+// parts of the version-number or to create version numbers for
+// comparison purposes as with a MAKE_VERSION(maj, min, rev) macro.
+// So we have to define constants for every part of the version here.
+//
+// In addition FPC (in contrast to delphi) DOES NOT support floating-
+// point numbers in $IF compiler-directives (e.g. {$IF VERSION > 1.23})
+// It also DOESN'T support arithmetic operations so we aren't able to
+// compare versions this way (brackets aren't supported too):
+//   {$IF VERSION > ((VER_MAJ*2)+(VER_MIN*23)+(VER_REL*1))}
+//
+// Hence we have to use fixed numbers in the directives. At least
+// Pascal allows leading 0s so 0005 equals 5 (octals are
+// preceded by & and not by 0 in FPC).
+// We also fix the count of digits for each part of the version number
+// to 3 (aaaiiirrr with aaa=major, iii=minor, rrr=release version)
+//
+// A check for a library with at least a version of 2.5.11 would look
+// like this:
+//   {$IF LIB_VERSION >= 002005011}
+//
+// If you just need to check the major version do this:
+//   {$IF LIB_VERSION_MAJOR >= 23}
+//
+// IMPORTANT:
+//   Because this unit must be included in a uses-section it is
+//   not possible to use the version-numbers in this uses-clause.
+//   Example:
+//     interface
+//     uses 
+//       versions, // include this file
+//       {$IF USE_UNIT_XYZ}xyz;{$IFEND}      // Error: USE_UNIT_XYZ not defined
+//     const
+//       {$IF USE_UNIT_XYZ}test = 2;{$IFEND} // OK
+//     uses
+//       {$IF USE_UNIT_XYZ}xyz;{$IFEND}      // OK
+//
+//   Even if this file was an include-file no constants could be declared
+//   before the interface's uses clause.
+//   In FPC macros {$DEFINE VER:= 3} could be used to declare the version-numbers 
+//   but this is incompatible to Delphi. In addition macros do not allow expand
+//   arithmetic expressions. Although you can define 
+//     {$DEFINE FPC_VER:= FPC_VERSION*1000000+FPC_RELEASE*1000+FPC_PATCH}
+//   the following check would fail:
+//     {$IF FPC_VERSION_INT >= 002002000}
+//   would fail because FPC_VERSION_INT is interpreted as a string. 
+//
+// PLEASE consider this if you use version numbers in $IF compiler-
+// directives. Otherwise you might break portability.
+// -------------------------------------------------------------------
+
+interface
+
+{$IFDEF FPC}
+  {$MODE Delphi}
+  {$MACRO ON} // for evaluation of FPC_VERSION/RELEASE/PATCH
+{$ENDIF}
+
+{$I switches.inc}
+   
+uses
+  Sysutils;
+
+const
+  // IMPORTANT:
+  // If IncludeConstants is defined, the const-sections
+  // of the config-file will be included too.
+  // This switch is necessary because it is not possible to
+  // include the const-sections in the switches.inc.
+  // switches.inc is always included before the first uses-
+  // section but at that place no const-section is allowed.
+  // So we have to include the config-file in switches.inc
+  // with IncludeConstants undefined and in UConfig.pas with
+  // IncludeConstants defined (see the note above).
+  {$DEFINE IncludeConstants}
+
+  // include config-file (defines + constants)
+  {$IF Defined(MSWindows)}
+    {$I ../config-win.inc}
+  {$ELSEIF Defined(Linux)}
+    {$I ../config-linux.inc}
+  {$ELSEIF Defined(Darwin)}
+    {$I ../config-darwin.inc}
+  {$ELSE}
+    {$MESSAGE Fatal 'Unknown OS'}
+  {$IFEND}
+
+{* Libraries *}
+
+  VERSION_MAJOR   = 1000000;
+  VERSION_MINOR   = 1000;
+  VERSION_RELEASE = 1;
+
+  (*
+   * Current version of UltraStar Deluxe
+   *)
+  USDX_VERSION_MAJOR   = 1;
+  USDX_VERSION_MINOR   = 1;
+  USDX_VERSION_RELEASE = 0;
+  USDX_VERSION_STATE   = 'Alpha';
+  USDX_STRING = 'UltraStar Deluxe';
+
+  (*
+   * FPC version numbers are already defined as built-in macros:
+   *   FPC_VERSION (MAJOR)
+   *   FPC_RELEASE (MINOR)
+   *   FPC_PATCH   (RELEASE)
+   * Since FPC_VERSION is already defined, we will use FPC_VERSION_INT as
+   * composed version number.
+   *)
+  {$IFNDEF FPC}
+  // Delphi 7 evaluates every $IF-directive even if it is disabled by a surrounding
+  // $IF or $IFDEF so the follwing will give you an error in delphi:
+  //   {$IFDEF FPC}{$IF (FPC_VERSION > 2)}...{$IFEND}{$ENDIF}
+  // The reason for this error is that FPC_VERSION is not a valid constant.
+  // To avoid this error, we define dummys here.
+  FPC_VERSION = 0;
+  FPC_RELEASE = 0;
+  FPC_PATCH   = 0;
+  {$ENDIF}
+  
+  FPC_VERSION_INT = (FPC_VERSION * VERSION_MAJOR) +
+                    (FPC_RELEASE * VERSION_MINOR) +
+                    (FPC_PATCH * VERSION_RELEASE);
+
+
+  {$IFDEF HaveFFmpeg}
+
+  LIBAVCODEC_VERSION = (LIBAVCODEC_VERSION_MAJOR * VERSION_MAJOR) +
+                       (LIBAVCODEC_VERSION_MINOR * VERSION_MINOR) +
+                       (LIBAVCODEC_VERSION_RELEASE * VERSION_RELEASE);
+
+  LIBAVFORMAT_VERSION = (LIBAVFORMAT_VERSION_MAJOR * VERSION_MAJOR) +
+                        (LIBAVFORMAT_VERSION_MINOR * VERSION_MINOR) +
+                        (LIBAVFORMAT_VERSION_RELEASE * VERSION_RELEASE);
+
+  LIBAVUTIL_VERSION = (LIBAVUTIL_VERSION_MAJOR * VERSION_MAJOR) +
+                      (LIBAVUTIL_VERSION_MINOR * VERSION_MINOR) +
+                      (LIBAVUTIL_VERSION_RELEASE * VERSION_RELEASE);
+
+  {$IFDEF HaveSWScale}
+  LIBSWSCALE_VERSION = (LIBSWSCALE_VERSION_MAJOR * VERSION_MAJOR) +
+                       (LIBSWSCALE_VERSION_MINOR * VERSION_MINOR) +
+                       (LIBSWSCALE_VERSION_RELEASE * VERSION_RELEASE);
+  {$ENDIF}
+
+  {$ENDIF}
+
+  {$IFDEF HaveProjectM}  
+  PROJECTM_VERSION = (PROJECTM_VERSION_MAJOR * VERSION_MAJOR) +
+                     (PROJECTM_VERSION_MINOR * VERSION_MINOR) +
+                     (PROJECTM_VERSION_RELEASE * VERSION_RELEASE);
+  {$ENDIF}
+
+  {$IFDEF HavePortaudio}  
+  PORTAUDIO_VERSION = (PORTAUDIO_VERSION_MAJOR * VERSION_MAJOR) +
+                      (PORTAUDIO_VERSION_MINOR * VERSION_MINOR) +
+                      (PORTAUDIO_VERSION_RELEASE * VERSION_RELEASE);
+  {$ENDIF}
+
+  {$IFDEF HaveLibsamplerate}
+  LIBSAMPLERATE_VERSION = (LIBSAMPLERATE_VERSION_MAJOR * VERSION_MAJOR) +
+                          (LIBSAMPLERATE_VERSION_MINOR * VERSION_MINOR) +
+                          (LIBSAMPLERATE_VERSION_RELEASE * VERSION_RELEASE);
+  {$ENDIF}
+
+function USDXVersionStr(): string;
+function USDXShortVersionStr(): string;
+
+implementation
+
+uses
+  StrUtils, Math;
+
+function USDXShortVersionStr(): string;
+begin
+  Result :=
+    USDX_STRING +
+    IfThen(USDX_VERSION_STATE <> '', ' '+USDX_VERSION_STATE);
+end;
+
+function USDXVersionStr(): string;
+begin
+  Result :=
+    USDX_STRING + ' V ' +
+    IntToStr(USDX_VERSION_MAJOR) + '.' +
+    IntToStr(USDX_VERSION_MINOR) + '.' +
+    IntToStr(USDX_VERSION_RELEASE) +
+    IfThen(USDX_VERSION_STATE <> '', ' '+USDX_VERSION_STATE) +
+    ' Build';
+end;
+
+end.
-- 
cgit v1.2.3


From 8dc13b99b51555be6fa16d271ddb02d995b46d96 Mon Sep 17 00:00:00 2001
From: tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Wed, 10 Sep 2008 06:24:16 +0000
Subject: FreeBSD compatibility fixes: - {$IF Defined(Linux)} -> {$IF
 Defined(Linux) or Defined(BSD)} or {$IF Defined(UNIX)} - config-freebsd.inc
 added

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1357 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index b77c2a5a..9ee0a668 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -85,6 +85,8 @@ const
     {$I ../config-win.inc}
   {$ELSEIF Defined(Linux)}
     {$I ../config-linux.inc}
+  {$ELSEIF Defined(FreeBSD)}
+    {$I ../config-freebsd.inc}
   {$ELSEIF Defined(Darwin)}
     {$I ../config-darwin.inc}
   {$ELSE}
-- 
cgit v1.2.3


From dbf39d5bfc56c24a67d481187c619dc84828221f Mon Sep 17 00:00:00 2001
From: k-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Tue, 23 Sep 2008 21:17:22 +0000
Subject: gpl header added and property svn:header set to "HeadURL Id"

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1403 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index 9ee0a668..cb663e2d 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -1,3 +1,28 @@
+{* UltraStar Deluxe - Karaoke Game
+ *
+ * UltraStar Deluxe is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * 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.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *}
+
 unit UConfig;
 
 // -------------------------------------------------------------------
-- 
cgit v1.2.3


From 43b940c4d2b6c2109c2523286cc2bb14d85684db Mon Sep 17 00:00:00 2001
From: k-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Fri, 22 May 2009 19:27:14 +0000
Subject: change folder separator to \ for windows and config-win.inc

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1767 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index cb663e2d..1214f36f 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -107,7 +107,7 @@ const
 
   // include config-file (defines + constants)
   {$IF Defined(MSWindows)}
-    {$I ../config-win.inc}
+    {$I ..\config-win.inc}
   {$ELSEIF Defined(Linux)}
     {$I ../config-linux.inc}
   {$ELSEIF Defined(FreeBSD)}
-- 
cgit v1.2.3


From 917901e8e33438c425aef50a0a7417f32d77b760 Mon Sep 17 00:00:00 2001
From: s_alexander <s_alexander@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Mon, 9 Nov 2009 00:27:55 +0000
Subject: merged unicode branch (r1931) into trunk

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1939 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index 1214f36f..f6dc69a5 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -90,7 +90,7 @@ interface
 {$I switches.inc}
    
 uses
-  Sysutils;
+  SysUtils;
 
 const
   // IMPORTANT:
@@ -156,6 +156,12 @@ const
                     (FPC_RELEASE * VERSION_MINOR) +
                     (FPC_PATCH * VERSION_RELEASE);
 
+  // FPC 2.2.0 unicode support is very buggy. The cwstring unit for example
+  // always crashes whenever UTF8ToAnsi() is called on a non UTF8 encoded string
+  // what is fixed in 2.2.2.
+  {$IF Defined(FPC) and (FPC_VERSION_INT < 2002002)} // < 2.2.2
+    {$MESSAGE FATAL 'FPC >= 2.2.2 required!'}
+  {$IFEND}
 
   {$IFDEF HaveFFmpeg}
 
-- 
cgit v1.2.3


From 4711217f127aa0c10fa52755fd567c570277a1a1 Mon Sep 17 00:00:00 2001
From: s_alexander <s_alexander@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Tue, 12 Jan 2010 17:42:41 +0000
Subject: merged lua into trunk

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2071 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index f6dc69a5..a24242e8 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -58,7 +58,7 @@ unit UConfig;
 //   not possible to use the version-numbers in this uses-clause.
 //   Example:
 //     interface
-//     uses 
+//     uses
 //       versions, // include this file
 //       {$IF USE_UNIT_XYZ}xyz;{$IFEND}      // Error: USE_UNIT_XYZ not defined
 //     const
@@ -68,13 +68,13 @@ unit UConfig;
 //
 //   Even if this file was an include-file no constants could be declared
 //   before the interface's uses clause.
-//   In FPC macros {$DEFINE VER:= 3} could be used to declare the version-numbers 
+//   In FPC macros {$DEFINE VER:= 3} could be used to declare the version-numbers
 //   but this is incompatible to Delphi. In addition macros do not allow expand
-//   arithmetic expressions. Although you can define 
+//   arithmetic expressions. Although you can define
 //     {$DEFINE FPC_VER:= FPC_VERSION*1000000+FPC_RELEASE*1000+FPC_PATCH}
 //   the following check would fail:
 //     {$IF FPC_VERSION_INT >= 002002000}
-//   would fail because FPC_VERSION_INT is interpreted as a string. 
+//   would fail because FPC_VERSION_INT is interpreted as a string.
 //
 // PLEASE consider this if you use version numbers in $IF compiler-
 // directives. Otherwise you might break portability.
@@ -88,7 +88,7 @@ interface
 {$ENDIF}
 
 {$I switches.inc}
-   
+
 uses
   SysUtils;
 
@@ -151,7 +151,7 @@ const
   FPC_RELEASE = 0;
   FPC_PATCH   = 0;
   {$ENDIF}
-  
+
   FPC_VERSION_INT = (FPC_VERSION * VERSION_MAJOR) +
                     (FPC_RELEASE * VERSION_MINOR) +
                     (FPC_PATCH * VERSION_RELEASE);
@@ -185,13 +185,13 @@ const
 
   {$ENDIF}
 
-  {$IFDEF HaveProjectM}  
+  {$IFDEF HaveProjectM}
   PROJECTM_VERSION = (PROJECTM_VERSION_MAJOR * VERSION_MAJOR) +
                      (PROJECTM_VERSION_MINOR * VERSION_MINOR) +
                      (PROJECTM_VERSION_RELEASE * VERSION_RELEASE);
   {$ENDIF}
 
-  {$IFDEF HavePortaudio}  
+  {$IFDEF HavePortaudio}
   PORTAUDIO_VERSION = (PORTAUDIO_VERSION_MAJOR * VERSION_MAJOR) +
                       (PORTAUDIO_VERSION_MINOR * VERSION_MINOR) +
                       (PORTAUDIO_VERSION_RELEASE * VERSION_RELEASE);
@@ -229,4 +229,4 @@ begin
     ' Build';
 end;
 
-end.
+end.
\ No newline at end of file
-- 
cgit v1.2.3


From 01060a707820907091de02348cabe193ae1ae3dd Mon Sep 17 00:00:00 2001
From: tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Fri, 30 Apr 2010 20:38:19 +0000
Subject: - configure recreated with autogen.sh - cleanup

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2323 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index a24242e8..ef08827b 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -130,7 +130,7 @@ const
   USDX_VERSION_MAJOR   = 1;
   USDX_VERSION_MINOR   = 1;
   USDX_VERSION_RELEASE = 0;
-  USDX_VERSION_STATE   = 'Alpha';
+  USDX_VERSION_STATE   = 'Beta';
   USDX_STRING = 'UltraStar Deluxe';
 
   (*
-- 
cgit v1.2.3


From f0f0d4b3f9c1e343edf6dfddc04cf25d3b52b496 Mon Sep 17 00:00:00 2001
From: tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Tue, 8 Jun 2010 18:27:37 +0000
Subject: string update

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2456 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index ef08827b..74415f4d 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -130,7 +130,7 @@ const
   USDX_VERSION_MAJOR   = 1;
   USDX_VERSION_MINOR   = 1;
   USDX_VERSION_RELEASE = 0;
-  USDX_VERSION_STATE   = 'Beta';
+  USDX_VERSION_STATE   = 'RC';
   USDX_STRING = 'UltraStar Deluxe';
 
   (*
-- 
cgit v1.2.3


From 5e13354bb1fcee732a92c89d6d0ac9888f43daeb Mon Sep 17 00:00:00 2001
From: tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Sun, 10 Oct 2010 18:55:31 +0000
Subject: strings adjusted (removed 'RC'-parts)

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2656 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/base/UConfig.pas | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/base/UConfig.pas')

diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas
index 74415f4d..e48b5493 100644
--- a/src/base/UConfig.pas
+++ b/src/base/UConfig.pas
@@ -130,7 +130,7 @@ const
   USDX_VERSION_MAJOR   = 1;
   USDX_VERSION_MINOR   = 1;
   USDX_VERSION_RELEASE = 0;
-  USDX_VERSION_STATE   = 'RC';
+  USDX_VERSION_STATE   = '';
   USDX_STRING = 'UltraStar Deluxe';
 
   (*
@@ -229,4 +229,4 @@ begin
     ' Build';
 end;
 
-end.
\ No newline at end of file
+end.
-- 
cgit v1.2.3