removed libc dependency

fixed compiling



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2819 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
christian_u
2013-11-01 16:14:55 +00:00
parent 49e3927ada
commit 5d957a8c60
22 changed files with 99 additions and 79 deletions

View File

@ -90,7 +90,7 @@ uses
{$IFDEF MSWINDOWS}
,Windows, MMSystem, akrip32
{$ELSE}
,Libc,cd_rom
,baseunix,cd_rom
{$ENDIF}
;

View File

@ -59,7 +59,7 @@ interface
uses
Classes, SysUtils, ACS_Types, ACS_Classes, ACS_Strings
{$IFDEF LINUX}
, libc, LibAO
,baseunix, LibAO
{$ENDIF};
const

View File

@ -84,7 +84,7 @@ uses
,MMSystem,Windows,Dialogs
,Math
{$ELSE}
,Soundcard, Libc
,Soundcard, baseunix
{$ENDIF}
;

View File

@ -229,6 +229,7 @@ implementation
procedure SmallIntArrayToDouble(InData : PSmallInt; OutData : PDouble; DataSize : Integer);
begin
{$IFDEF CPU32}
asm
MOV EDX, DataSize;
SHL EDX, 3;
@ -244,10 +245,12 @@ implementation
JMP @test;
@out: ;
end;
{$ENDIF}
end;
procedure SmallIntArrayToComplex(InData : PSmallInt; OutData : PACSComplex; DataSize : Integer);
begin
{$IFDEF CPU32}
asm
MOV EDX, DataSize;
SHR EDX, 4;
@ -263,10 +266,12 @@ implementation
JMP @test;
@out: ;
end;
{$ENDIF}
end;
procedure MultDoubleArrays(Op1, Op2 : PDouble; DataSize : Integer);
begin
{$IFDEF CPU32}
asm
MOV EDX, DataSize;
SHL EDX, 3;
@ -284,12 +289,14 @@ implementation
JMP @test;
@out: ;
end;
{$ENDIF}
end;
procedure LgMagnitude(InData : PACSComplex; OutData : PDouble; DataSize, Shift : Integer);
var
LogBase : Double;
begin
{$IFDEF CPU32}
asm
FLD1;
FLDL2T;
@ -331,5 +338,6 @@ implementation
JMP @test;
@out: ;
end;
{$ENDIF}
end;
end.

View File

@ -19,17 +19,17 @@ reworked all buffers
toc : cdrom_tochdr;
frames1, frames2 : Integer;
begin
ioctl(cd_fd, CDROMREADTOCHDR, @toc);
fpioctl(cd_fd, CDROMREADTOCHDR, @toc);
Entry.cdte_format := CDROM_MSF;
Entry.cdte_track := Track+toc.cdth_trk0-1;
ioctl(cd_fd, CDROMREADTOCENTRY, @Entry);
fpioctl(cd_fd, CDROMREADTOCENTRY, @Entry);
frames1 := MSF2Frames(TACSCDMSF(Entry.cdte_addr.msf));
if (Entry.cdte_adr_ctrl and CDROM_DATA_TRACK) <> 0 then
Result.TrackType := ttData
else Result.TrackType := ttAudio;
if Entry.cdte_track < toc.cdth_trk1 then Inc(Entry.cdte_track)
else Entry.cdte_track := CDROM_LEADOUT;
ioctl(cd_fd, CDROMREADTOCENTRY, @Entry);
fpioctl(cd_fd, CDROMREADTOCENTRY, @Entry);
frames2 := MSF2Frames(TACSCDMSF(Entry.cdte_addr.msf));
Frames2MSF(frames2-frames1, Result.TrackLength);
end;
@ -41,8 +41,10 @@ reworked all buffers
var
sci : cdrom_subchnl;
res :Integer;
Data: Integer;
begin
res := ioctl(cd_fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
Data := CDSL_CURRENT;
res := fpioctl(cd_fd, CDROM_DRIVE_STATUS, @Data);
case res of
CDS_TRAY_OPEN, CDS_NO_DISC, CDS_DRIVE_NOT_READY:
begin
@ -53,7 +55,7 @@ reworked all buffers
(* Either the disc is ok or no information
from the driver. Trying CDROMSUBCHNL.*)
sci.cdsc_format := CDROM_MSF;
if ioctl(cd_fd, CDROMSUBCHNL, @sci) < 0 then
if fpioctl(cd_fd, CDROMSUBCHNL, @sci) < 0 then
begin
Result := cdsNotReady;
Exit;
@ -69,14 +71,16 @@ reworked all buffers
function GetCDInfo(cd_fd : Integer) : TACSCDInfo;
var
res : Integer;
Data: Integer;
begin
Result := cdiUnknown;
res := ioctl(cd_fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
Data := CDSL_CURRENT;
res := fpioctl(cd_fd, CDROM_DRIVE_STATUS, @Data);
case res of
CDS_TRAY_OPEN, CDS_NO_DISC: Result := cdiNoDisc;
CDS_DISC_OK :
begin
res := ioctl(cd_fd, CDROM_DISC_STATUS, CDSL_CURRENT);
res := fpioctl(cd_fd, CDROM_DISC_STATUS, @Data);
case res of
CDS_AUDIO : Result := cdiDiscAudio;
CDS_MIXED : Result := cdiDiscMixed;
@ -92,9 +96,9 @@ reworked all buffers
exit;
if FOpened = 0 then
begin
_cd_fd := open(PChar(DrivesPaths[FCurrentDrive]), O_RDONLY or O_NONBLOCK);
_cd_fd := fpopen(PChar(DrivesPaths[FCurrentDrive]), O_RDONLY or O_NONBLOCK);
if _cd_fd < 0 then
raise EACSException.Create(strerror(errno));
raise EACSException.Create(IntToStr(errno));
end;
Inc(FOpened);
end;
@ -102,7 +106,7 @@ reworked all buffers
procedure TACSCDIn.CloseCD;
begin
if FOpened = 1 then __close(_cd_fd);
if FOpened = 1 then fpclose(_cd_fd);
if FOpened > 0 then Dec(FOpened);
end;
@ -120,7 +124,7 @@ reworked all buffers
exit;
if Busy then raise EACSException.Create(strBusy);
if Fopened = 0 then
_cd_fd := open(PChar(DrivesPaths[FCurrentDrive]), O_RDONLY or O_NONBLOCK);
_cd_fd := fpopen(PChar(DrivesPaths[FCurrentDrive]), O_RDONLY or O_NONBLOCK);
if _cd_fd < 0 then
begin
Result := cdsNotReady;
@ -139,7 +143,7 @@ reworked all buffers
OpenCD;
if GetStatus <> cdsNotReady then
begin
ioctl(_cd_fd, CDROMREADTOCHDR, @toc);
fpioctl(_cd_fd, CDROMREADTOCHDR, @toc);
Result := toc.cdth_trk1 - toc.cdth_trk0 + 1;
end else Result := 0;
CloseCD;
@ -151,7 +155,7 @@ reworked all buffers
OpenCD;
if (vIndex in [1..GetNumTracks]) = False then
begin
__close(_cd_fd);
fpclose(_cd_fd);
FOpened := 0;
raise EACSException.Create(strTrackOutofRange);
end;
@ -164,12 +168,12 @@ reworked all buffers
entry : cdrom_tocentry;
hdr : cdrom_tochdr;
begin
ioctl(cd_fd, CDROMREADTOCHDR, @hdr);
fpioctl(cd_fd, CDROMREADTOCHDR, @hdr);
entry.cdte_format := CDROM_MSF;
entry.cdte_track := Track + hdr.cdth_trk0 - 1;
if entry.cdte_track > hdr.cdth_trk1 then
entry.cdte_track := CDROM_LEADOUT;
ioctl(cd_fd, CDROMREADTOCENTRY, @entry);
fpioctl(cd_fd, CDROMREADTOCENTRY, @entry);
Result := TACSCDMSF(entry.cdte_addr.msf);
end;
@ -281,7 +285,7 @@ reworked all buffers
cdaudio.addr_format := CDROM_MSF;
cdaudio.addr.msf := cdrom_msf0(FCurPos);
cdaudio.buf := Pointer(FBuffer);
ioctl(_cd_fd, CDROMREADAUDIO, @cdaudio);
fpioctl(_cd_fd, CDROMREADAUDIO, @cdaudio);
BufEnd := cdaudio.nframes * CD_FRAMESIZE_RAW;
StartFrame := MSF2Frames(FCurPos) + cdaudio.nframes;
Frames2MSF(StartFrame, FCurPos);
@ -295,17 +299,23 @@ reworked all buffers
end;
procedure TACSCDIn.Eject;
var
Data: Integer;
begin
if Busy then raise EACSException.Create(strBusy);
OpenCD;
ioctl(_cd_fd, CDROMEJECT);
Data := 0;
fpioctl(_cd_fd, CDROMEJECT,@Data);
CloseCD;
end;
procedure TACSCDIn.CloseTray;
var
Data: Integer;
begin
OpenCD;
ioctl(_cd_fd, CDROMCLOSETRAY);
Data := 0;
fpioctl(_cd_fd, CDROMCLOSETRAY,@Data);
CloseCD;
end;
@ -315,35 +325,37 @@ reworked all buffers
fname : String;
sci : cdrom_subchnl;
res :Integer;
Data: Integer;
begin
DrivesCount := 0;
Data := CDSL_CURRENT;
for i := 0 to 3 do
begin
fname := '/dev/hd'+chr(ord('a')+i);
_cd_fd := open(PChar(fname), O_RDONLY or O_NONBLOCK);
_cd_fd := fpopen(PChar(fname), O_RDONLY or O_NONBLOCK);
if _cd_fd >= 0 then
begin
res := ioctl(_cd_fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
res := fpioctl(_cd_fd, CDROM_DRIVE_STATUS, @Data);
case res of
CDS_TRAY_OPEN, CDS_NO_DISC, CDS_DRIVE_NOT_READY:
begin
inc(DrivesCount);
setlength(DrivesPaths,DrivesCount);
DrivesPaths[DrivesCount-1] := fname;
__close(_cd_fd);
fpclose(_cd_fd);
continue;
end;
end;
(* Either the disc is ok or no information
from the driver. Trying CDROMSUBCHNL.*)
sci.cdsc_format := CDROM_MSF;
if ioctl(_cd_fd, CDROMSUBCHNL, @sci) >= 0 then
if fpioctl(_cd_fd, CDROMSUBCHNL, @sci) >= 0 then
begin
inc(DrivesCount);
setlength(DrivesPaths,DrivesCount);
DrivesPaths[DrivesCount-1] := fname;
end;
__close(_cd_fd);
fpclose(_cd_fd);
end;
end;
end;

View File

@ -132,9 +132,9 @@ var
FFileName := Mixers[Num].Path;
FMixerName := Mixers[Num].Name;
setlength(FChannels,0);
_mix_fd := open(PChar(FFileName), O_RDONLY);
ioctl(_mix_fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
__close(_mix_fd);
_mix_fd := fpopen(PChar(FFileName), O_RDONLY);
fpioctl(_mix_fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
fpclose(_mix_fd);
for i:=0 to 31 do
begin
if (DevMask and (1 shl i)) <> 0 then
@ -155,9 +155,9 @@ var
rs, pow,i : Integer;
begin
Result := -1;
_mix_fd := open(PChar(FFileName), O_RDONLY);
ioctl(_mix_fd, SOUND_MIXER_READ_RECSRC, @rs);
__close(_mix_fd);
_mix_fd := fpopen(PChar(FFileName), O_RDONLY);
fpioctl(_mix_fd, SOUND_MIXER_READ_RECSRC, @rs);
fpclose(_mix_fd);
pow := 0;
while rs <> 1 do
begin
@ -173,10 +173,10 @@ var
var
vol, chan : Integer;
begin
_mix_fd := open(PChar(FFileName), O_RDONLY);
_mix_fd := fpopen(PChar(FFileName), O_RDONLY);
chan := GetChannelMask(FChannels[vChannel], 2);
ioctl(_mix_fd, chan, @vol);
__close(_mix_fd);
fpioctl(_mix_fd, chan, @vol);
fpclose(_mix_fd);
if vol > 255 then
begin
Result.Left := Lo(vol);
@ -188,10 +188,10 @@ var
var
mask, chan : Integer;
begin
_mix_fd := open(PChar(FFileName), O_RDONLY);
ioctl(_mix_fd, SOUND_MIXER_READ_STEREODEVS, @mask);
_mix_fd := fpopen(PChar(FFileName), O_RDONLY);
fpioctl(_mix_fd, SOUND_MIXER_READ_STEREODEVS, @mask);
chan := GetChannelMask(FChannels[vChannel], 0);
__close(_mix_fd);
fpclose(_mix_fd);
Result := (mask and (1 shl chan))<>0;
end;
@ -199,10 +199,10 @@ var
var
mask, chan : Integer;
begin
_mix_fd := open(PChar(FFileName), O_RDONLY);
ioctl(_mix_fd, SOUND_MIXER_READ_RECMASK, @mask);
_mix_fd := fpopen(PChar(FFileName), O_RDONLY);
fpioctl(_mix_fd, SOUND_MIXER_READ_RECMASK, @mask);
chan := GetChannelMask(FChannels[vChannel], 0);
__close(_mix_fd);
fpclose(_mix_fd);
Result := (mask and (1 shl chan))<>0;
end;
@ -211,9 +211,9 @@ var
chan : Integer;
begin
chan := 1 shl GetChannelMask(FChannels[vChannel], 0);
_mix_fd := open(PChar(FFileName), O_WRONLY);
ioctl(_mix_fd, SOUND_MIXER_WRITE_RECSRC, @chan);
__close(_mix_fd);
_mix_fd := fpopen(PChar(FFileName), O_WRONLY);
fpioctl(_mix_fd, SOUND_MIXER_WRITE_RECSRC, @chan);
fpclose(_mix_fd);
if chan <> (1 shl GetChannelMask(FChannels[vChannel], 0)) then
raise EACSException.Create(Format(strChannelnotRecordable,[vChannel]));
end;
@ -235,9 +235,9 @@ var
if IsStereo(vChannel) then
vol := vLevel.Left + (vLevel.Right shl 8)
else vol := vLevel.Main;
_mix_fd := open(PChar(FFileName), O_WRONLY);
ioctl(_mix_fd, chan, @vol);
__close(_mix_fd);
_mix_fd := fpopen(PChar(FFileName), O_WRONLY);
fpioctl(_mix_fd, chan, @vol);
fpclose(_mix_fd);
end;
destructor TACSMixer.Destroy;
@ -257,37 +257,37 @@ var
begin
fname := '/dev/mixer'+IntToStr(i-1);
try
fd := open(PChar(fname), O_RDONLY);
fd := fpopen(PChar(fname), O_RDONLY);
except
Break;
end;
if fd = -1 then Break;
DevMask := 0;
ioctl(fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
fpioctl(fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
if DevMask <> 0 then
begin
Mixers[Result].Path := fname;
ioctl(fd, SOUND_MIXER_INFO, @mi);
fpioctl(fd, SOUND_MIXER_INFO, @mi);
Mixers[Result].Name := String(mi.name);
Inc(Result);
end;
__close(fd);
fpclose(fd);
end;
fname := '/dev/mixer';
try
fd := open(PChar(fname), O_RDONLY);
fd := fpopen(PChar(fname), O_RDONLY);
except
Exit;
end;
if fd = -1 then Exit;
ioctl(fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
fpioctl(fd, SOUND_MIXER_READ_DEVMASK, @DevMask);
if DevMask <> 0 then
begin
Mixers[Result].Path := fname;
ioctl(fd, SOUND_MIXER_INFO, @mi);
fpioctl(fd, SOUND_MIXER_INFO, @mi);
Mixers[Result].Name := String(mi.name);
end;
__close(fd);
fpclose(fd);
Inc(Result);
end;

View File

@ -40,7 +40,7 @@ unit cd_rom;
interface
uses
Libc;
baseunix,unix;
type
__U8 = Byte;
@ -51,8 +51,8 @@ type
*)
PRequest_sense = ^request_sense;
const
EDRIVE_CANT_DO_THIS = EOPNOTSUPP;
//const
// EDRIVE_CANT_DO_THIS = EOPNOTSUPP;
(*
The CD-ROM IOCTL commands -- these should be supported by }

View File

@ -52,7 +52,7 @@ unit acs_alsaaudio;
interface
uses
Classes, SysUtils, ACS_Types, ACS_Classes, libc, alsa, ACS_Strings,ACS_Audio;
Classes, SysUtils, ACS_Types, ACS_Classes, baseunix, alsa, ACS_Strings,ACS_Audio;
const
BUF_SIZE = $4000;

View File

@ -65,7 +65,7 @@ unit alsa;
interface
uses
Libc,ACS_Procs;
baseunix,ACS_Procs;
const
asoundlib_path = 'libasound.so*';

View File

@ -44,7 +44,7 @@ unit libao;
interface
uses
Libc, ACS_Procs;
baseunix,dl, ACS_Procs;
var
LibaoLoaded : Boolean = False;
@ -95,7 +95,7 @@ type
_type : Integer; // live output or file output?
driver_id : Integer;
funcs : PAOFunctions;
_file : PIOFile; // File for output if this is a file driver
_file : Pointer; // File for output if this is a file driver
client_byte_format : Integer;
machine_byte_format : Integer;
driver_byte_format : Integer;

View File

@ -53,7 +53,7 @@ uses
ACS_File,Classes, SysUtils, ACS_Types, ACS_Classes, FLAC,
{$IFDEF LINUX}
libc;
baseunix;
{$ENDIF}
{$IFDEF WIN32}
@ -301,9 +301,9 @@ type
STREAMINFO block format differs in different
FLAC codec versions, so we are trying to be flexible here.
*)
while LongWord(P^) = 0 do Inc(Integer(P), 4);
Inc(Integer(P), 4);
if LongWord(P^) = 0 then Inc(Integer(P), 4);
while LongWord(P^) = 0 do Inc(P, 4);
Inc(P, 4);
if LongWord(P^) = 0 then Inc(P, 4);
FI := PFLACInfo(P);
FLACIn := TFLACIn(client_data);
FLACIn.FSR := FI.sample_rate;

View File

@ -55,7 +55,7 @@ interface
uses
ACS_File,Classes, SysUtils, ACS_Classes, lame,
{$IFDEF LINUX}
libc;
baseunix;
{$ENDIF}
{$IFDEF WIN32}

View File

@ -65,7 +65,7 @@ interface
uses
ACS_File,Classes, SysUtils, ACS_Classes, ogg, vorbiscodec, VorbisFile, VorbisEnc,ACS_Strings
{$IFDEF LINUX}
,libc;
,baseunix;
{$ENDIF}
{$IFDEF WIN32}

View File

@ -39,7 +39,7 @@ uses
{$ENDIF}
{$IFDEF LINUX}
Libc, ACS_Procs;
baseunix,dl, ACS_Procs;
{$ENDIF}
var

View File

@ -43,7 +43,7 @@ uses
{$ENDIF}
{$IFDEF LINUX}
Libc;
baseunix,dl;
{$ENDIF}
const

View File

@ -43,7 +43,7 @@ uses
{$ENDIF}
{$IFDEF LINUX}
Libc, ACS_Procs;
baseunix,dl, ACS_Procs;
{$ENDIF}

View File

@ -42,7 +42,7 @@ uses
ACS_Procs,
{$IFDEF LINUX}
Libc;
baseunix,dl;
{$ENDIF}
{$IFDEF WIN32}

View File

@ -47,7 +47,7 @@ uses
ACS_Procs,
{$IFDEF LINUX}
Libc,
baseunix,dl,
{$ENDIF}
{$IFDEF WIN32}
Windows,

View File

@ -43,7 +43,7 @@ uses
ACS_Procs,
{$IFDEF LINUX}
Libc,
baseunix,dl,
{$ENDIF}
{$IFDEF WIN32}
Windows,

View File

@ -54,7 +54,7 @@ uses
ACS_Procs,
{$IFDEF LINUX}
Libc,
baseunix,dl,
{$ENDIF}
{$IFDEF WIN32}
Windows,
@ -149,8 +149,8 @@ var
type
{$IFDEF LINUX}
ov_open_t = function(f: PIOFILE;var vf: OGGVORBIS_FILE;initial: PChar;ibytes: LongInt): Integer; cdecl;
ov_test_t = function(f: PIOFILE;var vf: OGGVORBIS_FILE;initial: PChar;ibytes: LongInt): Integer; cdecl;
ov_open_t = function(f: Pointer;var vf: OGGVORBIS_FILE;initial: PChar;ibytes: LongInt): Integer; cdecl;
ov_test_t = function(f: Pointer;var vf: OGGVORBIS_FILE;initial: PChar;ibytes: LongInt): Integer; cdecl;
{$ENDIF}
ov_clear_t = function(var vf: OGGVORBIS_FILE): Integer; cdecl;
ov_open_callbacks_t = function(datasource: Pointer;var vf: OGGVORBIS_FILE;initial: PChar;ibytes: LongInt; callbacks: OV_CALLBACKS): Integer; cdecl;

View File

@ -59,7 +59,7 @@ interface
uses
SysUtils,ACS_Procs,Dialogs
{$ifdef LINUX}
, Libc
, baseunix,dl
{$else}
, Windows
{$endif}

View File

@ -37,7 +37,7 @@ uses
{$ENDIF}
{$IFDEF LINUX}
Libc, ACS_Procs;
baseunix, ACS_Procs;
{$ENDIF}