Copyright | (c) 2018-2021 Sam May |
---|---|
License | GPL-3.0-or-later |
Maintainer | ag@eitilt.life |
Stability | stable |
Portability | non-portable (requires libcdio) |
Safe Haskell | None |
Language | Haskell2010 |
Modules in this tree are designed so users familiar with working with the
original libcdio should be able to write essentially the same code they're
used to, in the IO
monad. There have, however, been some changes made (beyond
mapping the types to ones more native to Haskell), mostly to take advantage of
the type safety. These have then been adapted further into the modules under
Sound.Libcdio, which aim to provide much of the same functionality but in a
form the library might have taken if it had been originally written for
Haskell.
As this interface does mirror the structure of the C library, each header file is translated into a separate module, as follows. Any changes from those original headers which might not be easily guessed are noted in the documentation for each module, along with similar equivalencies to the higher-level interface.
cdio.h
-> Foreign.Libcdiocd_types.h
-> Foreign.Libcdio.CdTypes (not reexported bycdio.h
, or this module)cdtext.h
-> Foreign.Libcdio.CdTextdevice.h
-> Foreign.Libcdio.Devicedisc.h
-> Foreign.Libcdio.Disclogging.h
-> Foreign.Libcdio.Logging (not reexported bycdio.h
, or this module)memory.h
(removed; the only exported symbolcdio_free
is encapsulated into the Haskell garbage collection)read.h
-> Foreign.Libcdio.Readsector.h
-> Foreign.Libcdio.Sectortrack.h
-> Foreign.Libcdio.Tracktypes.h
-> Foreign.Libcdio.Types- The original header was an interesting collection of some (but not all) types used by the library. The module is both more universal by exporting all types in the interface, and less required as each relevant type is exported by the various modules themselves.
util.h
-> Foreign.Libcdio.Util (not reexported bycdio.h
, or this module)version.h
-> Foreign.Libcdio.Version
cdio.h
Defines
CDIO_API_VERSION
->apiVersion
(primarily exported from Foreign.Libcdio.Version)
Types
CdIo_t
->Cdio
(primarily exported from Foreign.Libcdio.Device)
Documentation
module Foreign.Libcdio.CdText
module Foreign.Libcdio.Device
module Foreign.Libcdio.Disc
module Foreign.Libcdio.Read
module Foreign.Libcdio.Sector
module Foreign.Libcdio.Track
module Foreign.Libcdio.Version