From 78c5d884d2c687034d18e4cb77c7c116e1c97b84 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Tue, 2 Nov 2004 23:08:00 +0000 Subject: new command "devices", prints devices and their states git-svn-id: https://svn.musicpd.org/mpd/trunk@2486 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- TODO | 2 -- src/audio.c | 15 ++++++++++++--- src/audio.h | 2 ++ src/command.c | 14 ++++++++++++-- 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); } -- cgit v1.2.3