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