!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~              provides the types for volumeNoneT%type for pa_cvolume. This contains a  for each channel.type for pa_volume_tConvert a single  to a linear scale Convert a % to a list of linearly scaled values. 1provides a unifed Userdata type for this package.Safe:This is the common Userdata type for pointers to userdata. Userdata may either be something given to us by the pulse api or a value passed from us to the pulse api. Currently the only value passed to the pulse api, is the function pointer for the defined function, so it can cleanup (freeHaskellFunPtr) itself.Safe   !"#$%&'()*+,-./0123!"#$%&'(456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm)*+,-./0123nopqrst456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abuvwxyz{|}~cdefghijklmnopqrstuvwxyz{|}~   !"#$%&'()*+,-./0123!"#$%&'(456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm)*+,-./0123nopqrst456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abuvwxyz{|}~cdefghijklmnopqrstuvwxyz{|}~;     !"#$%&'()*+,-./0123!"#$%&'(4956789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm)*+,-./0123nopqrst456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abuvwxyz{|}~ cdefghijklmnopqrstuvwxyz{|}~"provides wrappers for pa_operationSafeHighN-level operation type, this should be the return type for exported |functions@Unsafe Operation. Should be return value of foreign import calls-Internal Operation type, used for type safetyVCancel an operation. The server may still do it, but the client will not be |notifiedThis currently leaks the function, after the operation went out of scope |I'm not quite sure when this will be called either way.Get the State of the operationConvert a Unsafe Operation to a safe one. This should be called by wrappers |to FFI imports. |Also call this when not returning the value, since it registers the unref |function for the operation. /provides the time type used for pa_sample_spec.Safe!"$The pa_sample_spec type for Haskell.$%&'()*+,-./0123$%&'()*+,-./0123:Provides types for PA_CHANNEL_POSITION and pa_channel_map.Safe!"TThe Type for ChannelMaps<456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm<456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmTInternal handling of time, and conversion between struct timeval and struct timespecSafeDInternal time struct used to convert to pulseaudio compatible format&The time used by the library level api Convert from  to  before passing to pulse Convert from  to  after getting value form pulseEprovides the time type used by this package and a few functions on itSafe4Get the current system time in real time (wallclock)Add seconds to a Add nanoseconds to a Add two  s together$Get the difference between to times.Convert from Microseconds to  Convert a  to MicrosecondsNA dummy time value, do not use to calculate, only if guaranteed to be ignored   :Provides a class and wrapper type for Mainloop abstractionSafe!"DR#The type used to encapsule a  in a C compatible struct of s.&Internal wrapper type for PADeferEvent%Internal wrapper type for PATimeEvent#Internal wrapper type for PAIOEvent6The main class for a pulseaudio mainloop abstraction. SPulseaudio IO event. Will have to wait for an Fd to become ready (w.r.t. to flags)7Pulseaudio Time event. Should fire at a specified time.PPulseaudio Defer event. Should be handled before other events. May be disabled. Create a new + and set it to listen for specified events.+Modify the events an IOEvent is waiting on.Delete an IOEvent.`Set the destroy handler of an IOEvent. The handler should be called, when the event is deleted. Create a new %. This should fire at the given time.Set a new time when the ) should fire. This may require requeing. Delete a .Set the destroy handler. Create a new  PADefereEvent0. This should be fired before any other events.Enable or disable a  PADefereEvent.Delete the event.&Set the destroy handler for the event.+Quit the mainloop and return the given int. Events that s may wait for. At my current level of testing, it looks like libpulse only uses Input (and I guess output when writing to the server):No Event (this is for compatibility, should never show up)Fd went ready for readingFd went ready for writing(Fd got a hangup (see poll documentation)(Fd got an error (see poll documentation) Internal function for conversion Internal function for conversion Internal function for conversion Record-name Record-name Record-nameGet the Mainloop back from a  without marshalling all of it.Warning! This leaks a bit of memory when it's Garbage collected, because the FunPtrs created for the PulseApi cannot be collected at that point. Currently there is no way to properly free them, but this should only be called once per application, so this will be a known Bug for now.\5/provices the Context type and related functionsNone 4Callback type for functions that only report success$Type we will be using for pa_contextTypesafety internal typeWrapp a function callback for Create a pulseaudio context)Connect a Context to a pulseaudio server.This callback is leaked! if it's reset IMO the handler should stay forever aswell (even if just for loggin), so don't worry about it. This should only be called once per application run though, so it will be a known issue for know.&Get the Servername from a (connected) .Get the current state from a .Get the last error from a .Get the last error from a  in a human readable .The mainloop implementationThe application name The contextLThe server to connect to. If this is Nothing, connect to the default server.KFlags to control the startup behaviour of the server. -> SpawnApi! -- TODO !"#uvwxyz{| !"#uvwxyz{| None-   /provides the time type used for pa_server_info.None The type used for pa_server_infoGet the server info.!Context for the server connection  -provides the time type used for pa_sink_info.None!"TType used for pa_sink_infoGet all sinks from a context.Get a sink by nameGet a sink by index( The context1List callback. Will be called once per list entry8End callback. Will be called once after all list entries0 nopqrst0 nopqrst#provides wrappers for subscription.None Currently the function given here is leaked! even if it's reset later on This is currently unavoidable, since we don't know when the last event occured. This should only be called once per application run, so it will be a known issue for now. The Context to subscribe on"The events that should be reported>Callback function that will be called on every event received. }~  }~    @provides a simple (buggy?) implementation of the pulse mainloop.Safe-DR  9Implementation type, keeping state about existing events.HThe first entry will be the first one to expire (or has already expired)HThe first entry will be the first one to expire (or has already expired)The  type for this implementationThe  type for this implementationThe  type for this implementation1Split up the IOEvents into different event types.HCreate the STM event we want to wait on, to get the next event possible.7Do one iteration of waiting for and dispatching events.Do one iteration of events. This may be dispatchin defered events, a timer, an io event, or simply a wakeup. Event callback will be called in the same thread as this!*Loop in the pulse main loop until eternety Create a new   with initial state6       !"#$%&'()*+         $%&'()!*"+#, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                        !    " # $ % & ' ( )*)pulseaudio-0.0.2.1-Jl3oXlXa2BgL95YIrsxhEYSound.Pulse.VolumeSound.Pulse.SinkinfoSound.Pulse.SubscribeSound.Pulse.ContextSound.Pulse.SampleSpecSound.Pulse.ChannelPositionSound.Pulse.Operation Data.TimeSound.Pulse.Mainloop Sound.PulseSound.Pulse.ServerinfoSound.Pulse.Mainloop.SimpleSound.Pulse.UserdataSound.Pulse.DefData.Time.InternalCVolumeVolumevolumeToLinearcVolumeToLinear$fStorableCVolume $fEqCVolume $fShowCVolume SinkFlags SinkNoflagsSinkHwVolumeCtrl SinkLatency SinkHardware SinkNetworkSinkHwMuteCtrlSinkDecibelVolumeSinkFlatVolumeSinkDynamicLatencySinkSetFormatsSubscriptionMaskSubscriptionMaskNullSubscriptionMaskSinkSubscriptionMaskSourceSubscriptionMaskSinkInputSubscriptionMaskSourceOutputSubscriptionMaskModuleSubscriptionMaskClientSubscriptionMaskSampleCacheSubscriptionMaskServerSubscriptionMaskAutoloadSubscriptionMaskCardSubscriptionMaskAll ContextFlagsContextNoflagsContextNoautospawn ContextNofail SampleFormatSampleU8 SampleAlaw SampleUlaw SampleS16le SampleS16beSampleFloat32leSampleFloat32be SampleS32le SampleS32be SampleS24le SampleS24be SampleS2432le SampleS2432be SampleMax SampleInvalidChannelPositionChannelPositionInvalidChannelPositionMonoChannelPositionFrontLeftChannelPositionFrontRightChannelPositionFrontCenterChannelPositionLeftChannelPositionRightChannelPositionCenterChannelPositionRearCenterChannelPositionRearLeftChannelPositionRearRightChannelPositionLfeChannelPositionSubwoofer ChannelPositionFrontLeftOfCenter!ChannelPositionFrontRightOfCenterChannelPositionSideLeftChannelPositionSideRightChannelPositionAux0ChannelPositionAux1ChannelPositionAux2ChannelPositionAux3ChannelPositionAux4ChannelPositionAux5ChannelPositionAux6ChannelPositionAux7ChannelPositionAux8ChannelPositionAux9ChannelPositionAux10ChannelPositionAux11ChannelPositionAux12ChannelPositionAux13ChannelPositionAux14ChannelPositionAux15ChannelPositionAux16ChannelPositionAux17ChannelPositionAux18ChannelPositionAux19ChannelPositionAux20ChannelPositionAux21ChannelPositionAux22ChannelPositionAux23ChannelPositionAux24ChannelPositionAux25ChannelPositionAux26ChannelPositionAux27ChannelPositionAux28ChannelPositionAux29ChannelPositionAux30ChannelPositionAux31ChannelPositionTopCenterChannelPositionTopFrontLeftChannelPositionTopFrontRightChannelPositionTopFrontCenterChannelPositionTopRearLeftChannelPositionTopRearRightChannelPositionTopRearCenterChannelPositionMax SinkStateSinkInvalidState SinkRunningSinkIdle SinkSuspendedSinkInit SinkUnlinked ContextStateContextUnconnectedContextConnectingContextAuthorizingContextSettingName ContextReady ContextFailedContextTerminatedSubscriptionEventTypeSubscriptionEventNewSubscriptionEventChangeSubscriptionEventRemoveSubscriptionEventTypeMaskSubscriptionEventFacilitySubscriptionEventSinkSubscriptionEventSourceSubscriptionEventSinkInputSubscriptionEventSourceOutputSubscriptionEventModuleSubscriptionEventClientSubscriptionEventSampleCacheSubscriptionEventServerSubscriptionEventAutoloadSubscriptionEventCardSubscriptionEventFacilityMask Operation UOperationoperationCanceloperationSetCallbackoperationGetStateptrToOperation SampleSpecssFormatssRate ssChannels$fStorableSampleSpec$fEqSampleSpec$fShowSampleSpec ChannelMap$fStorableChannelMap$fEqChannelMap$fShowChannelMapPATimegetTime addSeconds addNSecondsaddTimesgetDiff timeFromUStimeToUS dummyTime PAMainloopApi PAMainloop PAIOEvent PATimeEvent PADeferEventioNewioEnableioFree ioSetDestroytimeNew timeRestarttimeFreetimeSetDestroydeferNew deferEnable deferFreedeferSetDestroyquitLoopPAIOEventFlags PAIOEventNullPAIOEventInputPAIOEventOutputPAIOEventHangupPAIOEventErrorgetMainloopApi$fStorablePAMainloopApi$fEqPAIOEventFlags$fShowPAIOEventFlagsContextSuccessCBContext wrapSuccess getContextconnectContextsetStateCallbackgetContextServergetContextState getContextErrgetContextErrStrPulserunPulse runPulse_ runGetPulse pulseListM$fMonadIOPulse $fMonadPulse$fApplicativePulse$fFunctorPulse ServerInfouserNamehostName serverVersion serverName sampleSpecdefaultSinkNamedefaultSourceNamecookie channelMap getServerInfogetServerInfoM$fStorableServerInfo$fEqServerInfo$fShowServerInfoSinkinfosiNamesiIndex siDescription siSampleSpec siChannelMap siOwnerModulesiVolumesiMutesiMonitorSourcesiMonitorSourceName siLatencysiDriversiFlags siProplistsiConfiguredLatency siBaseVolumesiState siVolumeStepssiCardsiPorts siActivePort siFormatsgetContextSinksgetContextSinksMgetContextSinkByNamegetContextSinkByNameMgetContextSinkByIndexgetContextSinkByIndexM$fStorableSinkinfo $fEqSinkinfo$fShowSinkinfosubscribeEventssubscribeEventsM MainloopImpl doIterationdoLoopgetMainloopImpl$fPAMainloopMainloopImpl$fEqDeferEvent $fEqTimeEvent $fEqIOEventpa_sw_volume_to_linearUserdata SourceFlags SourceNoflagsSourceHwVolumeCtrl SourceLatencySourceHardware SourceNetworkSourceHwMuteCtrlSourceDecibelVolumeSourceDynamicLatencySourceFlatVolume ChannelMapDefChannelMapAiffChannelMapAlsa ChannelMapAuxChannelMapWaveex ChannelMapOssChannelMapDefMaxChannelMapDefault PortAvailablePortAvailableUnknownPortAvailableNoPortAvailableYes SourceStateSourceInvalidState SourceRunning SourceIdleSourceSuspended SourceInitSourceUnlinkedSeekMode SeekRelative SeekAbsoluteSeekRelativeOnReadSeekRelativeEnd ErrorCodeOk ErrAccess ErrCommand ErrInvalidErrExist ErrNoentityErrConnectionrefused ErrProtocol ErrTimeout ErrAuthkey ErrInternalErrConnectionterminated ErrKilledErrInvalidserverErrModinitfailed ErrBadstate ErrNodata ErrVersion ErrToolargeErrNotsupported ErrUnknownErrNoextension ErrObsoleteErrNotimplemented ErrForkedErrIoErrBusyErrMax DirectionDirectionOutputDirectionInputOperationStateOperationRunning OperationDoneOperationCancelled StreamStateStreamUnconnectedStreamCreating StreamReady StreamFailedStreamTerminatedfoldFlagsubscriptionEventFacilityToInt subscriptionEventFacilityFromIntsubscriptionEventTypeToIntsubscriptionEventTypeFromIntcontextStateToIntcontextStateFromIntstreamStateToIntstreamStateFromIntoperationStateToIntoperationStateFromIntdirectionToIntdirectionFromInterrorCodeToInterrorCodeFromInt seekModeToIntseekModeFromIntsinkStateToIntsinkStateFromIntsourceStateToIntsourceStateFromIntportAvailableToIntportAvailableFromIntchannelPositionToIntchannelPositionFromIntchannelMapDefToIntchannelMapDefFromIntsampleFormatToIntsampleFormatFromIntcontextFlagsToIntcontextFlagssToIntcontextFlagssFromIntsubscriptionMaskToIntsubscriptionMasksToIntsubscriptionMasksFromIntsinkFlagsToIntsinkFlagssToIntsinkFlagssFromIntsourceFlagsToIntsourceFlagssToIntsourceFlagssFromInt IOperationOperationNotifyCBpa_operation_unrefpa_operation_get_statepa_operation_set_state_callbackpa_operation_cancelmkOperationNCBPAITimetoPAIfromPAI$fStorablePAITime$fStorablePATime clock_gettimebaseGHC.PtrFunPtr PADeferEventW PATimeEventW PAIOEventW ioEventToCIntioEventsToCIntioEventsFromCInt ioRealHandletimeRealHandledeferRealHandleuserdataio_new io_enableio_freeio_set_destroytime_new time_restart time_freetime_set_destroy defer_new defer_enable defer_freedefer_set_destroyquitQuitDeferSetDestroy DeferDestroy DeferFree DeferEnableDeferNew DeferEvCBTimeSetDestroy TimeDestroyTimeFree TimeRestartTimeNewTimeEvCB IOSetDestroy IODestroyIOFreeIOEnableIONewIOEvCBmkQuitmkDeferSetDestroymkDeferDestroy mkDeferFree mkDeferEnable mkDeferNew mkDeferEvCBmkTimeSetDestroy mkTimeDestroy mkTimeFree mkTimeRestart mkTimeNew mkTimeEvCBmkIOSetDestroy mkIODestroymkIOFree mkIOEnablemkIONewmkIOEvCB CInternalGHC.BaseString ContextNotify PASpawnApi pa_strerrorpa_context_errnopa_context_get_statepa_context_get_serverpa_context_set_state_callback mkCNotifypa_context_connectpa_context_new mkCSuccess ServerInfoCBpa_context_get_server_infomkServerInfoCB SinkinfoCB SinkPortInfo FormatInfoPropList!pa_context_get_sink_info_by_index pa_context_get_sink_info_by_namepa_context_get_sink_info_list mkSinkinfoCB mkCallback Subscription SubscribeCBpa_context_subscribe!pa_context_set_subscribe_callback mkSubscribeCBsubscriptionEventFromIntimplTimeEventsimplTimeDisable DeferEvent TimeEventIOEvent splitEvents waitEventsdoRun implIOEventsimplDeferEvents implIOCount implTimeCountimplDeferCount implRunningimplPipe deferCallback deferImpldeferID deferEnabled deferDestroy timeCallbacktimeImpltimeID timeDeadline timeDestroy ioCallbackioFdioImplioIDioEvents ioDestroy waitReadEventwaitWriteEventatomModifyIORefremoveTimeEventwakeImplD:R:PAIOEventMainloopImpl0D:R:PATimeEventMainloopImpl0D:R:PADeferEventMainloopImpl0