diff options
author | David Wagner <david.wagner@intel.com> | 2014-04-02 15:12:54 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2014-08-12 14:04:32 +0530 |
commit | 4cddf19dfcf65e6fb1277a3230fd0fe509ec7e81 (patch) | |
tree | 912ab5aaa742278190c8cd832f4ded4cf322c0fa | |
parent | 9ecb93fb6b4474bee5e700e65663af15088c97c2 (diff) |
tinyalsa: add pcm_get_subdevice()
The users of tinyalsa had no way of knowing on which subdevice a stream had
been created. A new API, "unsigned int pcm_get_subdevice(struct *pcm)" returns
it. This information is filled during the pcm_open()
Change-Id: Ie866e10e06ce6691ede09e2ca46a24441723ea8b
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r-- | include/tinyalsa/asoundlib.h | 3 | ||||
-rw-r--r-- | pcm.c | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/tinyalsa/asoundlib.h b/include/tinyalsa/asoundlib.h index eb3e4c4..045c8b5 100644 --- a/include/tinyalsa/asoundlib.h +++ b/include/tinyalsa/asoundlib.h @@ -179,6 +179,9 @@ unsigned int pcm_bytes_to_frames(struct pcm *pcm, unsigned int bytes); int pcm_get_htimestamp(struct pcm *pcm, unsigned int *avail, struct timespec *tstamp); +/* Returns the subdevice on which the pcm has been opened */ +unsigned int pcm_get_subdevice(struct pcm *pcm); + /* Write data to the fifo. * Will start playback on the first write or on a write that * occurs after a fifo underrun. @@ -171,6 +171,7 @@ struct pcm { void *mmap_buffer; unsigned int noirq_frames_per_msec; long pcm_delay; + unsigned int subdevice; }; unsigned int pcm_get_buffer_size(struct pcm *pcm) @@ -183,6 +184,11 @@ const char* pcm_get_error(struct pcm *pcm) return pcm->error; } +unsigned int pcm_get_subdevice(struct pcm *pcm) +{ + return pcm->subdevice; +} + static int oops(struct pcm *pcm, int e, const char *fmt, ...) { va_list ap; @@ -654,6 +660,7 @@ struct pcm *pcm_open(unsigned int card, unsigned int device, oops(pcm, errno, "cannot get info"); goto fail_close; } + pcm->subdevice = info.subdevice; param_init(¶ms); param_set_mask(¶ms, SNDRV_PCM_HW_PARAM_FORMAT, |