mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-12-16 08:56:42 -05:00
Added 'snd_card_get_name' & 'snd_card_get_longname'.
This commit is contained in:
parent
dc490583b2
commit
0f0ce09509
2 changed files with 45 additions and 0 deletions
|
|
@ -22,6 +22,8 @@ int snd_card_load(int card);
|
||||||
int snd_cards(void);
|
int snd_cards(void);
|
||||||
unsigned int snd_cards_mask(void);
|
unsigned int snd_cards_mask(void);
|
||||||
int snd_card_name(const char *name);
|
int snd_card_name(const char *name);
|
||||||
|
int snd_card_get_name(int card, char **name);
|
||||||
|
int snd_card_get_longname(int card, char **name);
|
||||||
|
|
||||||
int snd_defaults_card(void);
|
int snd_defaults_card(void);
|
||||||
int snd_defaults_mixer_card(void);
|
int snd_defaults_mixer_card(void);
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
@ -126,3 +127,45 @@ int snd_card_name(const char *string)
|
||||||
}
|
}
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int snd_card_get_name(int card, char **name)
|
||||||
|
{
|
||||||
|
snd_ctl_t *handle;
|
||||||
|
struct snd_ctl_hw_info info;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if (name == NULL)
|
||||||
|
return -EINVAL;
|
||||||
|
if ((err = snd_ctl_open(&handle, card)) < 0)
|
||||||
|
return err;
|
||||||
|
if ((err = snd_ctl_hw_info(handle, &info)) < 0) {
|
||||||
|
snd_ctl_close(handle);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
snd_ctl_close(handle);
|
||||||
|
*name = strdup(info.name);
|
||||||
|
if (*name == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int snd_card_get_longname(int card, char **name)
|
||||||
|
{
|
||||||
|
snd_ctl_t *handle;
|
||||||
|
struct snd_ctl_hw_info info;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if (name == NULL)
|
||||||
|
return -EINVAL;
|
||||||
|
if ((err = snd_ctl_open(&handle, card)) < 0)
|
||||||
|
return err;
|
||||||
|
if ((err = snd_ctl_hw_info(handle, &info)) < 0) {
|
||||||
|
snd_ctl_close(handle);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
snd_ctl_close(handle);
|
||||||
|
*name = strdup(info.longname);
|
||||||
|
if (*name == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue