aboutsummaryrefslogtreecommitdiffstats
path: root/src/base/UCommandLine.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/UCommandLine.pas')
-rw-r--r--src/base/UCommandLine.pas345
1 files changed, 0 insertions, 345 deletions
diff --git a/src/base/UCommandLine.pas b/src/base/UCommandLine.pas
deleted file mode 100644
index ac0db2c2..00000000
--- a/src/base/UCommandLine.pas
+++ /dev/null
@@ -1,345 +0,0 @@
-{* 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 UCommandLine;
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-uses
- UPath;
-
-type
- TScreenMode = (scmDefault, scmFullscreen, scmWindowed);
-
- {**
- * Reads infos from ParamStr and set some easy interface variables
- *}
- TCMDParams = class
- private
- fLanguage: string;
- fResolution: string;
-
- procedure ShowHelp();
-
- procedure ReadParamInfo;
- procedure ResetVariables;
-
- function GetLanguage: integer;
- function GetResolution: integer;
- public
- // some boolean variables set when reading infos
- Debug: boolean;
- Benchmark: boolean;
- NoLog: boolean;
- ScreenMode: TScreenMode;
- Joypad: boolean;
-
- // some value variables set when reading infos {-1: Not Set, others: Value}
- Depth: integer;
- Screens: integer;
-
- // some strings set when reading infos {Length=0: Not Set}
- SongPath: IPath;
- ConfigFile: IPath;
- ScoreFile: IPath;
-
- // pseudo integer values
- property Language: integer read GetLanguage;
- property Resolution: integer read GetResolution;
-
- // some procedures for reading infos
- constructor Create;
- end;
-
-var
- Params: TCMDParams;
-
-const
- cHelp = 'help';
- cDebug = 'debug';
- cMediaInterfaces = 'showinterfaces';
-
-
-implementation
-
-uses SysUtils,
- UPlatform;
-
-{**
- * Resets variables and reads info
- *}
-constructor TCMDParams.Create;
-begin
- inherited;
-
- if FindCmdLineSwitch( cHelp ) or FindCmdLineSwitch( 'h' ) then
- ShowHelp();
-
- ResetVariables;
- ReadParamInfo;
-end;
-
-procedure TCMDParams.ShowHelp();
-
- function Fmt(aString : string) : string;
- begin
- Result := Format('%-15s', [aString]);
- end;
-
-begin
- writeln;
- writeln('**************************************************************');
- writeln(' UltraStar Deluxe - Command line switches ');
- writeln('**************************************************************');
- writeln;
- writeln(' '+ Fmt('Switch') +' : Purpose');
- writeln(' ----------------------------------------------------------');
- writeln(' '+ Fmt(cMediaInterfaces) +' : Show in-use media interfaces');
- writeln(' '+ Fmt(cDebug) +' : Display Debugging info');
- writeln;
-
- platform.halt;
-end;
-
-{**
- * Reset Class Variables
- *}
-procedure TCMDParams.ResetVariables;
-begin
- Debug := False;
- Benchmark := False;
- NoLog := False;
- ScreenMode := scmDefault;
- Joypad := False;
-
- // some value variables set when reading infos {-1: Not Set, others: Value}
- fResolution := '';
- fLanguage := '';
- Depth := -1;
- Screens := -1;
-
- // some strings set when reading infos {Length=0 Not Set}
- SongPath := PATH_NONE;
- ConfigFile := PATH_NONE;
- ScoreFile := PATH_NONE;
-end;
-
-{**
- * Read command-line parameters
- *}
-procedure TCMDParams.ReadParamInfo;
-var
- I: integer;
- PCount: integer;
- Command: string;
-begin
- PCount := ParamCount;
- //Log.LogError('ParamCount: ' + Inttostr(PCount));
-
- // check all parameters
- for I := 1 to PCount do
- begin
- Command := ParamStr(I);
- // check if the string is a parameter
- if (Length(Command) > 1) and (Command[1] = '-') then
- begin
- // remove '-' from command
- Command := LowerCase(Trim(Copy(Command, 2, Length(Command) - 1)));
- //Log.LogError('Command prepared: ' + Command);
-
- // check command
-
- // boolean triggers
- if (Command = 'debug') then
- Debug := True
- else if (Command = 'benchmark') then
- Benchmark := True
- else if (Command = 'nolog') then
- NoLog := True
- else if (Command = 'fullscreen') then
- ScreenMode := scmFullscreen
- else if (Command = 'window') then
- ScreenMode := scmWindowed
- else if (Command = 'joypad') then
- Joypad := True
-
- // integer variables
- else if (Command = 'depth') then
- begin
- // check if there is another Parameter to get the Value from
- if (PCount > I) then
- begin
- Command := ParamStr(I + 1);
-
- // check for valid value
- // FIXME: guessing an array-index of depth is very error prone.
- If (Command = '16') then
- Depth := 0
- Else If (Command = '32') then
- Depth := 1;
- end;
- end
-
- else if (Command = 'screens') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- Command := ParamStr(I + 1);
-
- // check for valid value
- If (Command = '1') then
- Screens := 0
- Else If (Command = '2') then
- Screens := 1;
- end;
- end
-
- // pseudo integer values
- else if (Command = 'language') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- // write value to string
- fLanguage := Lowercase(ParamStr(I + 1));
- end;
- end
-
- else if (Command = 'resolution') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- // write value to string
- fResolution := Lowercase(ParamStr(I + 1));
- end;
- end
-
- // string values
- else if (Command = 'songpath') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- // write value to string
- SongPath := Path(ParamStr(I + 1));
- end;
- end
-
- else if (Command = 'configfile') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- // write value to string
- ConfigFile := Path(ParamStr(I + 1));
-
- // is this a relative path -> then add gamepath
- if (not ConfigFile.IsAbsolute) then
- ConfigFile := Platform.GetExecutionDir().Append(ConfigFile);
- end;
- end
-
- else if (Command = 'scorefile') then
- begin
- // check if there is another parameter to get the value from
- if (PCount > I) then
- begin
- // write value to string
- ScoreFile := Path(ParamStr(I + 1));
- end;
- end;
-
- end;
-
- end;
-
-{
- Log.LogInfo('Screens: ' + Inttostr(Screens));
- Log.LogInfo('Depth: ' + Inttostr(Depth));
-
- Log.LogInfo('Resolution: ' + Inttostr(Resolution));
- Log.LogInfo('Resolution: ' + Inttostr(Language));
-
- Log.LogInfo('sResolution: ' + sResolution);
- Log.LogInfo('sLanguage: ' + sLanguage);
-
- Log.LogInfo('ConfigFile: ' + ConfigFile);
- Log.LogInfo('SongPath: ' + SongPath);
- Log.LogInfo('ScoreFile: ' + ScoreFile);
-}
-
-end;
-
-//-------------
-// GetLanguage - Get Language ID from saved String Information
-//-------------
-function TCMDParams.GetLanguage: integer;
-{var
- I: integer;
-}
-begin
- Result := -1;
-{* JB - 12sep07 to remove uINI dependency
-
- //Search for Language
- For I := 0 to high(ILanguage) do
- if (LowerCase(ILanguage[I]) = sLanguage) then
- begin
- Result := I;
- Break;
- end;
-*}
-end;
-
-//-------------
-// GetResolution - Get Resolution ID from saved String Information
-//-------------
-function TCMDParams.GetResolution: integer;
-{var
- I: integer;
-}
-begin
- Result := -1;
-{* JB - 12sep07 to remove uINI dependency
-
- //Search for Resolution
- For I := 0 to high(IResolution) do
- if (LowerCase(IResolution[I]) = sResolution) then
- begin
- Result := I;
- Break;
- end;
-*}
-end;
-
-end.