moved InputPlugin to decoder_api.h
InputPlugin is the API which is implemented by a decoder plugin. This belongs to the public API/ABI, so move it to decoder_api.h. It will later be renamed to something like "decoder_plugin".
This commit is contained in:
parent
4a87f1e815
commit
08bdb43bef
@ -26,9 +26,67 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "inputPlugin.h"
|
||||
#include "inputStream.h"
|
||||
#include "replayGain.h"
|
||||
#include "tag.h"
|
||||
#include "playerData.h"
|
||||
|
||||
|
||||
/* valid values for streamTypes in the InputPlugin struct: */
|
||||
#define INPUT_PLUGIN_STREAM_FILE 0x01
|
||||
#define INPUT_PLUGIN_STREAM_URL 0x02
|
||||
|
||||
|
||||
struct decoder;
|
||||
|
||||
|
||||
/* optional, set this to NULL if the InputPlugin doesn't have/need one
|
||||
* this must return < 0 if there is an error and >= 0 otherwise */
|
||||
typedef int (*InputPlugin_initFunc) (void);
|
||||
|
||||
/* optional, set this to NULL if the InputPlugin doesn't have/need one */
|
||||
typedef void (*InputPlugin_finishFunc) (void);
|
||||
|
||||
/* boolean return value, returns 1 if the InputStream is decodable by
|
||||
* the InputPlugin, 0 if not */
|
||||
typedef unsigned int (*InputPlugin_tryDecodeFunc) (InputStream *);
|
||||
|
||||
/* this will be used to decode InputStreams, and is recommended for files
|
||||
* and networked (HTTP) connections.
|
||||
*
|
||||
* returns -1 on error, 0 on success */
|
||||
typedef int (*InputPlugin_streamDecodeFunc) (struct decoder *,
|
||||
InputStream *);
|
||||
|
||||
/* use this if and only if your InputPlugin can only be passed a filename or
|
||||
* handle as input, and will not allow callbacks to be set (like Ogg-Vorbis
|
||||
* and FLAC libraries allow)
|
||||
*
|
||||
* returns -1 on error, 0 on success */
|
||||
typedef int (*InputPlugin_fileDecodeFunc) (struct decoder *,
|
||||
char *path);
|
||||
|
||||
/* file should be the full path! Returns NULL if a tag cannot be found
|
||||
* or read */
|
||||
typedef MpdTag *(*InputPlugin_tagDupFunc) (char *file);
|
||||
|
||||
typedef struct _InputPlugin {
|
||||
const char *name;
|
||||
InputPlugin_initFunc initFunc;
|
||||
InputPlugin_finishFunc finishFunc;
|
||||
InputPlugin_tryDecodeFunc tryDecodeFunc;
|
||||
InputPlugin_streamDecodeFunc streamDecodeFunc;
|
||||
InputPlugin_fileDecodeFunc fileDecodeFunc;
|
||||
InputPlugin_tagDupFunc tagDupFunc;
|
||||
|
||||
/* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */
|
||||
unsigned char streamTypes;
|
||||
|
||||
/* last element in these arrays must always be a NULL: */
|
||||
const char *const*suffixes;
|
||||
const char *const*mimeTypes;
|
||||
} InputPlugin;
|
||||
|
||||
|
||||
/**
|
||||
* Opaque handle which the decoder plugin passes to the functions in
|
||||
@ -36,6 +94,7 @@
|
||||
*/
|
||||
struct decoder;
|
||||
|
||||
|
||||
/**
|
||||
* Notify the player thread that it has finished initialization and
|
||||
* that it has read the song's meta data.
|
||||
|
@ -19,62 +19,7 @@
|
||||
#ifndef INPUT_PLUGIN_H
|
||||
#define INPUT_PLUGIN_H
|
||||
|
||||
#include "inputStream.h"
|
||||
#include "outputBuffer.h"
|
||||
#include "playerData.h"
|
||||
|
||||
/* valid values for streamTypes in the InputPlugin struct: */
|
||||
#define INPUT_PLUGIN_STREAM_FILE 0x01
|
||||
#define INPUT_PLUGIN_STREAM_URL 0x02
|
||||
|
||||
struct decoder;
|
||||
|
||||
/* optional, set this to NULL if the InputPlugin doesn't have/need one
|
||||
* this must return < 0 if there is an error and >= 0 otherwise */
|
||||
typedef int (*InputPlugin_initFunc) (void);
|
||||
|
||||
/* optional, set this to NULL if the InputPlugin doesn't have/need one */
|
||||
typedef void (*InputPlugin_finishFunc) (void);
|
||||
|
||||
/* boolean return value, returns 1 if the InputStream is decodable by
|
||||
* the InputPlugin, 0 if not */
|
||||
typedef unsigned int (*InputPlugin_tryDecodeFunc) (InputStream *);
|
||||
|
||||
/* this will be used to decode InputStreams, and is recommended for files
|
||||
* and networked (HTTP) connections.
|
||||
*
|
||||
* returns -1 on error, 0 on success */
|
||||
typedef int (*InputPlugin_streamDecodeFunc) (struct decoder *,
|
||||
InputStream *);
|
||||
|
||||
/* use this if and only if your InputPlugin can only be passed a filename or
|
||||
* handle as input, and will not allow callbacks to be set (like Ogg-Vorbis
|
||||
* and FLAC libraries allow)
|
||||
*
|
||||
* returns -1 on error, 0 on success */
|
||||
typedef int (*InputPlugin_fileDecodeFunc) (struct decoder *,
|
||||
char *path);
|
||||
|
||||
/* file should be the full path! Returns NULL if a tag cannot be found
|
||||
* or read */
|
||||
typedef MpdTag *(*InputPlugin_tagDupFunc) (char *file);
|
||||
|
||||
typedef struct _InputPlugin {
|
||||
const char *name;
|
||||
InputPlugin_initFunc initFunc;
|
||||
InputPlugin_finishFunc finishFunc;
|
||||
InputPlugin_tryDecodeFunc tryDecodeFunc;
|
||||
InputPlugin_streamDecodeFunc streamDecodeFunc;
|
||||
InputPlugin_fileDecodeFunc fileDecodeFunc;
|
||||
InputPlugin_tagDupFunc tagDupFunc;
|
||||
|
||||
/* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */
|
||||
unsigned char streamTypes;
|
||||
|
||||
/* last element in these arrays must always be a NULL: */
|
||||
const char *const*suffixes;
|
||||
const char *const*mimeTypes;
|
||||
} InputPlugin;
|
||||
#include "decoder_api.h"
|
||||
|
||||
/* individual functions to load/unload plugins */
|
||||
void loadInputPlugin(InputPlugin * inputPlugin);
|
||||
|
@ -19,7 +19,7 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "../inputPlugin.h"
|
||||
#include "../decoder_api.h"
|
||||
|
||||
#if defined(HAVE_FLAC) || defined(HAVE_OGGFLAC)
|
||||
|
||||
|
@ -19,8 +19,6 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "../inputPlugin.h"
|
||||
|
||||
#include "_flac_common.h"
|
||||
#include "_ogg_common.h"
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef _OGG_COMMON_H
|
||||
#define _OGG_COMMON_H
|
||||
|
||||
#include "../inputPlugin.h"
|
||||
#include "../decoder_api.h"
|
||||
|
||||
#if defined(HAVE_OGGFLAC) || defined(HAVE_OGGVORBIS) || \
|
||||
(defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT > 7)
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include "../utils.h"
|
||||
#include "../log.h"
|
||||
#include "../inputPlugin.h"
|
||||
|
||||
/* this code was based on flac123, from flac-tools */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user