sinek/src sinek.c,1.8,1.9

[email protected] Wed, 15 Jan 2003 00:09:01 -0800
Newsgroups gmane.comp.video.sinek.cvs
Message-ID <[email protected]>
Update of /cvsroot/sinek/sinek/src
In directory sc8-pr-cvs1:/tmp/cvs-serv17019

Modified Files:
	sinek.c 
Log Message:
remove a buncha stuff not needed anymore


Index: sinek.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/sinek.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- sinek.c	3 Jan 2003 09:42:20 -0000	1.8
+++ sinek.c	15 Jan 2003 08:08:59 -0000	1.9
@@ -9,94 +9,48 @@
 */
 
 #include "common.h"
+#include "gtkxine.h"
 
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/cursorfont.h>
-#include <X11/extensions/XShm.h>
-#include <X11/Xatom.h>
-#include <xine.h>
-
-#ifndef XShmGetEventBase
-extern int XShmGetEventBase(Display *);
-#endif
-
-static int MyShmEvent = -1;
-
-static void frame_output_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_x, int *dest_y, int *dest_w, int *dest_h, double *dest_pix_aspect, int *win_x, int *win_y);
-static void dest_size_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_w, int *dest_h, double *dest_pix_aspect);
 extern int translate_point(int x, int y, int *vid_x, int *vid_y);
 
-
-sinek_type *sinek_new(void)
-{
-	sinek_type *s;
-	const gchar *home;
-	gchar *tmp;
-
-	s = malloc(sizeof(sinek_type));
-	memset(s, 0, sizeof(sinek_type));
-	s->xine = xine_new();
-
-	home = g_get_home_dir();
-	tmp = g_strconcat(home, "/.xine/config", NULL);
-	xine_config_load(s->xine, tmp);
-	g_free(tmp);
-
-	return s;
-}
-
-
-void sinek_delete(sinek_type *s)
-{
-	if(s->xine) xine_exit(s->xine);
-	free(s);
-}
-
-
-int sinek_audio_set_output(sinek_type *s)
+GtkWidget *sinek_init(void)
 {
-	const char *id;
-	const char *const *driver_ids;
-	xine_cfg_entry_t entry;
+	GtkWidget *videowin, *videoframe;
+	GtkXine *xine;
+	const char *audio, *video;
+	char *conf;
+	
+	sinek.mrl = NULL;
 
-	driver_ids = xine_list_audio_output_plugins(s->xine);
-	id = xine_config_register_string(s->xine, "audio.driver", "auto", "audio driver to use", NULL, 0, NULL, NULL);
-	if(sinek.audio_id) id = sinek.audio_id;
+	xine = GTK_XINE(gtk_xine_new());
+	conf = g_build_filename(g_get_home_dir(), ".xine", "config", NULL);
+	gtk_xine_config_load(xine, conf);
+	g_free(conf);
 
-	/* try user preferred driver */
-	if(strncmp(id, "auto", 4) != 0 && strncmp(id, "null", 4) != 0)
-		s->ad = xine_open_audio_driver(s->xine, id, NULL);
-	/* if that fails or user choosed auto, try any available driver */
-	if(!s->ad && strncmp(id, "null", 4) != 0)
-	{
-		int i = 0;
-		while(driver_ids[i])
-		{
-			s->ad = xine_open_audio_driver(s->xine, driver_ids[i], NULL);
-			if(s->ad) break;
-			i++;
-		}
-	}
+	/* audio stuff */
+	audio = gtk_xine_config_register_string(xine, "audio.driver", "auto");
+	audio = gtk_xine_set_audio_driver(xine, audio);
+	gtk_xine_config_set(xine, "audio.driver", audio);
 
-	/* if that fails too or user choosed null, disable audio */
-	if(!s->ad) id = "null";
+	/* video stuff */
+	videoframe = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	gtk_window_set_title(GTK_WINDOW(videoframe), "Sinek Video Output");
+	videowin = gtk_drawing_area_new();
+	gtk_container_add(GTK_CONTAINER(videoframe), videowin);
+	sinek.videowin = videoframe;
 
-	xine_config_lookup_entry(s->xine, "audio.driver", &entry);
-	entry.str_value = (char *) id;
-	xine_config_update_entry(s->xine, &entry);
+	video = gtk_xine_config_register_string(xine, "video.driver", "auto");
+	video = gtk_xine_set_video_driver(xine, video, videowin);
+	gtk_xine_config_set(xine, "video.driver", video);
 
-	sinek.stream = xine_stream_new(s->xine, s->ad, s->vd);
-	if(!s->xine)
-	{
-		printf(_("xine init error\n"));
-		return 0;
-	}
+	/* post audio/video init stuff */
+	gtk_xine_load(xine, NULL);
+	gtk_xine_set_audio_channel(xine, sinek.audio_channel);
+	gtk_xine_set_spu_channel(xine, sinek.spu_channel);
 
-	return 1;
+	return GTK_WIDGET(xine);
 }
 
-
 void sinek_video_event(sinek_type *s, void *event)
 {
 	XEvent *ev = (XEvent *)event;
@@ -146,134 +100,4 @@
 	}
 	if(ev->type == MyShmEvent)
 		xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_COMPLETION_EVENT, (void *) ev);
-}
-
-
-int sinek_video_set_output(sinek_type *s, void *display_info)
-{
-	sinek_x11_type *di = (sinek_x11_type *)display_info;
-	const char *id;
-	const char *const *driver_ids;
-	double res_h, res_v;
-	x11_visual_t vis;
-	xine_cfg_entry_t entry;
-
-	s->display_info = di;
-
-	if(XShmQueryExtension(di->display) == True)
-		MyShmEvent = XShmGetEventBase(di->display) + ShmCompletion;
-
-	vis.display = di->display;
-	vis.screen = di->screen;
-	vis.d = di->drawable;
-	res_h = (DisplayWidth(vis.display, vis.screen)*1000 / DisplayWidthMM(vis.display, vis.screen));
-	res_v = (DisplayHeight(vis.display, vis.screen)*1000 / DisplayHeightMM(vis.display, vis.screen));
-	sinek.display_ratio = res_h / res_v;
-	vis.frame_output_cb = frame_output_cb;
-	vis.dest_size_cb = dest_size_cb;
-	vis.user_data = (void *)s;
-	if(fabs(sinek.display_ratio - 1.0) < 0.01) sinek.display_ratio = 1.0;
-
-	driver_ids = xine_list_video_output_plugins(s->xine);
-	id = xine_config_register_string(s->xine, "video.driver", "auto", "video driver to use", NULL, 0, NULL, NULL);
-	if(sinek.video_id) id = sinek.video_id;
-
-	/* try user preferred driver */
-	if(strncmp(id, "auto", 4) != 0)
-		s->vd = xine_open_video_driver(s->xine, id, XINE_VISUAL_TYPE_X11, (void *) &vis);
-	/* if that fails or user choosed auto, try any available driver */
-	if(!s->vd)
-	{
-		int i = 0;
-		while(driver_ids[i])
-		{
-			s->vd = xine_open_video_driver(s->xine, driver_ids[i], XINE_VISUAL_TYPE_X11, (void *) &vis);
-			if(s->vd) break;
-			i++;
-		}
-	}
-	/* if that fails too, exit with an error */
-	if(!s->vd)
-	{
-		printf(_("Cannot load video driver.\n"));
-		return 0;
-	}
-
-	xine_config_lookup_entry(s->xine, "video.driver", &entry);
-	entry.str_value = (char *) id;
-	xine_config_update_entry(s->xine, &entry);
-
-	return 1;
-}
-
-
-static void frame_output_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_x, int *dest_y, int *dest_w, int *dest_h, double *dest_pix_aspect, int *win_x, int *win_y)
-{
-	sinek_x11_type *di = ((sinek_type *)this)->display_info;
-
-	di->frame_w = vid_w;
-	di->frame_h = vid_h;
-
-	if(di->frame_out_cb)
-	{
-		di->frame_out_cb(di->user_data, di);
-	}
-	else
-	{
-		di->out_x = 0;
-		di->out_y = 0;
-		di->out_w = di->win_w;
-		di->out_h = di->win_h;
-	}
-
-	*win_x = di->win_x;
-	*win_y = di->win_y;
-	*dest_x = di->out_x;
-	*dest_y = di->out_y;
-	*dest_w = di->out_w;
-	*dest_h = di->out_h;
-}
-
-
-static void dest_size_cb(void *this, int vid_w, int vid_h, double vid_pix_aspect, int *dest_w, int *dest_h, double *dest_pix_aspect)
-{
-	sinek_type *s = (sinek_type *)this;
-
-	*dest_w = s->display_info->out_w;
-	*dest_h = s->display_info->out_h;
-}
-
-
-int sinek_open(sinek_type *s, const char *mrl)
-{
-	if(s->mrl) free(s->mrl);
-	s->mrl = strdup(mrl);
-	xine_open(sinek.stream, s->mrl);
-	return xine_play(sinek.stream,  0, 0);
-}
-
-
-void sinek_play(sinek_type *s)
-{
-	if(!s->mrl) return;
-
-	if(xine_get_status(sinek.stream) != XINE_STATUS_PLAY) {
-		xine_open(sinek.stream, s->mrl);
-		xine_play(sinek.stream, 0, 0);
-	}
-	else
-		xine_set_param(sinek.stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL);
-}
-
-
-void sinek_seek(sinek_type *s, unsigned long secs)
-{
-	if (s->mrl && xine_get_stream_info(sinek.stream, XINE_STREAM_INFO_SEEKABLE))
-		xine_play(sinek.stream, 0, secs);
-}
-
-
-void sinek_stop(sinek_type *s)
-{
-	xine_stop(sinek.stream);
 }




-------------------------------------------------------
This SF.NET email is sponsored by: Take your first step towards giving 
your online business a competitive advantage. Test-drive a Thawte SSL 
certificate - our easy online guide will show you how. Click here to get 
started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en