Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
d4352ac9
Commit
d4352ac9
authored
Mar 15, 2005
by
Warren Dukes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
undo change 3081
git-svn-id:
https://svn.musicpd.org/mpd/trunk@3085
09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent
f7235170
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
9 additions
and
158 deletions
+9
-158
AUTHORS
AUTHORS
+7
-16
TODO
TODO
+2
-6
command.c
src/command.c
+0
-18
volume.c
src/volume.c
+0
-114
volume.h
src/volume.h
+0
-4
No files found.
AUTHORS
View file @
d4352ac9
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
TODO
View file @
d4352ac9
...
...
@@ -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
----
...
...
src/command.c
View file @
d4352ac9
...
...
@@ -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
);
...
...
src/volume.c
View file @
d4352ac9
...
...
@@ -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
;
}
}
src/volume.h
View file @
d4352ac9
...
...
@@ -37,8 +37,4 @@ int getVolumeLevel();
int
changeVolumeLevel
(
FILE
*
fp
,
int
change
,
int
rel
);
int
getVolumeMuteStatus
();
int
setVolumeMuteStatus
(
FILE
*
fp
,
int
status
);
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment