diff options
-rw-r--r-- | Game/Code/Classes/UPlatformLinux.pas | 182 | ||||
-rw-r--r-- | Game/Code/Classes/USongs.pas | 2 | ||||
-rw-r--r-- | Game/Code/Classes/Ulazjpeg.pas | 31 |
3 files changed, 148 insertions, 67 deletions
diff --git a/Game/Code/Classes/UPlatformLinux.pas b/Game/Code/Classes/UPlatformLinux.pas index 741662cd..8119346e 100644 --- a/Game/Code/Classes/UPlatformLinux.pas +++ b/Game/Code/Classes/UPlatformLinux.pas @@ -1,66 +1,116 @@ -unit UPlatformLinux;
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-uses Classes, UPlatform;
-
-type
-
- TPlatformLinux = class(TPlatform)
- public
- Function DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray; override;
- end;
-
-implementation
-
-uses SysUtils, oldlinux;
-
-Function TPlatformLinux.DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray;
-var
- i : Integer;
- TheDir : oldlinux.pdir;
- ADirent : oldlinux.pDirent;
- Entry : Longint;
- info : oldlinux.stat;
- lAttrib : integer;
-begin
- i := 0;
- Filter := LowerCase(Filter);
-
- TheDir := oldlinux.opendir( Dir );
- if Assigned(TheDir) then
- repeat
- ADirent := oldlinux.ReadDir(TheDir);
-
- If Assigned(ADirent) and (ADirent^.name <> '.') and (ADirent^.name <> '..') then
- begin
- lAttrib := FileGetAttr(Dir + ADirent^.name);
- if ReturnAllSubDirs and ((lAttrib and faDirectory) <> 0) then
- begin
- SetLength( Result, i + 1);
- Result[i].Name := ADirent^.name;
- Result[i].IsDirectory := true;
- Result[i].IsFile := false;
- i := i + 1;
- end
- else if (Length(Filter) = 0) or (Pos( Filter, LowerCase(ADirent^.name)) > 0) then
- begin
- SetLength( Result, i + 1);
- Result[i].Name := ADirent^.name;
- Result[i].IsDirectory := false;
- Result[i].IsFile := true;
- i := i + 1;
- end;
- end;
- Until ADirent = nil;
-
- oldlinux.CloseDir(TheDir);
-end;
-
-end.
+unit UPlatformLinux; + +interface + +{$IFDEF FPC} + {$MODE Delphi} +{$ENDIF} + +{$I switches.inc} + +uses Classes, UPlatform; + +type + + TPlatformLinux = class(TPlatform) + public + Function DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray; override; + end; + +implementation + +uses +{$IFNDEF FPC_V220} + oldlinux, +{$ELSE} + BaseUnix, +{$ENDIF} + SysUtils; + +{$IFDEF FPC_V220} +Function TPlatformLinux.DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray; +var + i : Integer; + TheDir : pDir; + ADirent : pDirent; + Entry : Longint; + //info : oldlinux.stat; + lAttrib : integer; +begin + i := 0; + Filter := LowerCase(Filter); + + TheDir := FpOpenDir( Dir ); + if Assigned(TheDir) then + repeat + ADirent := FpReadDir(TheDir^); + + If Assigned(ADirent) and (ADirent^.d_name <> '.') and (ADirent^.d_name <> '..') then + begin + lAttrib := FileGetAttr(Dir + ADirent^.d_name); + if ReturnAllSubDirs and ((lAttrib and faDirectory) <> 0) then + begin + SetLength( Result, i + 1); + Result[i].Name := ADirent^.d_name; + Result[i].IsDirectory := true; + Result[i].IsFile := false; + i := i + 1; + end + else if (Length(Filter) = 0) or (Pos( Filter, LowerCase(ADirent^.d_name)) > 0) then + begin + SetLength( Result, i + 1); + Result[i].Name := ADirent^.d_name; + Result[i].IsDirectory := false; + Result[i].IsFile := true; + i := i + 1; + end; + end; + Until ADirent = nil; + + FpCloseDir(TheDir^); +end; +{$ELSE} +Function TPlatformLinux.DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray; +var + i : Integer; + TheDir : oldlinux.pdir; + ADirent : oldlinux.pDirent; + Entry : Longint; + info : oldlinux.stat; + lAttrib : integer; +begin + i := 0; + Filter := LowerCase(Filter); + + TheDir := oldlinux.opendir( Dir ); + if Assigned(TheDir) then + repeat + ADirent := oldlinux.ReadDir(TheDir); + + If Assigned(ADirent) and (ADirent^.name <> '.') and (ADirent^.name <> '..') then + begin + lAttrib := FileGetAttr(Dir + ADirent^.name); + if ReturnAllSubDirs and ((lAttrib and faDirectory) <> 0) then + begin + SetLength( Result, i + 1); + Result[i].Name := ADirent^.name; + Result[i].IsDirectory := true; + Result[i].IsFile := false; + i := i + 1; + end + else if (Length(Filter) = 0) or (Pos( Filter, LowerCase(ADirent^.name)) > 0) then + begin + SetLength( Result, i + 1); + Result[i].Name := ADirent^.name; + Result[i].IsDirectory := false; + Result[i].IsFile := true; + i := i + 1; + end; + end; + Until ADirent = nil; + + oldlinux.CloseDir(TheDir); +end; +{$ENDIF} + +end. diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas index 0ffa2a8d..3ac32dda 100644 --- a/Game/Code/Classes/USongs.pas +++ b/Game/Code/Classes/USongs.pas @@ -22,7 +22,7 @@ uses {$endif} {$ELSE} {$IFNDEF DARWIN} - oldlinux, +// oldlinux, syscall, {$ENDIF} baseunix, diff --git a/Game/Code/Classes/Ulazjpeg.pas b/Game/Code/Classes/Ulazjpeg.pas index 1f6d8b99..d63ce753 100644 --- a/Game/Code/Classes/Ulazjpeg.pas +++ b/Game/Code/Classes/Ulazjpeg.pas @@ -17,6 +17,7 @@ unit Ulazjpeg;
{$mode objfpc}{$H+}
+{$I switches.inc}
interface
@@ -33,9 +34,17 @@ type FProgressiveEncoding: boolean;
FQuality: TJPEGQualityRange;
protected
+{$IFDEF LAZARUS_V0924}
+ procedure InitFPImageReader(IntfImg: TLazIntfImage; ImgReader: TFPCustomImageReader); override;
+{$ELSE}
procedure InitFPImageReader(ImgReader: TFPCustomImageReader); override;
+{$ENDIF}
procedure FinalizeFPImageReader(ImgReader: TFPCustomImageReader); override;
+{$IFDEF LAZARUS_V0924}
+ procedure InitFPImageWriter(IntfImg: TLazIntfImage; ImgWriter: TFPCustomImageWriter); override;
+{$ELSE}
procedure InitFPImageWriter(ImgWriter: TFPCustomImageWriter); override;
+{$ENDIF}
public
constructor Create; override;
class function GetFileExtensions: string; override;
@@ -56,15 +65,26 @@ implementation { TJPEGImage }
+{$IFDEF LAZARUS_V0924}
+procedure TJPEGImage.InitFPImageReader(IntfImg: TLazIntfImage; ImgReader: TFPCustomImageReader);
+{$ELSE}
procedure TJPEGImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
+{$ENDIF}
var
JPEGReader: TFPReaderJPEG;
begin
if ImgReader is TFPReaderJPEG then begin
JPEGReader:=TFPReaderJPEG(ImgReader);
JPEGReader.Performance:=Performance;
+{$IFDEF LAZARUS_V0924}
+ JPEGReader.OnProgress:=@Progress;
+{$ENDIF}
end;
+{$IFDEF LAZARUS_V0924}
+ inherited InitFPImageReader(IntfImg, ImgReader);
+{$ELSE}
inherited InitFPImageReader(ImgReader);
+{$ENDIF}
end;
procedure TJPEGImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
@@ -78,7 +98,11 @@ begin inherited FinalizeFPImageReader(ImgReader);
end;
+{$IFDEF LAZARUS_V0924}
+procedure TJPEGImage.InitFPImageWriter(IntfImg: TLazIntfImage; ImgWriter: TFPCustomImageWriter);
+{$ELSE}
procedure TJPEGImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
+{$ENDIF}
var
JPEGWriter: TFPWriterJPEG;
begin
@@ -87,8 +111,15 @@ begin if JPEGWriter<>nil then ;
JPEGWriter.ProgressiveEncoding:=ProgressiveEncoding;
JPEGWriter.CompressionQuality:=CompressionQuality;
+{$IFDEF LAZARUS_V0924}
+ JPEGWriter.OnProgress:=@Progress;
+{$ENDIF}
end;
+{$IFDEF LAZARUS_V0924}
+ inherited InitFPImageWriter(IntfImg, ImgWriter);
+{$ELSE}
inherited InitFPImageWriter(ImgWriter);
+{$ENDIF}
end;
class function TJPEGImage.GetDefaultFPReader: TFPCustomImageReaderClass;
|