Hi all,
I made a tiny patch to extend the SVDRP VOLU command.
Up until now VDR only had an option to _toggle_ the current audio muted status,
but no options to force the audio muted status on or off. I want to mute the
audio via SVDRP and unmute it again later.
My usecase: I'm running mpd on the same host as VDR, if I start playing music
with mpd from my tablet I can mute VDR automatically with a shell script and
unmute it again after stopping the music.
Using the (already implemented) VOLU 0 command also mutes the audio, but the
previous audio volume gets lost, so you cannot unmute audio again and return to
the previous volume.
Best regards
Sebastian
--- vdr-1.7.41/svdrp.c 2013-02-17 14:17:36.000000000 +0100
+++ vdr-1.7.41.mute/svdrp.c 2013-03-21 20:30:53.440746278 +0100
@@ -317,12 +317,13 @@
"UPDR\n"
" Initiates a re-read of the recordings directory, which is the SVDRP\n"
" equivalent to 'touch .update'.",
- "VOLU [ <number> | + | - | mute ]\n"
+ "VOLU [ <number> | + | - | mute | muteon | muteoff ]\n"
" Set the audio volume to the given number (which is limited to the range\n"
" 0...255). If the special options '+' or '-' are given, the volume will\n"
" be turned up or down, respectively. The option 'mute' will toggle the\n"
- " audio muting. If no option is given, the current audio volume level will\n"
- " be returned.",
+ " audio muting, 'muteon' will turn muting on, 'muteoff' will turn muting\n"
+ " off. If no option is given, the current audio volume level will be\n"
+ " returned.",
"QUIT\n"
" Exit vdr (SVDRP).\n"
" You can also hit Ctrl-D to exit.",
@@ -1609,6 +1610,10 @@
cDevice::PrimaryDevice()->SetVolume(-VOLUMEDELTA);
else if (strcasecmp(Option, "MUTE") == 0)
cDevice::PrimaryDevice()->ToggleMute();
+ else if ((strcasecmp(Option, "MUTEON") == 0)&&(!cDevice::PrimaryDevice()->IsMute()))
+ cDevice::PrimaryDevice()->ToggleMute();
+ else if ((strcasecmp(Option, "MUTEOFF") == 0)&&(cDevice::PrimaryDevice()->IsMute()))
+ cDevice::PrimaryDevice()->ToggleMute();
else {
Reply(501, "Unknown option: \"%s\"", Option);
return;
--- vdr-1.7.41/svdrp.c 2013-02-17 14:17:36.000000000 +0100
+++ vdr-1.7.41.mute/svdrp.c 2013-03-21 20:30:53.440746278 +0100
@@ -317,12 +317,13 @@
"UPDR\n"
" Initiates a re-read of the recordings directory, which is the SVDRP\n"
" equivalent to 'touch .update'.",
- "VOLU [ <number> | + | - | mute ]\n"
+ "VOLU [ <number> | + | - | mute | muteon | muteoff ]\n"
" Set the audio volume to the given number (which is limited to the range\n"
" 0...255). If the special options '+' or '-' are given, the volume will\n"
" be turned up or down, respectively. The option 'mute' will toggle the\n"
- " audio muting. If no option is given, the current audio volume level will\n"
- " be returned.",
+ " audio muting, 'muteon' will turn muting on, 'muteoff' will turn muting\n"
+ " off. If no option is given, the current audio volume level will be\n"
+ " returned.",
"QUIT\n"
" Exit vdr (SVDRP).\n"
" You can also hit Ctrl-D to exit.",
@@ -1609,6 +1610,10 @@
cDevice::PrimaryDevice()->SetVolume(-VOLUMEDELTA);
else if (strcasecmp(Option, "MUTE") == 0)
cDevice::PrimaryDevice()->ToggleMute();
+ else if ((strcasecmp(Option, "MUTEON") == 0)&&(!cDevice::PrimaryDevice()->IsMute()))
+ cDevice::PrimaryDevice()->ToggleMute();
+ else if ((strcasecmp(Option, "MUTEOFF") == 0)&&(cDevice::PrimaryDevice()->IsMute()))
+ cDevice::PrimaryDevice()->ToggleMute();
else {
Reply(501, "Unknown option: \"%s\"", Option);
return;
_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr