aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWarren Dukes <warren.dukes@gmail.com>2004-11-02 23:08:00 +0000
committerWarren Dukes <warren.dukes@gmail.com>2004-11-02 23:08:00 +0000
commit78c5d884d2c687034d18e4cb77c7c116e1c97b84 (patch)
treeb03bb3b356709672de05453ff1e8c48e02286015
parent44eb26c16fb66908f75d395e63a16c343c28e00d (diff)
downloadmpd-78c5d884d2c687034d18e4cb77c7c116e1c97b84.tar.gz
mpd-78c5d884d2c687034d18e4cb77c7c116e1c97b84.tar.xz
mpd-78c5d884d2c687034d18e4cb77c7c116e1c97b84.zip
new command "devices", prints devices and their states
git-svn-id: https://svn.musicpd.org/mpd/trunk@2486 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--TODO2
-rw-r--r--src/audio.c15
-rw-r--r--src/audio.h2
-rw-r--r--src/command.c14
4 files changed, 26 insertions, 7 deletions
diff --git a/TODO b/TODO
index 5a0a8cb95..455103652 100644
--- a/TODO
+++ b/TODO
@@ -15,8 +15,6 @@
*) Optimize read() on clients
-*) Make each audioOutput device enable/disable by the client
-
*) add command
*) command that takes file/url's (no directory's) and returns the songid
*) allow to specify position in playlist where to insert song(s)
diff --git a/src/audio.c b/src/audio.c
index 01c883d6c..24d815961 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -197,9 +197,7 @@ void finishAudioDriver() {
free(audioOutputArray);
audioOutputArray = NULL;
- /* don't set to zero cause we're gonna use this for enabling
- and disabling devices */
- /*audioOutputArraySize = 0;*/
+ audioOutputArraySize = 0;
}
int isCurrentAudioFormat(AudioFormat * audioFormat) {
@@ -318,3 +316,14 @@ int disableAudioDevice(FILE * fp, int device) {
return 0;
}
+
+void printAudioDevices(FILE * fp) {
+ int i;
+
+ for(i = 0; i < audioOutputArraySize; i++) {
+ myfprintf(fp, "deviceid: %i\n", i);
+ myfprintf(fp, "devicename: %s\n", audioOutputArray[i]->name);
+ myfprintf(fp, "deviceenabled: %i\n",
+ (int)pdAudioDevicesEnabled[i]);
+ }
+}
diff --git a/src/audio.h b/src/audio.h
index 791b7889f..9dac621a1 100644
--- a/src/audio.h
+++ b/src/audio.h
@@ -71,4 +71,6 @@ int enableAudioDevice(FILE * fp, int device);
int disableAudioDevice(FILE * fp, int device);
+void printAudioDevices(FILE * fp);
+
#endif
diff --git a/src/command.c b/src/command.c
index a98c1cf1f..d7d644cd0 100644
--- a/src/command.c
+++ b/src/command.c
@@ -82,8 +82,9 @@
#define COMMAND_URL_HANDLERS "urlhandlers"
#define COMMAND_PLCHANGES "plchanges"
#define COMMAND_CURRENTSONG "currentsong"
-#define COMMAND_ENABLE_DEV "enable_device"
-#define COMMAND_DISABLE_DEV "disable_device"
+#define COMMAND_ENABLE_DEV "enabledevice"
+#define COMMAND_DISABLE_DEV "disabledevice"
+#define COMMAND_DEVICES "devices"
#define COMMAND_STATUS_VOLUME "volume"
#define COMMAND_STATUS_STATE "state"
@@ -790,6 +791,14 @@ int handleDisableDevice(FILE * fp, unsigned int * permission,
return disableAudioDevice(fp, device);
}
+int handleDevices(FILE * fp, unsigned int * permission, int argArrayLength,
+ char ** argArray)
+{
+ printAudioDevices(fp);
+
+ return 0;
+}
+
void initCommands() {
commandList = makeList(free);
@@ -840,6 +849,7 @@ void initCommands() {
addCommand(COMMAND_PLCHANGES ,PERMISSION_READ, 1, 1,handlePlaylistChanges,NULL);
addCommand(COMMAND_ENABLE_DEV ,PERMISSION_ADMIN, 1, 1,handleEnableDevice,NULL);
addCommand(COMMAND_DISABLE_DEV ,PERMISSION_ADMIN, 1, 1,handleDisableDevice,NULL);
+ addCommand(COMMAND_DEVICES ,PERMISSION_ADMIN, 0, 0,handleDevices,NULL);
sortList(commandList);
}