sinek/include gtkxine.h,NONE,1.1 Makefile.am,1.3,1.4

[email protected] Sun, 05 Jan 2003 01:08:51 -0800
Newsgroups gmane.comp.video.sinek.cvs
Message-ID <[email protected]>
Update of /cvsroot/sinek/sinek/include
In directory sc8-pr-cvs1:/tmp/cvs-serv18448

Modified Files:
	Makefile.am 
Added Files:
	gtkxine.h 
Log Message:
gtkxine


--- NEW FILE: gtkxine.h ---
/*
**  Sinek (Media Player)
**  Copyright (c) 2002  Andres Salomon <[email protected]>
**
**  This code is free software; you can redistribute it and/or
**  modify it under the terms of the GNU General Public License.
**
**  $Id: gtkxine.h,v 1.1 2003/01/05 09:08:49 dilinger Exp $
*/

#ifndef GTK_XINE_H
#define GTK_XINE_H

#include <gtk/gtk.h>
#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

#define GTK_TYPE_XINE               (gtk_xine_get_type ())
#define GTK_XINE(obj)               (GTK_CHECK_CAST ((obj), GTK_TYPE_XINE, GtkXine))
#define GTK_XINE_CLASS(klass)       (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_XINE, GtkXineClass))
#define GTK_IS_XINE(obj)            (GTK_CHECK_TYPE ((obj), GTK_TYPE_XINE))
#define GTK_IS_XINE_CLASS(klass)    (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_XINE))
#define GTK_XINE_GET_CLASS(obj)     (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_XINE, GtkXineClass))

typedef struct _GtkXine              GtkXine;
typedef struct _GtkXineClass         GtkXineClass;
typedef enum   _GtkXinePlaybackSpeed GtkXinePlaybackSpeed;
typedef enum   _GtkXineVisualType    GtkXineVisualType;

struct _GtkXineClass
{
	GtkWidgetClass parent;
	
	void (*reserved1) (void);
	void (*reserved2) (void);
	void (*reserved3) (void);
	void (*reserved4) (void);
};

enum _GtkXinePlaybackSpeed
{
	GTK_XINE_PLAYBACK_SPEED_PAUSE,
	GTK_XINE_PLAYBACK_SPEED_QUARTER_SLOW,
	GTK_XINE_PLAYBACK_SPEED_HALF_SLOW,
	GTK_XINE_PLAYBACK_SPEED_NORMAL,
	GTK_XINE_PLAYBACK_SPEED_TWICE_FAST,
	GTK_XINE_PLAYBACK_SPEED_FOUR_FAST,
};

#if 0
// for now, only support X11
enum _GtkXineVisualType
{
	GTK_XINE_VISUAL_TYPE_NONE,
	GTK_XINE_VISUAL_TYPE_X11,         /* you'll most likely want this */
	GTK_XINE_VISUAL_TYPE_AA,
	GTK_XINE_VISUAL_TYPE_FB,
	GTK_XINE_VISUAL_TYPE_GTK,
	GTK_XINE_VISUAL_TYPE_DFB,
	GTK_XINE_VISUAL_TYPE_PM,
};
#endif

GtkType     gtk_xine_get_type             (void);
GtkWidget*  gtk_xine_new                  (void);
GtkWidget*  gtk_xine_new_with_values      (const char *fname, const char *audio_driver, const char *video_driver, const char *display_name);

/* config file defaults to ~/.xine/config */
void        gtk_xine_select_config_file   (GtkXine *xine, const char *fname);
/* audio/video drivers default to "auto" ("null" if unable to load) */
void        gtk_xine_select_audio_driver  (GtkXine *xine, const char *name);
void        gtk_xine_select_video_driver  (GtkXine *xine, const char *name);
//void        gtk_xine_select_video_driver  (GtkXine *xine, const char *name, GtkXineVisualType v);
void        gtk_xine_select_display       (GtkXine *xine, const char *display_name);

void        gtk_xine_load                 (GtkXine *xine, const char *mrl);
void        gtk_xine_play                 (GtkXine *xine);
void        gtk_xine_play_from_position   (GtkXine *xine, int start);
void        gtk_xine_play_from_time       (GtkXine *xine, time_t start);
void        gtk_xine_stop                 (GtkXine *xine);

void        gtk_xine_select_audio_channel (GtkXine *xine, int channel);
void        gtk_xine_select_spu_channel   (GtkXine *xine, int channel);

void        gtk_xine_set_volume           (GtkXine *xine, int volume);
int         gtk_xine_get_volume           (GtkXine *xine);
void        gtk_xine_set_mute             (GtkXine *xine, int mute);

void        gtk_xine_set_speed            (GtkXine *xine, GtkXinePlaybackSpeed speed);
GtkXinePlaybackSpeed gtk_xine_get_speed   (GtkXine *xine);

int         gtk_xine_get_current_position (GtkXine *xine);
time_t      gtk_xine_get_current_time     (GtkXine *xine);
time_t      gtk_xine_get_stream_length    (GtkXine *xine);

void        gtk_xine_eject                (GtkXine *xine);
int         gtk_xine_is_seekable          (GtkXine *xine);
 
#ifdef __cplusplus
}
#endif

#if 0
/* REMOVEME */

#include <gdk/gdkx.h>
#include <xine/video_out_x11.h>
#include <xine.h>

struct sinek_visual_t 
{
	// struct x11_visual_t from xine
	Display *display;
	int screen;
	double display_ratio;
	Drawable d;
	void *user_data;
	void (*dest_size_cb) (void *user_data, int video_width, int video_height, int *dest_width, int *dest_height);
	void (*frame_output_cb) (void *user_data, int video_width, int video_height, int *dest_x, int *dest_y, int *dest_width, int *dest_height, int *win_x, int *win_y);

	// sinek-specific stuff
	int video_width, video_height;
	Window video_win;
	int depth;
};
struct _GtkXine
{
GtkWidget parent;

xine_t *xine;

char *conf_file;
char *video_driver;
char *audio_driver;
char *display_name;

char *video_win_title;
GtkWidget *video_win;
//x11_visual_t visual;
struct sinek_visual_t visual;

ao_driver_t *ao_driver;
vo_driver_t *vo_driver;
config_values_t *conf;
};
#endif

#endif

Index: Makefile.am
===================================================================
RCS file: /cvsroot/sinek/sinek/include/Makefile.am,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Makefile.am	2 May 2002 22:10:03 -0000	1.3
+++ Makefile.am	5 Jan 2003 09:08:49 -0000	1.4
@@ -2,4 +2,4 @@
 ## Process this file with automake to produce Makefile.in
 ##
 
-noinst_HEADERS = common.h sinek.h i18n.h xml.h
+noinst_HEADERS = common.h sinek.h i18n.h xml.h gtkxine.h




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf