Commit da2f98a5 authored by Led's avatar Led

0.10.3

parent b27705a3
...@@ -5,6 +5,7 @@ ver 0.10.3 (2004/4/2) ...@@ -5,6 +5,7 @@ ver 0.10.3 (2004/4/2)
4) When returning errors for unknown types by player, be sure to copy the filename 4) When returning errors for unknown types by player, be sure to copy the filename
5) add --disable-alsa for disabling alsa mixer support 5) add --disable-alsa for disabling alsa mixer support
6) Use select() for a portable usleep() 6) Use select() for a portable usleep()
7) For alsa mixer, default to "Master' element, not first element
ver 0.10.2 (2004/3/25) ver 0.10.2 (2004/3/25)
1) Add suport for AAC 1) Add suport for AAC
......
...@@ -36,13 +36,14 @@ ...@@ -36,13 +36,14 @@
#include <alsa/asoundlib.h> #include <alsa/asoundlib.h>
#endif #endif
#define VOLUME_MIXER_TYPE_SOFTWARE 0 #define VOLUME_MIXER_TYPE_SOFTWARE 0
#define VOLUME_MIXER_TYPE_OSS 1 #define VOLUME_MIXER_TYPE_OSS 1
#define VOLUME_MIXER_TYPE_ALSA 2 #define VOLUME_MIXER_TYPE_ALSA 2
#define VOLUME_MIXER_SOFTWARE_DEFAULT "" #define VOLUME_MIXER_SOFTWARE_DEFAULT ""
#define VOLUME_MIXER_OSS_DEFAULT "/dev/mixer" #define VOLUME_MIXER_OSS_DEFAULT "/dev/mixer"
#define VOLUME_MIXER_ALSA_DEFAULT "default" #define VOLUME_MIXER_ALSA_DEFAULT "default"
#define VOLUME_MIXER_ALSA_CONTROL_DEFAULT "Master"
int volume_mixerType = VOLUME_MIXER_TYPE_SOFTWARE; int volume_mixerType = VOLUME_MIXER_TYPE_SOFTWARE;
char * volume_mixerDevice; char * volume_mixerDevice;
...@@ -170,6 +171,7 @@ int changeOssVolumeLevel(FILE * fp, int change, int rel) { ...@@ -170,6 +171,7 @@ int changeOssVolumeLevel(FILE * fp, int change, int rel) {
int prepAlsaMixer(char * card) { int prepAlsaMixer(char * card) {
int err; int err;
snd_mixer_elem_t * elem; snd_mixer_elem_t * elem;
char * controlName = VOLUME_MIXER_ALSA_CONTROL_DEFAULT;
if((err = snd_mixer_open(&volume_alsaMixerHandle,0))<0) { if((err = snd_mixer_open(&volume_alsaMixerHandle,0))<0) {
ERROR("problems opening alsa mixer: %s\n",snd_strerror(err)); ERROR("problems opening alsa mixer: %s\n",snd_strerror(err));
...@@ -199,40 +201,30 @@ int prepAlsaMixer(char * card) { ...@@ -199,40 +201,30 @@ int prepAlsaMixer(char * card) {
elem = snd_mixer_first_elem(volume_alsaMixerHandle); elem = snd_mixer_first_elem(volume_alsaMixerHandle);
if(getConf()[CONF_MIXER_CONTROL]) { if(getConf()[CONF_MIXER_CONTROL]) {
while(elem) { controlName = getConf()[CONF_MIXER_CONTROL];
if(snd_mixer_elem_get_type(elem) }
==SND_MIXER_ELEM_SIMPLE)
while(elem) {
if(snd_mixer_elem_get_type(elem)==SND_MIXER_ELEM_SIMPLE) {
if(strcasecmp(controlName,
snd_mixer_selem_get_name(elem))==0)
{ {
if(strcasecmp(getConf()[CONF_MIXER_CONTROL], break;
snd_mixer_selem_get_name(elem))
==0)
{
break;
}
} }
elem = snd_mixer_elem_next(elem);
}
if(elem) {
volume_alsaElem = elem;
snd_mixer_selem_get_playback_volume_range(
volume_alsaElem,
&volume_alsaMin,&volume_alsaMax);
return 0;
} }
elem = snd_mixer_elem_next(elem);
} }
else {
if(elem) {
volume_alsaElem = elem; volume_alsaElem = elem;
if(snd_mixer_elem_get_type(volume_alsaElem) snd_mixer_selem_get_playback_volume_range(
==SND_MIXER_ELEM_SIMPLE) volume_alsaElem,
{ &volume_alsaMin,&volume_alsaMax);
snd_mixer_selem_get_playback_volume_range( return 0;
volume_alsaElem,
&volume_alsaMin,&volume_alsaMax);
return 0;
}
} }
ERROR("can't find alsa mixer_control \"%s\"\n",controlName);
snd_mixer_close(volume_alsaMixerHandle); snd_mixer_close(volume_alsaMixerHandle);
return -1; return -1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment