alsa-seq-0.5.1: src/Sound/ALSA/Sequencer/Event/Accessor.hs
module Sound.ALSA.Sequencer.Event.Accessor (
highPriority,
tag,
queue,
timestamp,
source,
dest,
connect,
body,
) where
import qualified Sound.ALSA.Sequencer.Address as Addr
import qualified Sound.ALSA.Sequencer.Queue as Queue
import qualified Sound.ALSA.Sequencer.Marshal.Event as Event
import qualified Data.Accessor.Basic as Acc
import Data.Word (Word8, )
highPriority :: Acc.T Event.T Bool
tag :: Acc.T Event.T Word8
queue :: Acc.T Event.T Queue.T
timestamp :: Acc.T Event.T Event.TimeStamp
source :: Acc.T Event.T Addr.T
dest :: Acc.T Event.T Addr.T
connect :: Acc.T Event.T Event.Connect
body :: Acc.T Event.T Event.Data
highPriority =
Acc.fromSetGet (\x ev -> ev{Event.highPriority = x}) Event.highPriority
tag =
Acc.fromSetGet (\x ev -> ev{Event.tag = x}) Event.tag
queue =
Acc.fromSetGet (\x ev -> ev{Event.queue = x}) Event.queue
timestamp =
Acc.fromSetGet (\x ev -> ev{Event.timestamp = x}) Event.timestamp
source =
Acc.fromSetGet (\x ev -> ev{Event.source = x}) Event.source
dest =
Acc.fromSetGet (\x ev -> ev{Event.dest = x}) Event.dest
connect =
Acc.fromSetGet
(\(Event.Connect src dst) ev -> ev{Event.source = src, Event.dest = dst})
(\ev -> Event.Connect (Event.source ev) (Event.dest ev))
body =
Acc.fromSetGet (\x ev -> ev{Event.body = x}) Event.body