mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
setvolume: detailed usage info, print mute state
* Describe parameters in "usage". * Change -m to explicitely mute, instead of toggling mute. * Add -t to toggle muting, -u to unmute. * Add long version options: --mute, --unmute, --togglemute --increase, --decrease * Accept a step size as additional parameter to in/decrease, without it, the step size is 3 dB. * Print muting state when toggling or un/muting. * Update shortcut_settings to use "setvolume -t" to toggle muting. Change-Id: Iacad5bcf4a40a6056c85161ac45379015392420c Reviewed-on: https://review.haiku-os.org/c/haiku/+/5976 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: nephele <nep@packageloss.eu>
This commit is contained in:
parent
f6c51a5dc4
commit
8040281d80
Binary file not shown.
@ -71,27 +71,53 @@ main(int argc, char **argv)
|
|||||||
float volume = 0.0;
|
float volume = 0.0;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
if (strcmp(argv[1], "-m") == 0) {
|
if (strcmp(argv[1], "-m") == 0 || strcmp(argv[1], "--mute") == 0) {
|
||||||
|
int32 muted = 1;
|
||||||
|
mute->SetValue(&muted, sizeof(int32), system_time());
|
||||||
|
printf("Muted\n");
|
||||||
|
return 0;
|
||||||
|
} else if (strcmp(argv[1], "-u") == 0 || strcmp(argv[1], "--unmute") == 0) {
|
||||||
|
int32 muted = 0;
|
||||||
|
mute->SetValue(&muted, sizeof(int32), system_time());
|
||||||
|
printf("Unmuted\n");
|
||||||
|
return 0;
|
||||||
|
} else if (strcmp(argv[1], "-t") == 0 || strcmp(argv[1], "--togglemute") == 0) {
|
||||||
int32 muted = 0;
|
int32 muted = 0;
|
||||||
bigtime_t lastChange = 0;
|
bigtime_t lastChange = 0;
|
||||||
size_t size = sizeof(int32);
|
size_t size = sizeof(int32);
|
||||||
mute->GetValue(&muted, &size, &lastChange);
|
mute->GetValue(&muted, &size, &lastChange);
|
||||||
muted = 1 - muted;
|
muted = 1 - muted;
|
||||||
mute->SetValue(&muted, sizeof(int32), system_time());
|
mute->SetValue(&muted, sizeof(int32), system_time());
|
||||||
|
printf("%s\n", muted ? "Muted" : "Unmuted");
|
||||||
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
if (strcmp(argv[1], "-i") == 0 || strcmp(argv[1], "-d") == 0) {
|
if (strcmp(argv[1], "-i") == 0 || strcmp(argv[1], "-d") == 0
|
||||||
|
|| strcmp(argv[1], "--increase") == 0 || strcmp(argv[1], "--decrease") == 0) {
|
||||||
bigtime_t when;
|
bigtime_t when;
|
||||||
size_t size = sizeof(volume);
|
size_t size = sizeof(volume);
|
||||||
gain->GetValue(&volume, &size, &when);
|
gain->GetValue(&volume, &size, &when);
|
||||||
if (strcmp(argv[1], "-i") == 0)
|
size_t step = 3;
|
||||||
volume += 3;
|
if (argc > 2)
|
||||||
|
step = atoi(argv[2]);
|
||||||
|
if (strcmp(argv[1], "-i") == 0 || strcmp(argv[1], "--increase") == 0)
|
||||||
|
volume += step;
|
||||||
else
|
else
|
||||||
volume -= 3;
|
volume -= step;
|
||||||
} else {
|
} else {
|
||||||
char *end;
|
char *end;
|
||||||
volume = strtod(argv[1], &end);
|
volume = strtod(argv[1], &end);
|
||||||
if (end == argv[1]) {
|
if (end == argv[1]) {
|
||||||
fprintf(stderr, "usage: %s [<volume> | -i | -d | -m ]\n", sProgramName);
|
fprintf(stderr,
|
||||||
|
"Usage: %s <volume> | [options]\n"
|
||||||
|
"Sets the system volume to the specified value in dB.\n"
|
||||||
|
"Alternatively there are these options:\n"
|
||||||
|
" -m --mute\n"
|
||||||
|
" -u --unmute\n"
|
||||||
|
" -t --togglemute\ttoggles muting\n"
|
||||||
|
" -i --increase x\tincreases volume by x dB\n"
|
||||||
|
" -d --decrease x\tdecreases volume by x dB\n"
|
||||||
|
"\t\t\tx defaults to 3 if not supplied\n" ,
|
||||||
|
sProgramName);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -105,7 +131,6 @@ main(int argc, char **argv)
|
|||||||
gain->SetValue(&volume, sizeof(volume), system_time());
|
gain->SetValue(&volume, sizeof(volume), system_time());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bigtime_t when;
|
bigtime_t when;
|
||||||
size_t size = sizeof(volume);
|
size_t size = sizeof(volume);
|
||||||
gain->GetValue(&volume, &size, &when);
|
gain->GetValue(&volume, &size, &when);
|
||||||
|
Loading…
Reference in New Issue
Block a user