diff options
author | Mark Farrugia <mark.farrugia@fiberdyne.com.au> | 2019-04-03 17:41:32 +1100 |
---|---|---|
committer | Mark Farrugia <mark.farrugia@fiberdyne.com.au> | 2019-04-03 17:41:32 +1100 |
commit | de95b5d9cb985acf9e28ea4e1a8592d335e601b1 (patch) | |
tree | af02bdc00e2c2dd0242e97fe1dc8002ca6df24ae /sound | |
parent | e152900bc73f1f7d3b33aa5369c36da762b0b042 (diff) |
Introduce 'unconfigure' callback
The 'unconfigure' callback can be used to clean up the 'configured'
state of an Audio Path, for when it is desired to reset the streams,
and/or reload a different stream configuration.
To destroy the streams, we must attempt to force their PCMs
closed. Take note though, that if a PCM is being written to when
an unconfigure command is issued, system instability may occur.
Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/avirt.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/avirt.h b/sound/avirt.h index 9259d83..46756b3 100644 --- a/sound/avirt.h +++ b/sound/avirt.h @@ -36,6 +36,8 @@ struct snd_avirt_stream_array; /* Forward declaration */ typedef int (*snd_avirt_audiopath_configure)( struct snd_card *card, struct snd_avirt_stream_array *stream_array); +typedef int (*snd_avirt_audiopath_unconfigure)(void); + typedef void (*snd_avirt_pcm_exttrigger)(void); /** @@ -79,6 +81,7 @@ struct snd_avirt_audiopath { const struct snd_pcm_ops *pcm_playback_ops; /* ALSA PCM playback ops */ const struct snd_pcm_ops *pcm_capture_ops; /* ALSA PCM capture ops */ snd_avirt_audiopath_configure configure; /* Config callback function */ + snd_avirt_audiopath_unconfigure unconfigure; /* Unconfig cb function */ snd_avirt_pcm_exttrigger pcm_exttrigger; /* External trigger callback */ void *context; }; |