/** PCM sample subformat */
typedef enum _snd_pcm_subformat {
+ /** Unknown */
+ SND_PCM_SUBFORMAT_UNKNOWN = -1,
/** Standard */
SND_PCM_SUBFORMAT_STD = 0,
SND_PCM_SUBFORMAT_LAST = SND_PCM_SUBFORMAT_STD
const char *snd_pcm_format_description(const snd_pcm_format_t format);
const char *snd_pcm_subformat_name(const snd_pcm_subformat_t subformat);
const char *snd_pcm_subformat_description(const snd_pcm_subformat_t subformat);
+snd_pcm_subformat_t snd_pcm_subformat_value(const char* name);
snd_pcm_format_t snd_pcm_format_value(const char* name);
const char *snd_pcm_tstamp_mode_name(const snd_pcm_tstamp_t mode);
const char *snd_pcm_state_name(const snd_pcm_state_t state);
return snd_pcm_subformat_descriptions[subformat];
}
+/**
+ * \brief get PCM sample subformat from name
+ * \param name PCM sample subformat name (case insensitive)
+ * \return PCM sample subformat
+ */
+snd_pcm_subformat_t snd_pcm_subformat_value(const char* name)
+{
+ snd_pcm_subformat_t subformat;
+
+ for (subformat = 0; subformat <= SND_PCM_SUBFORMAT_LAST; subformat++) {
+ if (snd_pcm_subformat_names[subformat] &&
+ !strcasecmp(name, snd_pcm_subformat_names[subformat]))
+ return subformat;
+ }
+
+ for (subformat = 0; subformat <= SND_PCM_SUBFORMAT_LAST; subformat++) {
+ if (snd_pcm_subformat_descriptions[subformat] &&
+ !strcasecmp(name, snd_pcm_subformat_descriptions[subformat]))
+ return subformat;
+ }
+
+ return SND_PCM_SUBFORMAT_UNKNOWN;
+}
+
/**
* \brief (DEPRECATED) get name of PCM start mode setting
* \param mode PCM start mode