packages feed

musicScroll-0.2.0.0: src/MusicScroll/ConnState.hs

module MusicScroll.ConnState
  ( ConnState(..)
  , newConnState
  , setBus
  ) where

import DBus (BusName)
import DBus.Client (Client)
import Control.Concurrent.STM.TBQueue (TBQueue)
import MusicScroll.TrackInfo (TrackIdentifier)
import MusicScroll.UIEvent (UIEvent)
import MusicScroll.DBusNames

data ConnState = ConnState
  { cClient        :: Client
  , cBusActive     :: BusName
  , cOutTrackChan  :: TBQueue TrackIdentifier
  , cOutEventChan  :: TBQueue UIEvent
  }

newConnState :: TBQueue TrackIdentifier -> TBQueue UIEvent
             -> Client -> ConnState
newConnState trackCh eventCh c = ConnState c vlcBus trackCh eventCh

setBus :: BusName -> ConnState -> ConnState
setBus newBus conn = conn { cBusActive = newBus }