Sophie

Sophie

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

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!
 */

#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

#include "intl.h"

/*
 *-------------------------------------
 * Standard library includes
 *-------------------------------------
 */

#include <pwd.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <dirent.h>

/*
 *-------------------------------------
 * includes for glib / gtk / etc.
 *-------------------------------------
 */

#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

/*
 *----------------------------------------------------------------------------
 * defines
 *----------------------------------------------------------------------------
 */

#define		GQMPEG_RC_DIR		".gqmpeg"
#define		GQMPEG_RC_DIR_SKIN	".gqmpeg/skins"
#define		GQMPEG_RC_DIR_PLAYLIST	".gqmpeg/playlists"
#define		GQMPEG_RC_FILE_SESSION	".gqmpeg/session-playlist.gqmpeg"
#define		GQMPEG_SKIN_HELP_PATH	GQMPEG_SKINDIR"/SKIN-SPECS"
#define		GQMPEG_RC_FILE		"gqmpegrc"

#define		list_width 180
#define		list_height 180
#define		playlist_window_width 500
#define		playlist_window_height 400

#define		STATUS_STOP 0
#define		STATUS_PAUSE 1
#define		STATUS_PLAY 2
#define		STATUS_NEXT 3

#define		PLAYLIST_MODE_EMPTY 0
#define		PLAYLIST_MODE_SESSION 1
#define		PLAYLIST_MODE_FILE 2

#include "typedefs.h"
#include "ui2_typedefs.h"

/*
 *----------------------------------------------------------------------------
 * globals
 *----------------------------------------------------------------------------
 */

	/* main window widgets */
extern UIData *main_window;
extern GtkWidget *playlist_window;

	/* file lists */
extern GList *filelist;
extern GList *dirlist;

	/* filtering */
extern GList *filter;
extern gint disable_filtering;
extern gint show_dot_files;

	/* playlist info */
extern gchar *playlist_pathname;
extern gchar *playlist_filename;

	/* song time info */
extern gint seconds;
extern gint seconds_remaining;
extern gint frames;
extern gint frames_remaining;

	/* input info */
extern gint input_channels;
extern gint input_hz;
extern gint input_bitrate;

	/* output info */
extern gint output_channels;
extern gint output_hz;
extern gint output_bits;

	/* soon to be removed, but not until necessary (more players added)
	 * because this will effect the skin format by deprecating
	 * MP3 specific widgets
	 * possible problem with backwards skin compatibility !!!
	 */
extern gint mpeg_version;
extern gint mpeg_layer;
extern gint mpeg_mode;

	/* options */
extern gint initial_playlist_mode;
extern gchar *initial_playlist_pathname;
extern gint initial_playlist_position;
extern gint initial_directory_enable;
extern gchar *initial_directory_path;
extern gint show_playlist_on_startup;
extern gint start_playing_on_startup;
extern gint read_file_information;
extern gint window_pos_x;
extern gint window_pos_y;
extern gint window_list_x;
extern gint window_list_y;
extern gint window_list_w;
extern gint window_list_h;
extern gint window_list_div_dir;
extern gint window_list_div_mid;
extern gchar *window_list_columns;
extern gint wm_decorations;
extern gint prev_includes_current;

	/* miscellaneous */
extern gchar *current_path;
extern gchar *mixer_command;
extern gint mixer_device_id;

extern gint status;
extern gint repeat_mode;
extern gint shuffle_mode;
extern gint save_mode_in_playlist;
extern gint obey_mode_in_playlist;

extern gchar *preset_name[];
extern gchar *preset_file[];
extern gint play_presets;
extern gint show_remaining_time;
extern gint show_total_time;

extern int pid;

extern gchar *skin_default_path;
extern gchar *skin_mode_key;

extern gint pos_slider_in_drag;
extern gint new_song;

extern gint show_extra_winamp_info;

extern gint title_scrolls_always;
extern gint title_show_extension;
extern gint title_convert_underscores;

extern gchar **gqmpeg_icon_xpm;

extern gint allow_ipc;

extern gint dock_mode;

extern gint drop_single_to_playlist;
extern gint play_next_on_error;

extern gint loop_ab_enabled;
extern gint loop_ab_start;
extern gint loop_ab_end;

extern gint repeat_1_enabled;
extern gint change_delay;

extern gint flyby_enabled;
extern gint flyby_location;

extern gint skinned_menus_enable;

/*
 * =========================== globals.c
 */
void init_vars(void);

/*
 * =========================== main.c
 */
gint convert_chars(gchar *text, gchar s, gchar d);
guint32 elapsed_run_time(void);

void load_preset(gint n);
gint preset_is_active(gint n);

SongData *current_song_get_data(void);
gint current_song_get_number(void);
void current_song_set(gint n, gchar *path);
gint current_song_is_in_playlist(void);
void current_song_set_to_next(void);
void current_song_set_to_prev(void);
void current_song_set_and_play(gint n, gchar *path);

const gchar *current_song_get_path(void);
const gchar *current_song_get_title(void);
const gchar *current_song_get_artist(void);
const gchar *current_song_get_album(void);
const gchar *current_song_get_genre(void);
const gchar *current_song_get_year(void);
const gchar *current_song_get_comment(void);
gint current_song_get_track(void);

void help_window_show(const gchar *key);

void gqmpeg_exit(void);
/*
 * Some situations do not handle exiting
 * immediately too well (like ipc_read)
 */
void gqmpeg_schedule_exit(void);