Blame src/libout123/module.h

Packit c32a2d
/*
Packit c32a2d
	module: module loading and listing interface
Packit c32a2d
Packit c32a2d
	copyright ?-2015 by the mpg123 project - free software under the terms of the LGPL 2.1
Packit c32a2d
	see COPYING and AUTHORS files in distribution or http://mpg123.org
Packit c32a2d
	initially written by Nicholas J. Humphfrey
Packit c32a2d
*/
Packit c32a2d
Packit c32a2d
#ifndef _MPG123_MODULE_H_
Packit c32a2d
#define _MPG123_MODULE_H_
Packit c32a2d
Packit c32a2d
#include "out123.h"
Packit c32a2d
Packit c32a2d
/* TODO: put that into out123_int.h instead? */
Packit c32a2d
#define MPG123_MODULE_API_VERSION		(2)
Packit c32a2d
Packit c32a2d
/* The full structure is delared in audio.h */
Packit c32a2d
struct audio_output_struct;
Packit c32a2d
Packit c32a2d
typedef struct mpg123_module_struct {
Packit c32a2d
	const int api_version;						/* module API version number */
Packit c32a2d
Packit c32a2d
	const char* name;							/* short name of the module */
Packit c32a2d
	const char* description;					/* description of what the module does */
Packit c32a2d
	const char* revision;						/* source code revision */
Packit c32a2d
	
Packit c32a2d
	void* handle; /* dynamic loader handle */
Packit c32a2d
Packit c32a2d
	/* Initialisers - set to NULL if unsupported by module */
Packit c32a2d
	int (*init_output)(out123_handle *ao);		/* audio output - returns 0 on success */
Packit c32a2d
Packit c32a2d
} mpg123_module_t;
Packit c32a2d
Packit c32a2d
Packit c32a2d
Packit c32a2d
/* ------ Declarations from "module.c" ------ */
Packit c32a2d
Packit c32a2d
mpg123_module_t* open_module( const char* type, const char* name, int verbose
Packit c32a2d
,	const char* bindir );
Packit c32a2d
void close_module(mpg123_module_t* module, int verbose);
Packit c32a2d
int list_modules( const char *type, char ***names, char ***descr, int verbose
Packit c32a2d
,	const char* bindir );
Packit c32a2d
Packit c32a2d
#endif