format.c 1.16 KB
Newer Older
Jack Moffitt's avatar
Jack Moffitt committed
1 2 3 4 5 6 7 8
/* format.c
**
** format plugin implementation
**
*/

#include <stdlib.h>
#include <string.h>
9
#include <time.h>
Jack Moffitt's avatar
Jack Moffitt committed
10 11 12 13 14 15 16

#include "connection.h"
#include "refbuf.h"

#include "format.h"

#include "format_vorbis.h"
Michael Smith's avatar
Michael Smith committed
17
#include "format_mp3.h"
Jack Moffitt's avatar
Jack Moffitt committed
18

Michael Smith's avatar
Michael Smith committed
19 20 21 22
format_type_t format_get_type(char *contenttype)
{
    if(strcmp(contenttype, "application/x-ogg") == 0)
        return FORMAT_TYPE_VORBIS;
Michael Smith's avatar
Michael Smith committed
23 24
    else if(strcmp(contenttype, "audio/mpeg") == 0)
        return FORMAT_TYPE_MP3; 
Michael Smith's avatar
Michael Smith committed
25 26 27 28
    else
        return -1;
}

29 30 31 32 33 34 35 36 37 38 39 40 41 42
char *format_get_mimetype(format_type_t type)
{
    switch(type) {
        case FORMAT_TYPE_VORBIS:
            return "application/x-ogg";
            break;
        case FORMAT_TYPE_MP3:
            return "audio/mpeg";
            break;
        default:
            return NULL;
    }
}

Jack Moffitt's avatar
Jack Moffitt committed
43
format_plugin_t *format_get_plugin(format_type_t type, char *mount)
Jack Moffitt's avatar
Jack Moffitt committed
44 45 46 47 48 49
{
	format_plugin_t *plugin;

	switch (type) {
	case FORMAT_TYPE_VORBIS:
		plugin = format_vorbis_get_plugin();
Jack Moffitt's avatar
Jack Moffitt committed
50
		if (plugin) plugin->mount = mount;
Jack Moffitt's avatar
Jack Moffitt committed
51
		break;
Michael Smith's avatar
Michael Smith committed
52 53 54 55
    case FORMAT_TYPE_MP3:
        plugin = format_mp3_get_plugin();
        if (plugin) plugin->mount = mount;
        break;
Jack Moffitt's avatar
Jack Moffitt committed
56 57 58 59 60 61 62
	default:
		plugin = NULL;
		break;
	}

	return plugin;
}