diff options
Diffstat (limited to '')
-rw-r--r-- | AUTHORS | 23 | ||||
-rw-r--r-- | TODO | 8 | ||||
-rw-r--r-- | src/command.c | 18 | ||||
-rw-r--r-- | src/volume.c | 114 | ||||
-rw-r--r-- | src/volume.h | 4 |
5 files changed, 9 insertions, 158 deletions
@@ -1,19 +1,10 @@ -General Development - - Warren Dukes <shank@mercury.chem.pitt.edu> - - tw-nym - - normalperson - -'next' and 'previous' command - - Niklas Hofer - -'mute' command - - danb - -setuid support - - nagilum - -replayGain support - - AliasMrJones +Developer -> Warren Dukes <shank@mercury.chem.pitt.edu> +Developer -> tw-nym +audiofile support and command.c cleanup -> normalperson +setuid patch -> Nagilum +'next' and 'previous' patch -> Niklas Hofer +command.c and signal handling cleanup -> mackstann +replayGain -> AliasMrJones libid3tag and libmad copyrighted by Robert Leslie, http://www.underbit.com/products/mad mp4ff copyrighted by M. Bakker, Ahead Software AG, http://www.nero.com @@ -25,12 +25,8 @@ *) add support for saving and restoring audioOutput state to the state_file -*) fix killall mpd - *) have it determine if SIGTERM received from parent pid, if not - then it doesn't exit with EXIT_SUCCESS, but EXIT_FAILURE - *) if player died w/ EXIT FAILURE, then store the current - state somewhere in case we a SIGTERM was received by the - parent +*) on resetPlayer(), store last state info, so that a killall mpd will + properlly save the state, even if the player process dies first 0.13 ---- diff --git a/src/command.c b/src/command.c index 438b55ffb..2c307e0bb 100644 --- a/src/command.c +++ b/src/command.c @@ -64,7 +64,6 @@ #define COMMAND_PREVIOUS "previous" #define COMMAND_LISTALL "listall" #define COMMAND_VOLUME "volume" -#define COMMAND_MUTE "mute" #define COMMAND_REPEAT "repeat" #define COMMAND_RANDOM "random" #define COMMAND_STATS "stats" @@ -91,7 +90,6 @@ #define COMMAND_NOTCOMMANDS "notcommands" #define COMMAND_STATUS_VOLUME "volume" -#define COMMAND_STATUS_MUTE "mute" #define COMMAND_STATUS_STATE "state" #define COMMAND_STATUS_REPEAT "repeat" #define COMMAND_STATUS_RANDOM "random" @@ -250,7 +248,6 @@ int commandStatus(FILE * fp, unsigned int * permission, int argArrayLength, } myfprintf(fp,"%s: %i\n",COMMAND_STATUS_VOLUME,getVolumeLevel()); - myfprintf(fp,"%s: %i\n",COMMAND_STATUS_MUTE,getVolumeMuteStatus()); myfprintf(fp,"%s: %i\n",COMMAND_STATUS_REPEAT,getPlaylistRepeatStatus()); myfprintf(fp,"%s: %i\n",COMMAND_STATUS_RANDOM,getPlaylistRandomStatus()); myfprintf(fp,"%s: %li\n",COMMAND_STATUS_PLAYLIST,getPlaylistVersion()); @@ -575,20 +572,6 @@ int handleSetVol(FILE * fp, unsigned int * permission, int argArrayLength, return changeVolumeLevel(fp,level,0); } -int handleMute(FILE * fp, unsigned int * permission, int argArrayLength, - char ** argArray) -{ - int status; - char * test; - - status = strtol(argArray[1],&test,10); - if(*test!='\0') { - commandError(fp, ACK_ERROR_ARG, "need an integer", NULL); - return -1; - } - return setVolumeMuteStatus(fp,status); -} - int handleRepeat(FILE * fp, unsigned int * permission, int argArrayLength, char ** argArray) { @@ -959,7 +942,6 @@ void initCommands() { addCommand(COMMAND_PREVIOUS ,PERMISSION_CONTROL, 0, 0,handlePrevious,NULL); addCommand(COMMAND_LISTALL ,PERMISSION_READ, 0, 1,handleListAll,NULL); addCommand(COMMAND_VOLUME ,PERMISSION_CONTROL, 1, 1,handleVolume,NULL); - addCommand(COMMAND_MUTE ,PERMISSION_CONTROL, 1, 1,handleMute,NULL); addCommand(COMMAND_REPEAT ,PERMISSION_CONTROL, 1, 1,handleRepeat,NULL); addCommand(COMMAND_RANDOM ,PERMISSION_CONTROL, 1, 1,handleRandom,NULL); addCommand(COMMAND_STATS ,PERMISSION_READ, 0, 0,handleStats,NULL); diff --git a/src/volume.c b/src/volume.c index 008aaac92..c16938042 100644 --- a/src/volume.c +++ b/src/volume.c @@ -63,9 +63,6 @@ char * volume_mixerDevice = VOLUME_MIXER_DEVICE_DEFAULT; int volume_softwareSet = 100; -int volume_fakeMuteStatus = 0; -int volume_fakeLastUnmutedLevel = -1; - #ifdef HAVE_OSS int volume_ossFd; int volume_ossControl = SOUND_MIXER_PCM; @@ -446,9 +443,6 @@ int changeSoftwareVolume(FILE * fp, int change, int rel) { } int changeVolumeLevel(FILE * fp, int change, int rel) { - if(getVolumeMuteStatus()) - setVolumeMuteStatus(fp,0); - switch(volume_mixerType) { #ifdef HAVE_ALSA case VOLUME_MIXER_TYPE_ALSA: @@ -465,111 +459,3 @@ int changeVolumeLevel(FILE * fp, int change, int rel) { break; } } - -int getAlsaVolumeMuteStatus() { - int err; - int status; - - if((err = snd_mixer_selem_get_playback_switch(volume_alsaElem, - SND_MIXER_SCHN_FRONT_LEFT,&status))<0) { - WARNING("problems getting alsa mute status: %s\n", - snd_strerror(err)); - return -1; - } - - return !status; -} - -int setAlsaVolumeMuteStatus(FILE * fp, int status) { - int err; - - if(status == getVolumeMuteStatus()) - return 0; - - if((err = snd_mixer_selem_set_playback_switch_all(volume_alsaElem, - !status))<0) { - commandError(fp, ACK_ERROR_SYSTEM, "problems muting volume", - NULL); - WARNING("problems muting alsa volume: %s\n", snd_strerror(err)); - return -1; - } - - return 0; -} - -int getFakeVolumeMuteStatus() { - return volume_fakeMuteStatus; -} - -// Fake mute: just drop volume to 0 -int setFakeVolumeMuteStatus(FILE * fp, int status) { - // Don't call changeVolumeLevel while volume_fakeMuteStatus is set! - if(status && !getVolumeMuteStatus()) { - // Mute - int ret; - volume_fakeLastUnmutedLevel = getVolumeLevel(); - ret = changeVolumeLevel(fp,0,0); - volume_fakeMuteStatus = 1; - return ret; - } - else if(!status && getVolumeMuteStatus()){ - // Unmute - volume_fakeMuteStatus = 0; - return changeVolumeLevel(fp,volume_fakeLastUnmutedLevel,0); - } - else { - return 0; - } -} - -int getOssVolumeMuteStatus() { - return getFakeVolumeMuteStatus(); -} - -int setOssVolumeMuteStatus(FILE * fp, int status) { - return setFakeVolumeMuteStatus(fp,status); -} - -int getSoftwareVolumeMuteStatus() { - return getFakeVolumeMuteStatus(); -} - -int setSoftwareVolumeMuteStatus(FILE * fp, int status) { - return setFakeVolumeMuteStatus(fp,status); -} - -int getVolumeMuteStatus() { - switch(volume_mixerType) { -#ifdef HAVE_ALSA - case VOLUME_MIXER_TYPE_ALSA: - return getAlsaVolumeMuteStatus(); -#endif -#ifdef HAVE_OSS - case VOLUME_MIXER_TYPE_OSS: - return getOssVolumeMuteStatus(); -#endif - case VOLUME_MIXER_TYPE_SOFTWARE: - return getSoftwareVolumeMuteStatus(); - default: - return 0; - break; - } -} - -int setVolumeMuteStatus(FILE * fp, int status) { - switch(volume_mixerType) { -#ifdef HAVE_ALSA - case VOLUME_MIXER_TYPE_ALSA: - return setAlsaVolumeMuteStatus(fp,status); -#endif -#ifdef HAVE_OSS - case VOLUME_MIXER_TYPE_OSS: - return setOssVolumeMuteStatus(fp,status); -#endif - case VOLUME_MIXER_TYPE_SOFTWARE: - return setSoftwareVolumeMuteStatus(fp,status); - default: - return 0; - break; - } -} diff --git a/src/volume.h b/src/volume.h index 922512e2e..efd4e158c 100644 --- a/src/volume.h +++ b/src/volume.h @@ -37,8 +37,4 @@ int getVolumeLevel(); int changeVolumeLevel(FILE * fp, int change, int rel); -int getVolumeMuteStatus(); - -int setVolumeMuteStatus(FILE * fp, int status); - #endif |