-- 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