-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A convenient layer over TagLib's C bindings
--
-- An FFI layer to TagLib's C bindings for reading and writing metadata
-- for audio files. Currently supports ID3v1 and ID3v2 for MP3 files, Ogg
-- Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex,
-- WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.
@package taglib-api
@version 0.1.0.0
module Audio.TagLib
-- | Abstract Tag object.
data Tag
data AudioProperties
newtype TagLib a
TagLib :: ReaderT TLEnv IO a -> TagLib a
runTagLib :: TagLib a -> ReaderT TLEnv IO a
-- | Environment type for TagLib.
data TLEnv
TLEnv :: Ptr Tag -> Ptr AudioProperties -> TLEnv
tagPtr :: TLEnv -> Ptr Tag
apPtr :: TLEnv -> Ptr AudioProperties
-- | Process a computation requiring a Ptr Tag and Ptr
-- AudioProperties using a given file, producing one result for each
-- FilePath given.
withFiles :: [FilePath] -> TagLib a -> IO (Maybe [a])
-- | Process a computation for exactly one file, as per withFiles.
withFile :: FilePath -> TagLib a -> IO (Maybe a)
getTitle :: TagLib Text
setTitle :: Text -> TagLib ()
getArtist :: TagLib Text
setArtist :: Text -> TagLib ()
getAlbum :: TagLib Text
setAlbum :: Text -> TagLib ()
getComment :: TagLib Text
setComment :: Text -> TagLib ()
getGenre :: TagLib Text
setGenre :: Text -> TagLib ()
getYear :: TagLib Int
setYear :: Int -> TagLib ()
getTrack :: TagLib Int
setTrack :: Int -> TagLib ()
-- | Retrieves the duration of the given file, in seconds.
getLength :: TagLib Int
-- | Retrieves the bitrate of the given file, in kb/s.
getBitrate :: TagLib Int
-- | Retrieves the sample rate of the given file, in Hz.
getSampleRate :: TagLib Int
-- | Retrieves the number of channels in the given file.
getChannels :: TagLib Int
-- | lift an IO action into TagLib.
io :: IO a -> TagLib a
instance Applicative TagLib
instance Monad TagLib
instance Functor TagLib