packages feed

musicScroll-0.1.2.0: src/MusicScroll/ConnState.hs

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

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

import MusicScroll.DBusNames

data ConnState = ConnState
  { cClient        :: Client
  , cBusActive     :: BusName
  , cOutChan       :: TBQueue TrackInfo
  , cLastSentTrack :: Maybe TrackInfo
  }

newConnState :: TBQueue TrackInfo -> Client -> ConnState
newConnState outChan c = ConnState c vlcBus outChan Nothing

setSong :: TrackInfo -> ConnState -> ConnState
setSong track s = s { cLastSentTrack = pure track }