OutputCommands.cxx 2.27 KB
Newer Older
1
/*
2
 * Copyright (C) 2003-2013 The Music Player Daemon Project
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
 * http://www.musicpd.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

#include "config.h"
#include "OutputCommands.hxx"
22
#include "OutputPrint.hxx"
23
#include "OutputCommand.hxx"
Max Kellermann's avatar
Max Kellermann committed
24 25
#include "protocol/Result.hxx"
#include "protocol/ArgParser.hxx"
26 27 28

#include <string.h>

29
CommandResult
30
handle_enableoutput(Client &client, gcc_unused int argc, char *argv[])
31 32 33 34 35
{
	unsigned device;
	bool ret;

	if (!check_unsigned(client, &device, argv[1]))
36
		return CommandResult::ERROR;
37 38 39 40 41

	ret = audio_output_enable_index(device);
	if (!ret) {
		command_error(client, ACK_ERROR_NO_EXIST,
			      "No such audio output");
42
		return CommandResult::ERROR;
43 44
	}

45
	return CommandResult::OK;
46 47
}

48
CommandResult
49
handle_disableoutput(Client &client, gcc_unused int argc, char *argv[])
50 51 52 53 54
{
	unsigned device;
	bool ret;

	if (!check_unsigned(client, &device, argv[1]))
55
		return CommandResult::ERROR;
56 57 58 59 60

	ret = audio_output_disable_index(device);
	if (!ret) {
		command_error(client, ACK_ERROR_NO_EXIST,
			      "No such audio output");
61
		return CommandResult::ERROR;
62 63
	}

64
	return CommandResult::OK;
65 66
}

67
CommandResult
68
handle_toggleoutput(Client &client, gcc_unused int argc, char *argv[])
69 70 71
{
	unsigned device;
	if (!check_unsigned(client, &device, argv[1]))
72
		return CommandResult::ERROR;
73 74 75 76

	if (!audio_output_toggle_index(device)) {
		command_error(client, ACK_ERROR_NO_EXIST,
			      "No such audio output");
77
		return CommandResult::ERROR;
78 79
	}

80
	return CommandResult::OK;
81 82
}

83
CommandResult
84
handle_devices(Client &client,
85
	       gcc_unused int argc, gcc_unused char *argv[])
86 87 88
{
	printAudioDevices(client);

89
	return CommandResult::OK;
90
}