diff options
-rw-r--r-- | src/command.c | 22 | ||||
-rw-r--r-- | src/volume.c | 12 | ||||
-rw-r--r-- | src/volume.h | 3 |
3 files changed, 22 insertions, 15 deletions
diff --git a/src/command.c b/src/command.c index 1a019b830..535c3638c 100644 --- a/src/command.c +++ b/src/command.c @@ -1039,33 +1039,39 @@ handle_listall(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) static enum command_return handle_volume(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) { - int change, ret; + int change; + bool success; if (!check_int(client, &change, argv[1], need_integer)) return COMMAND_RETURN_ERROR; - ret = volume_level_change(change, 1); - if (ret == -1) + success = volume_level_change(change, true); + if (!success) { command_error(client, ACK_ERROR_SYSTEM, "problems setting volume"); + return COMMAND_RETURN_ERROR; + } - return ret; + return COMMAND_RETURN_OK; } static enum command_return handle_setvol(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) { - int level, ret; + int level; + bool success; if (!check_int(client, &level, argv[1], need_integer)) return COMMAND_RETURN_ERROR; - ret = volume_level_change(level, 0); - if (ret == -1) + success = volume_level_change(level, 0); + if (!success) { command_error(client, ACK_ERROR_SYSTEM, "problems setting volume"); + return COMMAND_RETURN_ERROR; + } - return ret; + return COMMAND_RETURN_OK; } static enum command_return diff --git a/src/volume.c b/src/volume.c index 5ce842251..8e97280a4 100644 --- a/src/volume.c +++ b/src/volume.c @@ -215,7 +215,7 @@ int volume_level_get(void) return -1; } -static int software_volume_change(int change, int rel) +static bool software_volume_change(int change, bool rel) { int new = change; @@ -240,10 +240,10 @@ static int software_volume_change(int change, int rel) setPlayerSoftwareVolume(new); - return 0; + return true; } -static int hardware_volume_change(int change, int rel) +static bool hardware_volume_change(int change, bool rel) { int device, count; @@ -254,10 +254,10 @@ static int hardware_volume_change(int change, int rel) for (device=0; device<count ;device++) { mixer_control_setvol(device, change, rel); } - return 0; + return true; } -int volume_level_change(int change, int rel) +bool volume_level_change(int change, bool rel) { idle_add(IDLE_MIXER); @@ -267,7 +267,7 @@ int volume_level_change(int change, int rel) case VOLUME_MIXER_TYPE_SOFTWARE: return software_volume_change(change, rel); default: - return 0; + return true; } } diff --git a/src/volume.h b/src/volume.h index 435e32711..99d31da4e 100644 --- a/src/volume.h +++ b/src/volume.h @@ -20,6 +20,7 @@ #ifndef MPD_VOLUME_H #define MPD_VOLUME_H +#include <stdbool.h> #include <stdio.h> #define VOLUME_MIXER_OSS "oss" @@ -34,7 +35,7 @@ void volume_finish(void); int volume_level_get(void); -int volume_level_change(int change, int rel); +bool volume_level_change(int change, bool rel); void read_sw_volume_state(FILE *fp); |