packages feed

simple-media-timestamp-formatting-0.1.1.0: src/Media/Timestamp/Formatting.hs

{-# LANGUAGE OverloadedStrings #-}

-- |
--   Module    : Media.Timestamp.Formatting
--   License   : MIT
--   Stability : experimental
--
-- Formatting for `Media.Timestamp`.
module Media.Timestamp.Formatting
  ( timef,
    timecf,
    rangeaf,
  )
where

import Formatting
import Media.Timestamp

-- | Formats a `Time` as `hh:mm:ss.mmm`. This is ffmpeg's format.
--
-- @since 0.1.0.0
timef :: Format r (Time -> r)
timef = accessed hour int % ":" <> accessed minute int % ":" <> accessed second int % "." <> accessed millisecond int

-- | Formats a `Time` as `hh:mm:ss,mmm`. This is .srt format.
--
-- @since 0.1.0.0
timecf :: Format r (Time -> r)
timecf = accessed hour int % ":" <> accessed minute int % ":" <> accessed second int % "," <> accessed millisecond int

-- | Formats a `Range` as "X --> Y", Formatter for SRT format will
-- therefore be rangeaf timecf.
--
-- @since 0.1.1.0
rangeaf :: Format r (Time -> r) -> Format r (Range -> r)
rangeaf x = accessed from x % " --> " <> accessed to x