mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 10:59:25 +02:00
![]() C packages/googleapi U packages/nvapi/Makefile.fpc U packages/httpd13/Makefile.fpc U packages/proj4/Makefile.fpc U packages/odbc/Makefile.fpc U packages/openssl/Makefile.fpc U packages/rtl-unicode/Makefile.fpc U packages/fcl-sdo/Makefile.fpc U packages/libcurl/Makefile.fpc U packages/gtk1/Makefile.fpc U packages/libndsfpc/Makefile.fpc U packages/paszlib/Makefile.fpc U packages/cdrom/Makefile.fpc U packages/chm/Makefile.fpc U packages/fppkg/Makefile.fpc U packages/x11/Makefile.fpc U packages/regexpr/Makefile.fpc U packages/zorba/Makefile.fpc U packages/rtl-objpas/Makefile.fpc U packages/ldap/Makefile.fpc U packages/ncurses/Makefile.fpc U packages/hash/Makefile.fpc U packages/utmp/Makefile.fpc U packages/numlib/Makefile.fpc U packages/ami-extra/Makefile.fpc U packages/fcl-net/Makefile.fpc U packages/libogcfpc/Makefile.fpc U packages/fcl-res/Makefile.fpc U packages/imlib/Makefile.fpc U packages/dbus/Makefile.fpc U packages/imagemagick/Makefile.fpc U packages/graph/Makefile.fpc U packages/iosxlocale/Makefile.fpc U packages/unzip/Makefile.fpc U packages/postgres/Makefile.fpc U packages/fcl-fpcunit/Makefile.fpc U packages/fcl-process/Makefile.fpc U packages/fcl-image/Makefile.fpc U packages/os2units/Makefile.fpc U packages/libxml/Makefile.fpc U packages/fcl-stl/Makefile.fpc C packages/libenet U packages/libpng/Makefile.fpc U packages/gdbm/Makefile.fpc U packages/gtk2/Makefile.fpc U packages/fcl-web/Makefile.fpc U packages/pcap/Makefile.fpc U packages/httpd24/Makefile.fpc U packages/fuse/Makefile.fpc U packages/amunits/Makefile.fpc U packages/bzip2/Makefile.fpc U packages/bfd/Makefile.fpc U packages/libvlc/Makefile.fpc U packages/rtl-extra/Makefile.fpc U packages/rexx/Makefile.fpc U packages/mad/Makefile.fpc U packages/libgd/Makefile.fpc U packages/httpd22/Makefile.fpc U packages/oggvorbis/Makefile.fpc U packages/fcl-async/Makefile.fpc U packages/opengl/Makefile.fpc U packages/pasjpeg/Makefile.fpc U packages/morphunits/Makefile.fpc U packages/fcl-extra/Makefile.fpc U packages/objcrtl/Makefile.fpc U packages/syslog/Makefile.fpc U packages/httpd20/Makefile.fpc U packages/zlib/Makefile.fpc U packages/dblib/Makefile.fpc U packages/ibase/Makefile.fpc U packages/winunits-base/Makefile.fpc U packages/mysql/Makefile.fpc U packages/matroska/Makefile.fpc U packages/Makefile.fpc U packages/winunits-jedi/Makefile.fpc U packages/fpindexer/Makefile.fpc U packages/univint/Makefile.fpc U packages/libc/Makefile.fpc U packages/symbolic/Makefile.fpc U packages/gnome1/Makefile.fpc U packages/sqlite/Makefile.fpc U packages/jni/Makefile.fpc U packages/sdl/Makefile.fpc U packages/winceunits/Makefile.fpc U packages/libtar/Makefile.fpc U packages/opengles/Makefile.fpc U packages/fcl-base/Makefile.fpc U packages/fcl-xml/Makefile.fpc U packages/aspell/Makefile.fpc U packages/a52/Makefile.fpc U packages/fftw/Makefile.fpc U packages/fcl-json/Makefile.fpc U packages/ptc/Makefile.fpc U packages/rtl-console/Makefile.fpc U packages/ggi/Makefile.fpc U packages/fv/Makefile.fpc U packages/opencl/Makefile.fpc U packages/fastcgi/Makefile.fpc U packages/gmp/Makefile.fpc U packages/uuid/Makefile.fpc U packages/pthreads/Makefile.fpc U packages/unixutil/Makefile.fpc U packages/fcl-passrc/Makefile.fpc U packages/iconvenc/Makefile.fpc U packages/fcl-registry/Makefile.fpc U packages/newt/Makefile.fpc U packages/sndfile/Makefile.fpc U packages/openal/Makefile.fpc U packages/pastojs/Makefile.fpc U packages/oracle/Makefile.fpc U packages/libgbafpc/Makefile.fpc U packages/pxlib/Makefile.fpc U packages/dts/Makefile.fpc U packages/libsee/Makefile.fpc U packages/librsvg/Makefile.fpc U packages/palmunits/Makefile.fpc U packages/hermes/Makefile.fpc U packages/xforms/Makefile.fpc U packages/tcl/Makefile.fpc U packages/cocoaint/Makefile.fpc U packages/modplug/Makefile.fpc U packages/fcl-js/Makefile.fpc U packages/arosunits/Makefile.fpc U packages/users/Makefile.fpc U packages/gdbint/Makefile.fpc U packages/fpgtk/Makefile.fpc U packages/lua/Makefile.fpc U packages/fcl-db/Makefile.fpc U packages/cairo/Makefile.fpc U packages/fcl-sound/Makefile.fpc U packages/svgalib/Makefile.fpc U utils/fpcmkcfg/Makefile.fpc U utils/fpcm/Makefile.fpc U utils/tply/Makefile.fpc U utils/fppkg/Makefile.fpc U utils/h2pas/Makefile.fpc U utils/fpcreslipo/Makefile.fpc U ide/Makefile.fpc U utils/fpcres/Makefile.fpc U utils/Makefile.fpc U utils/fpmc/Makefile.fpc U utils/rmwait/Makefile.fpc U utils/importtl/Makefile.fpc U utils/pas2js/Makefile.fpc U utils/dxegen/Makefile.fpc U utils/debugsvr/Makefile.fpc U utils/fpcm/Makefile.fpmake.bs.template U utils/fpdoc/Makefile.fpc U utils/fprcp/Makefile.fpc U utils/unicode/Makefile.fpc U utils/pas2fpm/Makefile.fpc U utils/fpcm/Makefile.fpmake.template U utils/mksymbian/Makefile.fpc U utils/instantfpc/Makefile.fpc U utils/pas2ut/Makefile.fpc U utils/pas2jni/Makefile.fpc --- Recording mergeinfo for merge of r31317 into '.': U . Summary of conflicts: Tree conflicts: 2 Resolved conflicted state of 'packages/googleapi' Resolved conflicted state of 'packages/libenet' Summary of conflicts: Tree conflicts: 0 remaining (and 2 already resolved) # revisions: 31317 git-svn-id: branches/fixes_3_0@31969 - |
||
---|---|---|
.. | ||
examples | ||
src | ||
fpmake.pp | ||
Makefile | ||
Makefile.fpc | ||
Makefile.fpc.fpcmake | ||
README.txt |
This directory contains some CD-ROM support routines for Free Pascal. The routines are demonstrated by the 'getdiscid' and 'showcds' programs. The latter shows the available CD-rom drives on the system, the former calculates a disc-id and query for use with a freecddb server. Unit cdrom ---------- The unit 'cdrom' implements a cross-platform interface for handling CD-roms. Currently, it is implemented for Linux and Windows only. The other units are support units, needed by various implementations. The unit presents 2 calls: Type TTocEntry = Record min, sec, frame : Integer end; PTocEntry = ^TTocEntry; Function GetCDRomDevices(Var Devices : Array of string) : Integer; Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer; The GetCDRomDevices call retrieves a list of available CD-ROM devices/drives on the system. The algorithm used to detect these devices depends on the system. The function returns the number of devices found, or a negative number on error. The 'Devices' array is filled with strings that describe the devices. For unix like systems, these are the device files (/dev/hdc etc), for windows, these can be drive letters (D: etc) or ASPI Adaptor, Target, lun IDs triples, for example ASPI[1;0;0]. (an algorithm mapping these to drive letters would be appreciated) The ReadCDTOC call retrieves the table of contents of a CD in the CD-rom drive (Device) This returns the number of tracks on the CD-ROM. On return, The CDTOC array will be filled with the length of the tracks, and the frame number, manipulated to be usable in a disc ID calculation. There will be one extra entry at the end of the array, describing the lead-out. unit discid ----------- The DISCID unit calculates a DISC-ID as needed by a freecddb server to query for the contents of a disc. Function CDDBDiscID(Const CDTOC : Array of TTocEntry; Count : Integer) : integer ; The count is the number of tracks, the array should contain Count+1 elements, the last one being the lead out. The output of the ReadCDToc function can be used as input for this function. Function GetCDDBQueryString(Const Tracks : Array of TTocEntry; Count : Integer) : String; This function returns a query string as expected by a freecddb server. It consists of the disc id, number of tracks, and the frame fields of the TCDToc records in the tracks array. unit lincd ---------- Essentially translation of the linux/cdrom.h include file, plus 2 functions Function IsCDDevice(Device : String) : Boolean; Returns True if the device file is a cdrom. Function DetectCd : String; Detects the first cd in the system; it does this by checking a number of well-known common device files; the first once for which IsCDDevice returns True is returned. Note that this can take some time. unit major ---------- Definitions of the major device numbers under linux. used by the lincd unit. unit wincd ---------- Some CD-routines. Essentially the low-level counterpart of the cd-rom unit. The unit tries to use the windows ASPI layer to detect cd-roms. If the layer is not present, the common IOCTL or SPTI interfaces are used. TCDAccessMethod = (camNone,camASPI,camSPTI,camIOCTL); Determines which access method is used. Records used in the low-level calls: TTOCTrack = packed record rsvd, ADR, trackNumber, rsvd2 : Byte; addr : Array[0..3] of byte; end; TTOC = packed Record toclen : word; firsttrack, lastTrack : byte; toctrack: Array[0..99] of TTocTrack; end; Const AccessMethodNames : Array[TCDAccessMethod] of string = ('None','ASPI','SPTI','IOCTL'); Function GetCDAccessMethod : TCDAccessMethod; Returns the current CD-rom detection method. Procedure SetCDAccessMethod (Value : TCDAccessMethod); Sets the current CD-rom detection method. Function ReadTOC(Device : String; Var TOC : TTOc) : Integer; Reads the CD-Rom devices. Device is a drive letter, or if ASPI is used a string of the form [Aid,TgID,LunID] (Adapter ID, Target ID, LUN id) Function EnumCDDrives(Var Drives : Array of String) : Integer; Returns the CD-ROM drive letters of the system, or strings describing ASPI drives. Function GetNumDrives : Integer; Returns the number of drives. NOTE: A function mapping an ASPI triple to a drive letter would be appreciated. unit Wnaspi32: -------------- Low-level ASPI unit. Contains all structures, plus the following: TSendASPI32Command = function( LPSRB : Pointer ) : DWORD; cdecl; TGetASPI32SupportInfo = function : DWORD; cdecl; SendASPI32Command : TSendASPI32Command = nil; GetASPI32SupportInfo : TGetASPI32SupportInfo = nil; These procedural variables map to the actual API calls. They are only valid and usable if ASPILoaded returns TRUE. Function ASPILoaded : Boolean; Returns TRUE if ASPI is available and loaded. Procedure CheckASPI; Checks whether ASPI is available. After calling this it is possible to use the ASPIAvailable function. This procedure is called in the initialization section of the unit. procedure UnloadASPI; Unloads the ASPI library if it was loaded. This procedure is called in the finalization section of the unit. scsidefs.pp ----------- Bare translation of the scsidefs.h windows SDK header. cdromioctl.pp ------------- This unit contains some records and constants defined in window's cdromioctl.h Michael.