diff options
Diffstat (limited to 'src')
37 files changed, 223 insertions, 197 deletions
diff --git a/src/audioOutput.c b/src/audioOutput.c index 43d073b48..d2fb2d776 100644 --- a/src/audioOutput.c +++ b/src/audioOutput.c @@ -67,9 +67,9 @@ void finishAudioOutputPlugins(void) int initAudioOutput(AudioOutput *ao, ConfigParam * param) { void *data = NULL; - char *name = NULL; + const char *name = NULL; char *format = NULL; - char *type = NULL; + const char *type = NULL; BlockParam *bp = NULL; AudioOutputPlugin *plugin = NULL; diff --git a/src/audioOutput.h b/src/audioOutput.h index 6c50776c2..3953d2621 100644 --- a/src/audioOutput.h +++ b/src/audioOutput.h @@ -54,8 +54,8 @@ typedef void (*AudioOutputSendMetadataFunc) (AudioOutput * audioOutput, struct _AudioOutput { int open; - char *name; - char *type; + const char *name; + const char *type; AudioOutputFinishDriverFunc finishDriverFunc; AudioOutputOpenDeviceFunc openDeviceFunc; @@ -77,7 +77,7 @@ struct _AudioOutput { }; typedef struct _AudioOutputPlugin { - char *name; + const char *name; AudioOutputTestDefaultDeviceFunc testDefaultDeviceFunc; AudioOutputInitDriverFunc initDriverFunc; diff --git a/src/audioOutputs/audioOutput_shout.c b/src/audioOutputs/audioOutput_shout.c index 236e02b76..beacfeef9 100644 --- a/src/audioOutputs/audioOutput_shout.c +++ b/src/audioOutputs/audioOutput_shout.c @@ -116,7 +116,7 @@ static int myShout_initDriver(AudioOutput * audioOutput, ConfigParam * param) char *host; char *mount; char *passwd; - char *user; + const char *user; char *name; BlockParam *blockParam; int public; @@ -388,8 +388,13 @@ static void myShout_closeDevice(AudioOutput * audioOutput) audioOutput->open = 0; } -#define addTag(name, value) { \ - if(value) vorbis_comment_add_tag(&(sd->vc), name, value); \ +static void addTag(ShoutData *sd, const char *name, char *value) +{ + if (value) { + union const_hack u; + u.in = name; + vorbis_comment_add_tag(&(sd->vc), u.out, value); + } } static void copyTagToVorbisComment(ShoutData * sd) @@ -400,13 +405,13 @@ static void copyTagToVorbisComment(ShoutData * sd) for (i = 0; i < sd->tag->numOfItems; i++) { switch (sd->tag->items[i].type) { case TAG_ITEM_ARTIST: - addTag("ARTIST", sd->tag->items[i].value); + addTag(sd, "ARTIST", sd->tag->items[i].value); break; case TAG_ITEM_ALBUM: - addTag("ALBUM", sd->tag->items[i].value); + addTag(sd, "ALBUM", sd->tag->items[i].value); break; case TAG_ITEM_TITLE: - addTag("TITLE", sd->tag->items[i].value); + addTag(sd, "TITLE", sd->tag->items[i].value); break; } } diff --git a/src/charConv.c b/src/charConv.c index 306ee9999..895a695cd 100644 --- a/src/charConv.c +++ b/src/charConv.c @@ -42,7 +42,7 @@ static mpd_sint8 char_conv_latin1ToUtf8; static void closeCharSetConversion(void); -int setCharSetConversion(char *to, char *from) +int setCharSetConversion(const char *to, const char *from) { if (char_conv_to && char_conv_from) { if (char_conv_latin1ToUtf8 && @@ -93,7 +93,7 @@ int setCharSetConversion(char *to, char *from) return -1; } -char *char_conv_str(char *dest, char *string) +char *char_conv_str(char *dest, const char *string) { if (!char_conv_to) return NULL; diff --git a/src/charConv.h b/src/charConv.h index d50e84520..a416b5c8f 100644 --- a/src/charConv.h +++ b/src/charConv.h @@ -21,8 +21,8 @@ #include "../config.h" -int setCharSetConversion(char *to, char *from); +int setCharSetConversion(const char *to, const char *from); -char *char_conv_str(char *dest, char *string); +char *char_conv_str(char *dest, const char *string); #endif diff --git a/src/command.c b/src/command.c index eddb49af0..78eb9a597 100644 --- a/src/command.c +++ b/src/command.c @@ -128,7 +128,7 @@ typedef int (*CommandListHandlerFunction) /* if min: -1 don't check args * * if max: -1 no max args */ struct _CommandEntry { - char *cmd; + const char *cmd; int min; int max; int reqPermission; @@ -136,7 +136,6 @@ struct _CommandEntry { CommandListHandlerFunction listHandler; }; - /* this should really be "need a non-negative integer": */ static const char need_positive[] = "need a positive integer"; /* no-op */ @@ -146,7 +145,7 @@ static const char need_integer[] = "need an integer"; static const char check_boolean[] = "\"%s\" is not 0 or 1"; static const char check_non_negative[] = "\"%s\" is not an integer >= 0"; -static char *current_command; +static const char *current_command; static int command_listNum; static CommandEntry *getCommandEntryFromString(char *string, int *permission); @@ -215,7 +214,7 @@ static int mpd_fprintf__ check_int(int fd, int *dst, return 0; } -static void addCommand(char *name, +static void addCommand(const char *name, int reqPermission, int minargs, int maxargs, @@ -291,7 +290,7 @@ static int handlePause(int fd, int *permission, int argc, char *argv[]) static int commandStatus(int fd, int *permission, int argc, char *argv[]) { - char *state = NULL; + const char *state = NULL; int updateJobId; int song; @@ -450,7 +449,7 @@ static int handleListPlaylistInfo(int fd, int *permission, static int handleLsInfo(int fd, int *permission, int argc, char *argv[]) { - char *path = ""; + const char *path = ""; if (argc == 2) path = argv[1]; diff --git a/src/conf.c b/src/conf.c index 6b3973a1d..10d0f9d31 100644 --- a/src/conf.c +++ b/src/conf.c @@ -121,7 +121,7 @@ static void freeConfigEntry(ConfigEntry * entry) free(entry); } -static void registerConfigParam(char *name, int repeatable, int block) +static void registerConfigParam(const char *name, int repeatable, int block) { ConfigEntry *entry; @@ -253,7 +253,7 @@ static ConfigParam *readConfigBlock(FILE * fp, int *count, char *string) return ret; } -void readConf(char *file) +void readConf(const char *file) { FILE *fp; char string[MAX_STRING_SIZE + 1]; @@ -321,7 +321,7 @@ void readConf(char *file) fclose(fp); } -ConfigParam *getNextConfigParam(char *name, ConfigParam * last) +ConfigParam *getNextConfigParam(const char *name, ConfigParam * last) { void *voidPtr; ConfigEntry *entry; @@ -352,7 +352,7 @@ ConfigParam *getNextConfigParam(char *name, ConfigParam * last) return param; } -char *getConfigParamValue(char *name) +char *getConfigParamValue(const char *name) { ConfigParam *param = getConfigParam(name); @@ -362,7 +362,7 @@ char *getConfigParamValue(char *name) return param->value; } -BlockParam *getBlockParam(ConfigParam * param, char *name) +BlockParam *getBlockParam(ConfigParam * param, const char *name) { BlockParam *ret = NULL; int i; @@ -381,7 +381,7 @@ BlockParam *getBlockParam(ConfigParam * param, char *name) return ret; } -ConfigParam *parseConfigFilePath(char *name, int force) +ConfigParam *parseConfigFilePath(const char *name, int force) { ConfigParam *param = getConfigParam(name); char *path; @@ -402,7 +402,7 @@ ConfigParam *parseConfigFilePath(char *name, int force) return param; } -int getBoolConfigParam(char *name, int force) +int getBoolConfigParam(const char *name, int force) { int ret; ConfigParam *param = getConfigParam(name); @@ -418,7 +418,7 @@ int getBoolConfigParam(char *name, int force) return ret; } -int getBoolBlockParam(ConfigParam *param, char *name, int force) +int getBoolBlockParam(ConfigParam *param, const char *name, int force) { int ret; BlockParam *bp = getBlockParam(param, name); diff --git a/src/conf.h b/src/conf.h index 01337d349..79b6514c6 100644 --- a/src/conf.h +++ b/src/conf.h @@ -83,22 +83,22 @@ typedef struct _ConfigParam { void initConf(void); void finishConf(void); -void readConf(char *file); +void readConf(const char *file); /* don't free the returned value set _last_ to NULL to get first entry */ -ConfigParam *getNextConfigParam(char *name, ConfigParam * last); +ConfigParam *getNextConfigParam(const char *name, ConfigParam * last); #define getConfigParam(name) getNextConfigParam(name, NULL) -char *getConfigParamValue(char *name); +char *getConfigParamValue(const char *name); -BlockParam *getBlockParam(ConfigParam * param, char *name); +BlockParam *getBlockParam(ConfigParam * param, const char *name); -ConfigParam *parseConfigFilePath(char *name, int force); +ConfigParam *parseConfigFilePath(const char *name, int force); -int getBoolConfigParam(char *name, int force); +int getBoolConfigParam(const char *name, int force); -int getBoolBlockParam(ConfigParam *param, char *name, int force); +int getBoolBlockParam(ConfigParam *param, const char *name, int force); #endif diff --git a/src/decode.c b/src/decode.c index 0ebdb9282..316cd34ba 100644 --- a/src/decode.c +++ b/src/decode.c @@ -330,7 +330,7 @@ static void decodeStart(PlayerControl * pc, OutputBuffer * cb, /* if that fails, try suffix matching the URL: */ if (plugin == NULL) { - char *s = getSuffix(dc->utf8url); + const char *s = getSuffix(dc->utf8url); next = 0; while (ret && (plugin = getInputPluginFromSuffix(s, next++))) { if (!plugin->streamDecodeFunc) @@ -356,7 +356,7 @@ static void decodeStart(PlayerControl * pc, OutputBuffer * cb, } } else { unsigned int next = 0; - char *s = getSuffix(dc->utf8url); + const char *s = getSuffix(dc->utf8url); cb->acceptMetadata = 0; while (ret && (plugin = getInputPluginFromSuffix(s, next++))) { if (!plugin->streamTypes & INPUT_PLUGIN_STREAM_FILE) diff --git a/src/directory.c b/src/directory.c index 53b864018..3bb18bf59 100644 --- a/src/directory.c +++ b/src/directory.c @@ -66,7 +66,8 @@ static volatile mpd_uint16 directory_updateJobId; static DirectoryList *newDirectoryList(void); -static int addToDirectory(Directory * directory, char *shortname, char *name); +static int addToDirectory(Directory * directory, + const char *shortname, const char *name); static void freeDirectoryList(DirectoryList * list); @@ -78,19 +79,22 @@ static int updateDirectory(Directory * directory); static void deleteEmptyDirectoriesInDirectory(Directory * directory); -static void removeSongFromDirectory(Directory * directory, char *shortname); +static void removeSongFromDirectory(Directory * directory, + const char *shortname); -static int addSubDirectoryToDirectory(Directory * directory, char *shortname, - char *name, struct stat *st); +static int addSubDirectoryToDirectory(Directory * directory, + const char *shortname, + const char *name, struct stat *st); -static Directory *getDirectoryDetails(char *name, char **shortname); +static Directory *getDirectoryDetails(const char *name, + const char **shortname); -static Directory *getDirectory(char *name); +static Directory *getDirectory(const char *name); -static Song *getSongDetails(char *file, char **shortnameRet, +static Song *getSongDetails(const char *file, const char **shortnameRet, Directory ** directoryRet); -static int updatePath(char *utf8path); +static int updatePath(const char *utf8path); static void sortDirectory(Directory * directory); @@ -251,7 +255,7 @@ static DirectoryList *newDirectoryList(void) return makeList((ListFreeDataFunc *) freeDirectory, 1); } -static Directory *newDirectory(char *dirname, Directory * parent) +static Directory *newDirectory(const char *dirname, Directory * parent) { Directory *directory; @@ -286,7 +290,7 @@ static void freeDirectoryList(DirectoryList * directoryList) freeList(directoryList); } -static void removeSongFromDirectory(Directory * directory, char *shortname) +static void removeSongFromDirectory(Directory * directory, const char *shortname) { void *song; @@ -321,7 +325,8 @@ static void deleteEmptyDirectoriesInDirectory(Directory * directory) 0 -> no error, but nothing updated 1 -> no error, and stuff updated */ -static int updateInDirectory(Directory * directory, char *shortname, char *name) +static int updateInDirectory(Directory * directory, + const char *shortname, const char *name) { void *song; void *subDir; @@ -415,7 +420,8 @@ static int removeDeletedFromDirectory(char *path_max_tmp, Directory * directory) return ret; } -static Directory *addDirectoryPathToDB(char *utf8path, char **shortname) +static Directory *addDirectoryPathToDB(const char *utf8path, + const char **shortname) { char path_max_tmp[MPD_PATH_MAX]; char *parent; @@ -456,7 +462,7 @@ static Directory *addDirectoryPathToDB(char *utf8path, char **shortname) return (Directory *) directory; } -static Directory *addParentPathToDB(char *utf8path, char **shortname) +static Directory *addParentPathToDB(const char *utf8path, const char **shortname) { char *parent; char path_max_tmp[MPD_PATH_MAX]; @@ -484,12 +490,12 @@ static Directory *addParentPathToDB(char *utf8path, char **shortname) 0 -> no error, but nothing updated 1 -> no error, and stuff updated */ -static int updatePath(char *utf8path) +static int updatePath(const char *utf8path) { Directory *directory; Directory *parentDirectory; Song *song; - char *shortname; + const char *shortname; char *path = sanitizePathDup(utf8path); time_t mtime; int ret = 0; @@ -575,7 +581,7 @@ static int updatePath(char *utf8path) return ret; } -static const char *opendir_path(char *path_max_tmp, char *dirname) +static const char *opendir_path(char *path_max_tmp, const char *dirname) { if (*dirname != '\0') return rmp2amp_r(path_max_tmp, @@ -591,7 +597,7 @@ static const char *opendir_path(char *path_max_tmp, char *dirname) static int updateDirectory(Directory * directory) { DIR *dir; - char *dirname = getDirectoryPath(directory); + const char *dirname = getDirectoryPath(directory); struct dirent *ent; char path_max_tmp[MPD_PATH_MAX]; int ret = 0; @@ -639,7 +645,7 @@ static int updateDirectory(Directory * directory) static int exploreDirectory(Directory * directory) { DIR *dir; - char *dirname = getDirectoryPath(directory); + const char *dirname = getDirectoryPath(directory); struct dirent *ent; char path_max_tmp[MPD_PATH_MAX]; int ret = 0; @@ -705,8 +711,9 @@ static int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device) return 0; } -static int addSubDirectoryToDirectory(Directory * directory, char *shortname, - char *name, struct stat *st) +static int addSubDirectoryToDirectory(Directory * directory, + const char *shortname, + const char *name, struct stat *st) { Directory *subDirectory; @@ -726,7 +733,8 @@ static int addSubDirectoryToDirectory(Directory * directory, char *shortname, return 1; } -static int addToDirectory(Directory * directory, char *shortname, char *name) +static int addToDirectory(Directory * directory, + const char *shortname, const char *name) { struct stat st; @@ -758,7 +766,7 @@ void closeMp3Directory(void) freeDirectory(mp3rootDirectory); } -static Directory *findSubDirectory(Directory * directory, char *name) +static Directory *findSubDirectory(Directory * directory, const char *name) { void *subDirectory; char *duplicated = xstrdup(name); @@ -779,7 +787,7 @@ static Directory *findSubDirectory(Directory * directory, char *name) return NULL; } -int isRootDirectory(char *name) +int isRootDirectory(const char *name) { if (name == NULL || name[0] == '\0' || strcmp(name, "/") == 0) { return 1; @@ -787,8 +795,8 @@ int isRootDirectory(char *name) return 0; } -static Directory *getSubDirectory(Directory * directory, char *name, - char **shortname) +static Directory *getSubDirectory(Directory * directory, const char *name, + const char **shortname) { Directory *subDirectory; int len; @@ -811,16 +819,16 @@ static Directory *getSubDirectory(Directory * directory, char *name, return getSubDirectory(subDirectory, &(name[len]), shortname); } -static Directory *getDirectoryDetails(char *name, char **shortname) +static Directory *getDirectoryDetails(const char *name, const char **shortname) { *shortname = NULL; return getSubDirectory(mp3rootDirectory, name, shortname); } -static Directory *getDirectory(char *name) +static Directory *getDirectory(const char *name) { - char *shortname; + const char *shortname; return getSubDirectory(mp3rootDirectory, name, &shortname); } @@ -840,7 +848,7 @@ static int printDirectoryList(int fd, DirectoryList * directoryList) return 0; } -int printDirectoryInfo(int fd, char *name) +int printDirectoryInfo(int fd, const char *name) { Directory *directory; @@ -1258,7 +1266,7 @@ void initMp3Directory(void) stats.dbPlayTime = sumSongTimesIn(STDERR_FILENO, NULL); } -static Song *getSongDetails(char *file, char **shortnameRet, +static Song *getSongDetails(const char *file, const char **shortnameRet, Directory ** directoryRet) { void *song = NULL; diff --git a/src/directory.h b/src/directory.h index b1482988f..5782dd2cc 100644 --- a/src/directory.h +++ b/src/directory.h @@ -51,9 +51,9 @@ void initMp3Directory(void); void closeMp3Directory(void); -int isRootDirectory(char *name); +int isRootDirectory(const char *name); -int printDirectoryInfo(int fd, char *dirname); +int printDirectoryInfo(int fd, const char *dirname); int checkDirectoryDB(void); diff --git a/src/inputPlugin.c b/src/inputPlugin.c index e9c6d4a70..18d869268 100644 --- a/src/inputPlugin.c +++ b/src/inputPlugin.c @@ -44,7 +44,7 @@ void unloadInputPlugin(InputPlugin * inputPlugin) deleteFromList(inputPlugin_list, inputPlugin->name); } -static int stringFoundInStringArray(char **array, char *suffix) +static int stringFoundInStringArray(const char *const*array, const char *suffix) { while (array && *array) { if (strcasecmp(*array, suffix) == 0) @@ -55,7 +55,7 @@ static int stringFoundInStringArray(char **array, char *suffix) return 0; } -InputPlugin *getInputPluginFromSuffix(char *suffix, unsigned int next) +InputPlugin *getInputPluginFromSuffix(const char *suffix, unsigned int next) { static ListNode *pos; ListNode *node; @@ -84,7 +84,7 @@ InputPlugin *getInputPluginFromSuffix(char *suffix, unsigned int next) return NULL; } -InputPlugin *getInputPluginFromMimeType(char *mimeType, unsigned int next) +InputPlugin *getInputPluginFromMimeType(const char *mimeType, unsigned int next) { static ListNode *pos; ListNode *node; @@ -107,7 +107,7 @@ InputPlugin *getInputPluginFromMimeType(char *mimeType, unsigned int next) return NULL; } -InputPlugin *getInputPluginFromName(char *name) +InputPlugin *getInputPluginFromName(const char *name) { void *plugin = NULL; @@ -120,7 +120,7 @@ void printAllInputPluginSuffixes(FILE * fp) { ListNode *node = inputPlugin_list->firstNode; InputPlugin *plugin; - char **suffixes; + const char *const*suffixes; while (node) { plugin = (InputPlugin *) node->data; diff --git a/src/inputPlugin.h b/src/inputPlugin.h index ecb1b9801..c643cbdc2 100644 --- a/src/inputPlugin.h +++ b/src/inputPlugin.h @@ -60,7 +60,7 @@ typedef int (*InputPlugin_fileDecodeFunc) (OutputBuffer *, DecoderControl *, typedef MpdTag *(*InputPlugin_tagDupFunc) (char *file); typedef struct _InputPlugin { - char *name; + const char *name; InputPlugin_initFunc initFunc; InputPlugin_finishFunc finishFunc; InputPlugin_tryDecodeFunc tryDecodeFunc; @@ -72,8 +72,8 @@ typedef struct _InputPlugin { unsigned char streamTypes; /* last element in these arrays must always be a NULL: */ - char **suffixes; - char **mimeTypes; + const char *const*suffixes; + const char *const*mimeTypes; } InputPlugin; /* individual functions to load/unload plugins */ @@ -82,11 +82,11 @@ void unloadInputPlugin(InputPlugin * inputPlugin); /* interface for using plugins */ -InputPlugin *getInputPluginFromSuffix(char *suffix, unsigned int next); +InputPlugin *getInputPluginFromSuffix(const char *suffix, unsigned int next); -InputPlugin *getInputPluginFromMimeType(char *mimeType, unsigned int next); +InputPlugin *getInputPluginFromMimeType(const char *mimeType, unsigned int next); -InputPlugin *getInputPluginFromName(char *name); +InputPlugin *getInputPluginFromName(const char *name); void printAllInputPluginSuffixes(FILE * fp); diff --git a/src/inputPlugins/audiofile_plugin.c b/src/inputPlugins/audiofile_plugin.c index b5555f87d..1213d31e5 100644 --- a/src/inputPlugins/audiofile_plugin.c +++ b/src/inputPlugins/audiofile_plugin.c @@ -149,7 +149,7 @@ static MpdTag *audiofileTagDup(char *file) return ret; } -static char *audiofileSuffixes[] = { "wav", "au", "aiff", "aif", NULL }; +static const char *audiofileSuffixes[] = { "wav", "au", "aiff", "aif", NULL }; InputPlugin audiofilePlugin = { "audiofile", diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c index 014365921..f929ef619 100644 --- a/src/inputPlugins/flac_plugin.c +++ b/src/inputPlugins/flac_plugin.c @@ -473,11 +473,11 @@ static unsigned int oggflac_try_decode(InputStream * inStream) return (ogg_stream_type_detect(inStream) == FLAC) ? 1 : 0; } -static char *oggflac_suffixes[] = { "ogg", "oga", NULL }; -static char *oggflac_mime_types[] = { "audio/x-flac+ogg", - "application/ogg", - "application/x-ogg", - NULL }; +static const char *oggflac_suffixes[] = { "ogg", "oga", NULL }; +static const char *oggflac_mime_types[] = { "audio/x-flac+ogg", + "application/ogg", + "application/x-ogg", + NULL }; static int flac_plugin_init(void) { @@ -501,10 +501,10 @@ static int flac_plugin_init(void) #endif /* FLAC_API_VERSION_CURRENT >= 7 */ -static char *flacSuffixes[] = { "flac", NULL }; -static char *flac_mime_types[] = { "audio/x-flac", - "application/x-flac", - NULL }; +static const char *flacSuffixes[] = { "flac", NULL }; +static const char *flac_mime_types[] = { "audio/x-flac", + "application/x-flac", + NULL }; InputPlugin flacPlugin = { "flac", diff --git a/src/inputPlugins/mod_plugin.c b/src/inputPlugins/mod_plugin.c index 092d9bd55..22c364d70 100644 --- a/src/inputPlugins/mod_plugin.c +++ b/src/inputPlugins/mod_plugin.c @@ -249,7 +249,7 @@ static MpdTag *modTagDup(char *file) return ret; } -static char *modSuffixes[] = { "amf", +static const char *modSuffixes[] = { "amf", "dsm", "far", "gdm", diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c index 3e5071902..b008a1dd9 100644 --- a/src/inputPlugins/mp3_plugin.c +++ b/src/inputPlugins/mp3_plugin.c @@ -1111,8 +1111,8 @@ static MpdTag *mp3_tagDup(char *file) return ret; } -static char *mp3_suffixes[] = { "mp3", "mp2", NULL }; -static char *mp3_mimeTypes[] = { "audio/mpeg", NULL }; +static const char *mp3_suffixes[] = { "mp3", "mp2", NULL }; +static const char *mp3_mimeTypes[] = { "audio/mpeg", NULL }; InputPlugin mp3Plugin = { "mp3", diff --git a/src/inputPlugins/mpc_plugin.c b/src/inputPlugins/mpc_plugin.c index db217f888..49142aaed 100644 --- a/src/inputPlugins/mpc_plugin.c +++ b/src/inputPlugins/mpc_plugin.c @@ -317,7 +317,7 @@ static MpdTag *mpcTagDup(char *file) return ret; } -static char *mpcSuffixes[] = { "mpc", NULL }; +static const char *mpcSuffixes[] = { "mpc", NULL }; InputPlugin mpcPlugin = { "mpc", diff --git a/src/inputPlugins/oggflac_plugin.c b/src/inputPlugins/oggflac_plugin.c index e980a04b2..6b8a682d5 100644 --- a/src/inputPlugins/oggflac_plugin.c +++ b/src/inputPlugins/oggflac_plugin.c @@ -390,11 +390,11 @@ fail: return ret; } -static char *oggflac_Suffixes[] = { "ogg", NULL }; -static char *oggflac_mime_types[] = { "audio/x-flac+ogg", - "application/ogg", - "application/x-ogg", - NULL }; +static const char *oggflac_Suffixes[] = { "ogg", NULL }; +static const char *oggflac_mime_types[] = { "audio/x-flac+ogg", + "application/ogg", + "application/x-ogg", + NULL }; InputPlugin oggflacPlugin = { "oggflac", diff --git a/src/inputPlugins/oggvorbis_plugin.c b/src/inputPlugins/oggvorbis_plugin.c index 2e9342526..a2648ce62 100644 --- a/src/inputPlugins/oggvorbis_plugin.c +++ b/src/inputPlugins/oggvorbis_plugin.c @@ -80,7 +80,7 @@ static size_t ogg_read_cb(void *ptr, size_t size, size_t nmemb, void *vdata) static int ogg_seek_cb(void *vdata, ogg_int64_t offset, int whence) { - OggCallbackData *data = (OggCallbackData *) vdata; + const OggCallbackData *data = (const OggCallbackData *) vdata; if(data->dc->stop) return -1; return seekInputStream(data->inStream, offset, whence); @@ -94,12 +94,12 @@ static int ogg_close_cb(void *vdata) static long ogg_tell_cb(void *vdata) { - OggCallbackData *data = (OggCallbackData *) vdata; + const OggCallbackData *data = (const OggCallbackData *) vdata; return (long)(data->inStream->offset); } -static char *ogg_parseComment(char *comment, char *needle) +static const char *ogg_parseComment(const char *comment, const char *needle) { int len = strlen(needle); @@ -112,7 +112,7 @@ static char *ogg_parseComment(char *comment, char *needle) static void ogg_getReplayGainInfo(char **comments, ReplayGainInfo ** infoPtr) { - char *temp; + const char *temp; int found = 0; if (*infoPtr) @@ -236,7 +236,7 @@ static int oggvorbis_decode(OutputBuffer * cb, DecoderControl * dc, long test; ReplayGainInfo *replayGainInfo = NULL; char **comments; - char *errorStr; + const char *errorStr; data.inStream = inStream; data.dc = dc; @@ -383,11 +383,11 @@ static unsigned int oggvorbis_try_decode(InputStream * inStream) return (ogg_stream_type_detect(inStream) == VORBIS) ? 1 : 0; } -static char *oggvorbis_Suffixes[] = { "ogg", NULL }; -static char *oggvorbis_MimeTypes[] = { "application/ogg", - "audio/x-vorbis+ogg", - "application/x-ogg", - NULL }; +static const char *oggvorbis_Suffixes[] = { "ogg", NULL }; +static const char *oggvorbis_MimeTypes[] = { "application/ogg", + "audio/x-vorbis+ogg", + "application/x-ogg", + NULL }; InputPlugin oggvorbisPlugin = { "oggvorbis", diff --git a/src/inputStream_http.c b/src/inputStream_http.c index db8b3062a..c5dccf9dd 100644 --- a/src/inputStream_http.c +++ b/src/inputStream_http.c @@ -187,7 +187,8 @@ static char *base64Dup(char *s) return ret; } -static char *authString(char *header, char *user, char *password) +static char *authString(const char *header, + const char *user, const char *password) { char *ret = NULL; int templen; diff --git a/src/list.c b/src/list.c index 6a54d8a5f..65ad4ec98 100644 --- a/src/list.c +++ b/src/list.c @@ -63,7 +63,7 @@ List *makeList(ListFreeDataFunc * freeDataFunc, int strdupKeys) } ListNode *insertInListBeforeNode(List * list, ListNode * beforeNode, int pos, - char *key, void *data) + const char *key, void *data) { ListNode *node; @@ -126,7 +126,7 @@ ListNode *insertInListBeforeNode(List * list, ListNode * beforeNode, int pos, return node; } -ListNode *insertInList(List * list, char *key, void *data) +ListNode *insertInList(List * list, const char *key, void *data) { ListNode *node; @@ -201,7 +201,7 @@ int insertInListWithoutKey(List * list, void *data) /* if _key_ is not found, *_node_ is assigned to the node before which the info would be found */ -int findNodeInList(List * list, char *key, ListNode ** node, int *pos) +int findNodeInList(List * list, const char *key, ListNode ** node, int *pos) { long high; long low; @@ -268,7 +268,7 @@ int findNodeInList(List * list, char *key, ListNode ** node, int *pos) return 0; } -int findInList(List * list, char *key, void **data) +int findInList(List * list, const char *key, void **data) { ListNode *node; int pos; @@ -282,7 +282,7 @@ int findInList(List * list, char *key, void **data) return 0; } -int deleteFromList(List * list, char *key) +int deleteFromList(List * list, const char *key) { ListNode *tmpNode; @@ -302,6 +302,11 @@ int deleteFromList(List * list, char *key) return 1; } +static void free_const_string(const char *p) +{ + free((char *)p); +} + void deleteNodeFromList(List * list, ListNode * node) { assert(list != NULL); @@ -322,7 +327,7 @@ void deleteNodeFromList(List * list, ListNode * node) } if (list->strdupKeys) - free(node->key); + free_const_string(node->key); free(node); list->numberOfNodes--; @@ -349,7 +354,7 @@ void freeList(void *list) while (tmpNode != NULL) { tmpNode2 = tmpNode->nextNode; if (((List *) list)->strdupKeys) - free(tmpNode->key); + free_const_string(tmpNode->key); if (((List *) list)->freeDataFunc) { ((List *) list)->freeDataFunc(tmpNode->data); } @@ -362,7 +367,7 @@ void freeList(void *list) static void swapNodes(ListNode * nodeA, ListNode * nodeB) { - char *key; + const char *key; void *data; assert(nodeA != NULL); @@ -408,7 +413,7 @@ static void quickSort(ListNode ** nodesArray, long start, long end) ListNode *node; long pivot; ListNode *pivotNode; - char *pivotKey; + const char *pivotKey; List *startList = makeList(free, 0); List *endList = makeList(free, 0); diff --git a/src/list.h b/src/list.h index 62c40aef7..6aca5f503 100644 --- a/src/list.h +++ b/src/list.h @@ -30,7 +30,7 @@ typedef void ListFreeDataFunc(void *); typedef struct _ListNode { /* used to identify node (ie. when using findInList) */ - char *key; + const char *key; /* data store in node */ void *data; /* next node in list */ @@ -69,10 +69,10 @@ List *makeList(ListFreeDataFunc * freeDataFunc, int strdupKeys); * _data_ -> data to be inserted in list * returns 1 if successful, 0 otherwise */ -ListNode *insertInList(List * list, char *key, void *data); +ListNode *insertInList(List * list, const char *key, void *data); ListNode *insertInListBeforeNode(List * list, ListNode * beforeNode, - int pos, char *key, void *data); + int pos, const char *key, void *data); int insertInListWithoutKey(List * list, void *data); @@ -81,7 +81,7 @@ int insertInListWithoutKey(List * list, void *data); * _key_ -> key used to identify node to delete * returns 1 if node is found and deleted, 0 otherwise */ -int deleteFromList(List * list, char *key); +int deleteFromList(List * list, const char *key); void deleteNodeFromList(List * list, ListNode * node); @@ -93,11 +93,11 @@ void deleteNodeFromList(List * list, ListNode * node); * _data_ can be NULL * returns 1 if successful, 0 otherwise */ -int findInList(List * list, char *key, void **data); +int findInList(List * list, const char *key, void **data); /* if _key_ is not found, *_node_ is assigned to the node before which the info would be found */ -int findNodeInList(List * list, char *key, ListNode ** node, int *pos); +int findNodeInList(List * list, const char *key, ListNode ** node, int *pos); /* frees memory malloc'd for list and its nodes * _list_ -> List to be free'd diff --git a/src/locate.c b/src/locate.c index 3a4e35b84..f459d2769 100644 --- a/src/locate.c +++ b/src/locate.c @@ -24,7 +24,7 @@ #define LOCATE_TAG_FILE_KEY_OLD "filename" #define LOCATE_TAG_ANY_KEY "any" -int getLocateTagItemType(char *str) +int getLocateTagItemType(const char *str) { int i; @@ -48,7 +48,8 @@ int getLocateTagItemType(char *str) return -1; } -static int initLocateTagItem(LocateTagItem * item, char *typeStr, char *needle) +static int initLocateTagItem(LocateTagItem * item, + const char *typeStr, const char *needle) { item->tagType = getLocateTagItemType(typeStr); @@ -60,7 +61,7 @@ static int initLocateTagItem(LocateTagItem * item, char *typeStr, char *needle) return 0; } -LocateTagItem *newLocateTagItem(char *typeStr, char *needle) +LocateTagItem *newLocateTagItem(const char *typeStr, const char *needle) { LocateTagItem *ret = xmalloc(sizeof(LocateTagItem)); diff --git a/src/locate.h b/src/locate.h index c165a310a..28b2782b0 100644 --- a/src/locate.h +++ b/src/locate.h @@ -28,10 +28,10 @@ typedef struct _LocateTagItem { char *needle; } LocateTagItem; -int getLocateTagItemType(char *str); +int getLocateTagItemType(const char *str); /* returns NULL if not a known type */ -LocateTagItem *newLocateTagItem(char *typeString, char *needle); +LocateTagItem *newLocateTagItem(const char *typeString, const char *needle); /* return number of items or -1 on error */ int newLocateTagItemArrayFromArgArray(char *argArray[], int numArgs, @@ -25,14 +25,14 @@ #include "utils.h" #include "os_compat.h" -static char *remoteUrlPrefixes[] = { +static const char *remoteUrlPrefixes[] = { "http://", NULL }; int printRemoteUrlHandlers(int fd) { - char **prefixes = remoteUrlPrefixes; + const char **prefixes = remoteUrlPrefixes; while (*prefixes) { fdprintf(fd, "handler: %s\n", *prefixes); @@ -85,7 +85,7 @@ int isValidRemoteUtf8Url(char *utf8url) int isRemoteUrl(char *url) { int count = 0; - char **urlPrefixes = remoteUrlPrefixes; + const char **urlPrefixes = remoteUrlPrefixes; while (*urlPrefixes) { count++; @@ -98,7 +98,7 @@ int isRemoteUrl(char *url) return 0; } -int lsPlaylists(int fd, char *utf8path) +int lsPlaylists(int fd, const char *utf8path) { DIR *dir; struct stat st; @@ -181,11 +181,11 @@ int lsPlaylists(int fd, char *utf8path) return 0; } -int myStat(char *utf8file, struct stat *st) +int myStat(const char *utf8file, struct stat *st) { char path_max_tmp[MPD_PATH_MAX]; - char *file = utf8_to_fs_charset(path_max_tmp, utf8file); - char *actualFile = file; + const char *file = utf8_to_fs_charset(path_max_tmp, utf8file); + const char *actualFile = file; if (actualFile[0] != '/') actualFile = rmp2amp_r(path_max_tmp, file); @@ -193,7 +193,7 @@ int myStat(char *utf8file, struct stat *st) return stat(actualFile, st); } -int isFile(char *utf8file, time_t * mtime) +int isFile(const char *utf8file, time_t * mtime) { struct stat st; @@ -215,9 +215,9 @@ int isFile(char *utf8file, time_t * mtime) } /* suffixes should be ascii only characters */ -char *getSuffix(char *utf8file) +const char *getSuffix(const char *utf8file) { - char *ret = NULL; + const char *ret = NULL; while (*utf8file) { if (*utf8file == '.') @@ -228,15 +228,15 @@ char *getSuffix(char *utf8file) return ret; } -static int hasSuffix(char *utf8file, char *suffix) +static int hasSuffix(const char *utf8file, const char *suffix) { - char *s = getSuffix(utf8file); + const char *s = getSuffix(utf8file); if (s && 0 == strcmp(s, suffix)) return 1; return 0; } -int isPlaylist(char *utf8file) +int isPlaylist(const char *utf8file) { if (isFile(utf8file, NULL)) { return hasSuffix(utf8file, PLAYLIST_FILE_SUFFIX); @@ -244,7 +244,7 @@ int isPlaylist(char *utf8file) return 0; } -int isDir(char *utf8name) +int isDir(const char *utf8name) { struct stat st; @@ -257,11 +257,11 @@ int isDir(char *utf8name) return 0; } -InputPlugin *hasMusicSuffix(char *utf8file, unsigned int next) +InputPlugin *hasMusicSuffix(const char *utf8file, unsigned int next) { InputPlugin *ret = NULL; - char *s = getSuffix(utf8file); + const char *s = getSuffix(utf8file); if (s) { ret = getInputPluginFromSuffix(s, next); } else { @@ -272,7 +272,7 @@ InputPlugin *hasMusicSuffix(char *utf8file, unsigned int next) return ret; } -InputPlugin *isMusic(char *utf8file, time_t * mtime, unsigned int next) +InputPlugin *isMusic(const char *utf8file, time_t * mtime, unsigned int next) { if (isFile(utf8file, mtime)) { InputPlugin *plugin = hasMusicSuffix(utf8file, next); @@ -24,26 +24,26 @@ #include "inputPlugin.h" #include "os_compat.h" -int lsPlaylists(int fd, char *utf8path); +int lsPlaylists(int fd, const char *utf8path); -char *getSuffix(char *utf8file); +const char *getSuffix(const char *utf8file); int isValidRemoteUtf8Url(char *utf8url); int isRemoteUrl(char *url); -int myStat(char *utf8file, struct stat *st); +int myStat(const char *utf8file, struct stat *st); -int isDir(char *utf8name); +int isDir(const char *utf8name); -int isPlaylist(char *utf8file); +int isPlaylist(const char *utf8file); -InputPlugin *hasMusicSuffix(char *utf8file, unsigned int next); +InputPlugin *hasMusicSuffix(const char *utf8file, unsigned int next); -InputPlugin *isMusic(char *utf8file, time_t * mtime, unsigned int next); +InputPlugin *isMusic(const char *utf8file, time_t * mtime, unsigned int next); int printRemoteUrlHandlers(int fd); -int isFile(char *utf8file, time_t * mtime); +int isFile(const char *utf8file, time_t * mtime); #endif diff --git a/src/mpd_types.h b/src/mpd_types.h index 765d0d001..35ff3604f 100644 --- a/src/mpd_types.h +++ b/src/mpd_types.h @@ -41,4 +41,9 @@ typedef unsigned long mpd_uint32; typedef signed long mpd_sint32; #endif +union const_hack { + const char *in; + char *out; +}; + #endif diff --git a/src/path.c b/src/path.c index 258363036..6aaff84cf 100644 --- a/src/path.c +++ b/src/path.c @@ -38,24 +38,25 @@ static size_t music_dir_len; static size_t playlist_dir_len; static char *fsCharset; -static char *path_conv_charset(char *dest, char *to, char *from, char *str) +static char *path_conv_charset(char *dest, const char *to, + const char *from, const char *str) { return setCharSetConversion(to, from) ? NULL : char_conv_str(dest, str); } -char *fs_charset_to_utf8(char *dst, char *str) +char *fs_charset_to_utf8(char *dst, const char *str) { char *ret = path_conv_charset(dst, "UTF-8", fsCharset, str); return (ret && !validUtf8String(ret)) ? NULL : ret; } -char *utf8_to_fs_charset(char *dst, char *str) +char *utf8_to_fs_charset(char *dst, const char *str) { char *ret = path_conv_charset(dst, fsCharset, "UTF-8", str); return ret ? ret : strcpy(dst, str); } -void setFsCharset(char *charset) +void setFsCharset(const char *charset) { int error = 0; @@ -86,7 +87,7 @@ void setFsCharset(char *charset) } } -char *getFsCharset(void) +const char *getFsCharset(void) { return fsCharset; } @@ -243,7 +244,7 @@ char *parent_path(char *path_max_tmp, const char *path) return path_max_tmp; } -char *sanitizePathDup(char *path) +char *sanitizePathDup(const char *path) { int len = strlen(path) + 1; char *ret = xmalloc(len); @@ -285,7 +286,7 @@ char *sanitizePathDup(char *path) void utf8_to_fs_playlist_path(char *path_max_tmp, const char *utf8path) { - utf8_to_fs_charset(path_max_tmp, (char *)utf8path); + utf8_to_fs_charset(path_max_tmp, utf8path); rpp2app_r(path_max_tmp, path_max_tmp); strncat(path_max_tmp, "." PLAYLIST_FILE_SUFFIX, MPD_PATH_MAX - 1); } diff --git a/src/path.h b/src/path.h index 560cf6073..d29354523 100644 --- a/src/path.h +++ b/src/path.h @@ -38,13 +38,13 @@ void initPaths(void); void finishPaths(void); -char *fs_charset_to_utf8(char *dst, char *str); +char *fs_charset_to_utf8(char *dst, const char *str); -char *utf8_to_fs_charset(char *dst, char *str); +char *utf8_to_fs_charset(char *dst, const char *str); -void setFsCharset(char *charset); +void setFsCharset(const char *charset); -char *getFsCharset(void); +const char *getFsCharset(void); /* * pfx_dir - sets dst="$pfx/$path" and returns a pointer to path inside * dst @@ -75,7 +75,7 @@ char *rpp2app_r(char *dst, const char *rel_path); char *parent_path(char *path_max_tmp, const char *path); /* strips extra "///" and leading "/" and trailing "/" */ -char *sanitizePathDup(char *path); +char *sanitizePathDup(const char *path); /* this is actually like strlcpy (OpenBSD), but we don't actually want to * blindly use it everywhere, only for paths that are OK to truncate (for diff --git a/src/song.c b/src/song.c index d8d4251dd..83781efb8 100644 --- a/src/song.c +++ b/src/song.c @@ -44,7 +44,7 @@ Song *newNullSong(void) return song; } -Song *newSong(char *url, int type, Directory * parentDir) +Song *newSong(const char *url, int type, Directory * parentDir) { Song *song = NULL; @@ -101,7 +101,7 @@ SongList *newSongList(void) return makeList((ListFreeDataFunc *) freeSong, 0); } -Song *addSongToList(SongList * list, char *url, char *utf8path, +Song *addSongToList(SongList * list, const char *url, const char *utf8path, int songType, Directory * parentDirectory) { Song *song = NULL; diff --git a/src/song.h b/src/song.h index ccf87e348..6f06101bf 100644 --- a/src/song.h +++ b/src/song.h @@ -45,7 +45,7 @@ typedef List SongList; Song *newNullSong(void); -Song *newSong(char *url, int songType, struct _Directory *parentDir); +Song *newSong(const char *url, int songType, struct _Directory *parentDir); void freeSong(Song *); @@ -55,7 +55,7 @@ SongList *newSongList(void); void freeSongList(SongList * list); -Song *addSongToList(SongList * list, char *url, char *utf8path, +Song *addSongToList(SongList * list, const char *url, const char *utf8path, int songType, struct _Directory *parentDir); int printSongInfo(int fd, Song * song); @@ -44,7 +44,7 @@ # endif #endif -char *mpdTagItemKeys[TAG_NUM_OF_ITEM_TYPES] = { +const char *mpdTagItemKeys[TAG_NUM_OF_ITEM_TYPES] = { "Artist", "Album", "Title", @@ -169,7 +169,8 @@ static id3_utf8_t * processID3FieldString (int is_id3v1, const id3_ucs4_t *ucs4, return utf8; } -static MpdTag *getID3Info(struct id3_tag *tag, char *id, int type, MpdTag * mpdTag) +static MpdTag *getID3Info( + struct id3_tag *tag, const char *id, int type, MpdTag * mpdTag) { struct id3_frame const *frame; id3_ucs4_t const *ucs4; @@ -480,7 +481,7 @@ MpdTag *apeDup(char *file) unsigned char reserved[8]; } footer; - char *apeItems[7] = { + const char *apeItems[7] = { "title", "artist", "album", @@ -41,7 +41,7 @@ #define TAG_NUM_OF_ITEM_TYPES 11 -extern char *mpdTagItemKeys[]; +extern const char *mpdTagItemKeys[]; typedef struct _MpdTagItem { mpd_sint8 type; diff --git a/src/utf8.c b/src/utf8.c index d7b1503c3..f0d6b3b11 100644 --- a/src/utf8.c +++ b/src/utf8.c @@ -20,10 +20,10 @@ #include "utils.h" #include "os_compat.h" -char *latin1_to_utf8(char *dest, char *in_latin1) +char *latin1_to_utf8(char *dest, const char *in_latin1) { unsigned char *cp = (unsigned char *)dest; - unsigned char *latin1 = (unsigned char *)in_latin1; + const unsigned char *latin1 = (const unsigned char *)in_latin1; while (*latin1) { if (*latin1 < 128) @@ -45,7 +45,7 @@ char *latin1_to_utf8(char *dest, char *in_latin1) return dest; } -char *latin1StrToUtf8Dup(char *latin1) +char *latin1StrToUtf8Dup(const char *latin1) { /* utf8 should have at most two char's per latin1 char */ char *ret = xmalloc(strlen(latin1) * 2 + 1); @@ -55,10 +55,10 @@ char *latin1StrToUtf8Dup(char *latin1) return ((ret) ? xrealloc(ret, strlen((char *)ret) + 1) : NULL); } -static char utf8_to_latin1_char(char *inUtf8) +static char utf8_to_latin1_char(const char *inUtf8) { unsigned char c = 0; - unsigned char *utf8 = (unsigned char *)inUtf8; + const unsigned char *utf8 = (const unsigned char *)inUtf8; if (utf8[0] < 128) return utf8[0]; @@ -69,9 +69,9 @@ static char utf8_to_latin1_char(char *inUtf8) return (char)(c + utf8[1]); } -static int validateUtf8Char(char *inUtf8Char) +static int validateUtf8Char(const char *inUtf8Char) { - unsigned char *utf8Char = (unsigned char *)inUtf8Char; + const unsigned char *utf8Char = (const unsigned char *)inUtf8Char; if (utf8Char[0] < 0x80) return 1; @@ -95,7 +95,7 @@ static int validateUtf8Char(char *inUtf8Char) return 0; } -int validUtf8String(char *string) +int validUtf8String(const char *string) { int ret; @@ -109,7 +109,7 @@ int validUtf8String(char *string) return 1; } -char *utf8StrToLatin1Dup(char *utf8) +char *utf8StrToLatin1Dup(const char *utf8) { /* utf8 should have at most two char's per latin1 char */ char *ret = xmalloc(strlen(utf8) + 1); @@ -133,7 +133,7 @@ char *utf8StrToLatin1Dup(char *utf8) return xrealloc(ret, len + 1); } -char *utf8_to_latin1(char *dest, char *utf8) +char *utf8_to_latin1(char *dest, const char *utf8) { char *cp = dest; int count; diff --git a/src/utf8.h b/src/utf8.h index 05e1a4a31..4a4983064 100644 --- a/src/utf8.h +++ b/src/utf8.h @@ -19,15 +19,15 @@ #ifndef UTF_8_H #define UTF_8_H -char *latin1StrToUtf8Dup(char *latin1); +char *latin1StrToUtf8Dup(const char *latin1); -char *utf8StrToLatin1Dup(char *utf8); +char *utf8StrToLatin1Dup(const char *utf8); -int validUtf8String(char *string); +int validUtf8String(const char *string); -char *utf8_to_latin1(char *dest, char *utf8); +char *utf8_to_latin1(char *dest, const char *utf8); -char *latin1_to_utf8(char *dest, char *utf8); +char *latin1_to_utf8(char *dest, const char *utf8); #endif diff --git a/src/volume.c b/src/volume.c index 736838139..846a76eaa 100644 --- a/src/volume.c +++ b/src/volume.c @@ -57,7 +57,7 @@ #endif static int volume_mixerType = VOLUME_MIXER_TYPE_DEFAULT; -static char *volume_mixerDevice = VOLUME_MIXER_DEVICE_DEFAULT; +static const char *volume_mixerDevice = VOLUME_MIXER_DEVICE_DEFAULT; static int volume_softwareSet = 100; @@ -82,7 +82,7 @@ static void closeOssMixer(void) volume_ossFd = -1; } -static int prepOssMixer(char *device) +static int prepOssMixer(const char *device) { ConfigParam *param; @@ -94,7 +94,7 @@ static int prepOssMixer(char *device) param = getConfigParam(CONF_MIXER_CONTROL); if (param) { - char *labels[SOUND_MIXER_NRDEVICES] = SOUND_DEVICE_LABELS; + const char *labels[SOUND_MIXER_NRDEVICES] = SOUND_DEVICE_LABELS; char *duplicated; int i, j; int devmask = 0; @@ -211,11 +211,11 @@ static void closeAlsaMixer(void) volume_alsaMixerHandle = NULL; } -static int prepAlsaMixer(char *card) +static int prepAlsaMixer(const char *card) { int err; snd_mixer_elem_t *elem; - char *controlName = VOLUME_MIXER_ALSA_CONTROL_DEFAULT; + const char *controlName = VOLUME_MIXER_ALSA_CONTROL_DEFAULT; ConfigParam *param; err = snd_mixer_open(&volume_alsaMixerHandle, 0); @@ -370,7 +370,7 @@ static int changeAlsaVolumeLevel(int fd, int change, int rel) } #endif -static int prepMixer(char *device) +static int prepMixer(const char *device) { switch (volume_mixerType) { #ifdef HAVE_ALSA |