module Mpv.Data.AudioTracks where

import Polysemy.Time.Json (json)

import Mpv.Data.AudioId (AudioId)
import Mpv.Data.AudioTrack (AudioTrack)

data AudioTracks =
  AudioTracks {
    AudioTracks -> Maybe AudioId
active :: Maybe AudioId,
    AudioTracks -> [AudioTrack]
audios :: [AudioTrack]
  }
  deriving stock (AudioTracks -> AudioTracks -> Bool
(AudioTracks -> AudioTracks -> Bool)
-> (AudioTracks -> AudioTracks -> Bool) -> Eq AudioTracks
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AudioTracks -> AudioTracks -> Bool
$c/= :: AudioTracks -> AudioTracks -> Bool
== :: AudioTracks -> AudioTracks -> Bool
$c== :: AudioTracks -> AudioTracks -> Bool
Eq, Int -> AudioTracks -> ShowS
[AudioTracks] -> ShowS
AudioTracks -> String
(Int -> AudioTracks -> ShowS)
-> (AudioTracks -> String)
-> ([AudioTracks] -> ShowS)
-> Show AudioTracks
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AudioTracks] -> ShowS
$cshowList :: [AudioTracks] -> ShowS
show :: AudioTracks -> String
$cshow :: AudioTracks -> String
showsPrec :: Int -> AudioTracks -> ShowS
$cshowsPrec :: Int -> AudioTracks -> ShowS
Show, (forall x. AudioTracks -> Rep AudioTracks x)
-> (forall x. Rep AudioTracks x -> AudioTracks)
-> Generic AudioTracks
forall x. Rep AudioTracks x -> AudioTracks
forall x. AudioTracks -> Rep AudioTracks x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AudioTracks x -> AudioTracks
$cfrom :: forall x. AudioTracks -> Rep AudioTracks x
Generic)
  deriving anyclass (AudioTracks
AudioTracks -> Default AudioTracks
forall a. a -> Default a
def :: AudioTracks
$cdef :: AudioTracks
Default)

json ''AudioTracks