From fd6aa253594e18877ca2380961c0425a7de21b2e Mon Sep 17 00:00:00 2001
From: Warren Dukes <warren.dukes@gmail.com>
Date: Mon, 31 May 2004 01:21:17 +0000
Subject: mp3 and ogg plugin stuff

git-svn-id: https://svn.musicpd.org/mpd/trunk@1245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
---
 src/inputPlugin.c | 82 +++++++++----------------------------------------------
 1 file changed, 13 insertions(+), 69 deletions(-)

(limited to 'src/inputPlugin.c')

diff --git a/src/inputPlugin.c b/src/inputPlugin.c
index 2afe17719..d90a0e944 100644
--- a/src/inputPlugin.c
+++ b/src/inputPlugin.c
@@ -7,75 +7,10 @@
 
 static List * inputPlugin_list = NULL;
 
-InputPlugin * newInputPlugin(char * name, InputPlugin_streamDecodeFunc 
-		streamDecodeFunc, InputPlugin_fileDecodeFunc fileDecodeFunc,
-		InputPlugin_tagDupFunc tagDupFunc, unsigned char streamTypes)
-{
-	InputPlugin * ret = malloc(sizeof(InputPlugin));
-
-	memset(ret->name,0,INPUT_PLUGIN_NAME_LENGTH);
-	strncpy(ret->name, name, INPUT_PLUGIN_NAME_LENGTH-1);
-
-	ret->suffixes = NULL;
-	ret->mimeTypes = NULL;
-
-	ret->streamTypes = streamTypes;
-
-	ret->streamDecodeFunc = streamDecodeFunc;
-	ret->fileDecodeFunc = fileDecodeFunc;
-	ret->tagDupFunc = tagDupFunc;
-
-	return ret;
-}
-
-static void freeStringArray(char ** ptr) {
-	if(ptr) {
-		char ** tmp = ptr;
-
-		while(*tmp) {
-			if(*tmp) free(*tmp);
-			tmp++;
-		}
-
-		free (ptr);
-	}
-}
-
-void freeInputPlugin(InputPlugin * inPlugin) {
-	freeStringArray(inPlugin->suffixes);
-	freeStringArray(inPlugin->mimeTypes);
-
-	free(inPlugin);
-}
-
-static char ** AddStringToArray(char ** array, char * string) {
-	int arraySize = 1;
-
-	if(array) {
-		char ** tmp = array;
-		while(*tmp) {
-			arraySize++;
-			tmp++;
-		}
-	}
-
-	array = realloc(array, (arraySize+1)*sizeof(char *));
-
-	array[arraySize-1] = strdup(string);
-	array[arraySize] = NULL;
-
-	return array;
-}
-
-void addSuffixToInputPlugin(InputPlugin * inPlugin, char * suffix) {
-	inPlugin->suffixes = AddStringToArray(inPlugin->suffixes, suffix);
-}
-
-void addMimeTypeToInputPlugin(InputPlugin * inPlugin, char * mimeType) {
-	inPlugin->mimeTypes = AddStringToArray(inPlugin->mimeTypes, mimeType);
-}
-
 void loadInputPlugin(InputPlugin * inputPlugin) {
+	if(!inputPlugin) return;
+	if(!inputPlugin->name) return;
+
 	insertInList(inputPlugin_list, inputPlugin->name, (void *)inputPlugin);
 }
 
@@ -96,11 +31,14 @@ InputPlugin * getInputPluginFromSuffix(char * suffix) {
 	ListNode * node = inputPlugin_list->firstNode;
 	InputPlugin * plugin = NULL;
 
+	if(suffix == NULL) return NULL;
+
 	while(node != NULL) {
 		plugin = node->data;
 		if(stringFoundInStringArray(plugin->suffixes, suffix)) {
 			return plugin;
 		}
+		node = node->nextNode;
 	}
 
 	return NULL;
@@ -115,6 +53,7 @@ InputPlugin * getInputPluginFromMimeType(char * mimeType) {
 		if(stringFoundInStringArray(plugin->mimeTypes, mimeType)) {
 			return plugin;
 		}
+		node = node->nextNode;
 	}
 
 	return NULL;
@@ -128,10 +67,15 @@ InputPlugin * getInputPluginFromName(char * name) {
 	return (InputPlugin *)plugin;
 }
 
+extern InputPlugin mp3Plugin;
+extern InputPlugin oggPlugin;
+
 void initInputPlugins() {
-	inputPlugin_list = makeList((ListFreeDataFunc *)freeInputPlugin);
+	inputPlugin_list = makeList(NULL);
 
 	/* load plugins here */
+	loadInputPlugin(&mp3Plugin);
+	loadInputPlugin(&oggPlugin);
 }
 
 void finishInputPlugins() {
-- 
cgit v1.2.3