This module allows to cancel events according to some criteria.
In all cases other than
the criteria are combined by logical AND.
For every criterion we provide three kinds of accessors:
set: enable a criterion
put: enable or disable a criterion
get: query, whether the criterion is enabled or disabled.
Currently only the
set functions are really usable.
get functions would become useful
for manipulating the remove criterion record, that ALSA maintains.
- data T a
- run :: T mode -> T a -> IO a
- setInput :: T ()
- putInput :: Bool -> T ()
- getInput :: T Bool
- setOutput :: T ()
- putOutput :: Bool -> T ()
- getOutput :: T Bool
- setChannel :: Channel -> T ()
- putChannel :: Maybe Channel -> T ()
- getChannel :: T (Maybe Channel)
- setEventType :: Type e => e -> T ()
- putEventType :: Type e => Maybe e -> T ()
- setTag :: Tag -> T ()
- putTag :: Maybe Tag -> T ()
- getTag :: T (Maybe Tag)
- setDest :: (T, T) -> T ()
- putDest :: Maybe (T, T) -> T ()
- getDest :: T (Maybe (T, T))
- setTime :: Ordering -> Stamp -> T ()
- putTime :: Maybe Ordering -> Stamp -> T ()
- getTime :: T (Maybe Ordering, Stamp)
- setIgnoreOff :: T ()
- putIgnoreOff :: Bool -> T ()
- getIgnoreOff :: T Bool
All events in the local input buffer are removed.
The conditions are not checked for these events.
This is equivalent to
Matching events in the local output buffer are removed, too.
Matching events in the kernel buffer are removed in any case.
If there are no further conditions,
then this is equivalent to
ALSA maintainers say, that destination address and queue are checked together, at least in the kernel buffer. However up to ALSA-1.0.22 the check for the queue is missing in libasound for the local buffer.