Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > media > contrib-release-debug > by-pkgid > c423c631bd049bf019d47f4c1bea5242 > files > 114

gqmpeg-debug-0.91.1-7mdv2011.0.i586.rpm

/*
 * GQmpeg
 * (C) 2002 John Ellis
 *
 * Author: John Ellis
 *
 * This software is released under the GNU General Public License (GNU GPL).
 * Please read the included file COPYING for more information.
 * This software comes with no warranty of any kind, use at your own risk!
 */

#ifndef PLAYERS_H
#define PLAYERS_H

typedef struct _IO_ModuleData IO_ModuleData;
struct _IO_ModuleData
{
	gchar *title;
	gchar *description;

	void (* songdata_init_func)(SongData *sd);
	gint (* songdata_info_func)(SongData *sd, gint read_info);

	gint (* start_func)(SongData *sd, gint position);
	gint (* stop_func)(SongData *sd);

	gint (* pause_func)(SongData *sd);
	gint (* continue_func)(SongData *sd);

	gint (* seek_func)(SongData *sd, gint position);

	void (* config_load_func)(FILE *f, const gchar *option, const gchar *value, const gchar *value_all);
	void (* config_save_func)(FILE *f);

	GtkWidget *(* config_init_func)(void);
	void (* config_apply_func)(void);
	void (* config_close_func)(void);

	GtkWidget *(* info_func)(const gchar *name);
};

/*
 *----------------------------------------------------------------------------
 * misc module interface functions
 *----------------------------------------------------------------------------
 */

gint player_module_register(IO_ModuleData *imd);
void module_register_file_suffix_type(const gchar *extension, const gchar *description, gint module_id);
void module_register_misc_type(const gchar *description, const gchar *format, gint module_id, gint live,
			       gint (*is_type_func)(const gchar *),
			       GtkWidget *(*entry_setup_func)(const gchar *),
			       GtkWidget *(*edit_func)(SongData *),
			       gchar *(*get_path_func)(GtkWidget *));

gint player_module_id_exists(gint id);

void playback_done_command(PlayerCommand cmd, gint err);

void module_playback_end(void);
void module_playback_error(SongData *sd);

/* call this when the input or output rates/channels/et.c change */
void module_playback_data_changed(void);

/*
 *----------------------------------------------------------------------------
 * misc stuff
 *----------------------------------------------------------------------------
 */

void player_modules_init(void);
void player_modules_config_load(FILE *f, const gchar *option, const gchar *value, const gchar *value_all);
void player_modules_config_save(FILE *f);
GList *player_modules_config_init(void);
void player_modules_config_apply(void);
void player_modules_config_close(void);

SongData *player_module_songdata_init(const gchar *path);
gint player_module_songdata_update(SongData *sd, gint read_info);
GtkWidget *player_module_songdata_detail_info(const gchar *path);

gint playback_exec_command(PlayerCommand cmd, SongData *sd, gint pos);


#endif