pkgsrc/multimedia/xine-ui/patches/patch-zy
xtraeme d0554539e3 - Add two patches to fix some issues on NetBSD, from anonymous via joerg@.
- Do not remove share/xine, as it's used by xine-lib too.
- There's no need to set BUILDLINK_API_DEPENDS for curl anymore, its
  buildlink3.mk file takes care of the required version.

Bump PKGREVISION.
2007-07-16 10:12:46 +00:00

116 lines
3.3 KiB
Text

$NetBSD: patch-zy,v 1.1 2007/07/16 10:12:46 xtraeme Exp $
--- src/xitk/actions.c.orig 2007-04-07 00:52:54.000000000 +0000
+++ src/xitk/actions.c 2007-06-07 00:15:04.000000000 +0000
@@ -638,58 +638,77 @@
if(video_window_is_visible())
video_window_set_visibility(0);
+
+ config_update_num("gui.amp_level", gGui->mixer.amp_level);
+ config_save();
+ /* we are going to dispose this stream, so make sure slider_loop
+ * won't use it anymore (otherwise -> segfault on exit).
+ */
+ gGui->running = 0;
+
+ if(gGui->visual_anim.event_queue) {
+ xine_event_dispose_queue(gGui->visual_anim.event_queue);
+ gGui->visual_anim.event_queue = 0;
+ }
+ if(gGui->visual_anim.stream) {
+ xine_dispose(gGui->visual_anim.stream);
+ gGui->visual_anim.stream = 0;
+ }
+
tvout_deinit(gGui->tvout);
- video_window_exit();
-#ifdef HAVE_XF86VIDMODE
- /* just in case a different modeline than the original one is running,
- * toggle back to window mode which automatically causes a switch back to
- * the original modeline
- */
- if(gGui->XF86VidMode_fullscreen)
- video_window_set_fullscreen_mode(WINDOWED_MODE);
- // gui_set_fullscreen_mode(NULL,NULL);
-#endif
-
+ if(gGui->event_queue) {
+ xine_event_dispose_queue(gGui->event_queue);
+ gGui->event_queue = 0;
+ }
+
osd_deinit();
- config_update_num("gui.amp_level", gGui->mixer.amp_level);
- config_save();
-
+ if(gGui->ao_none) {
+ xine_close_audio_driver(gGui->xine, gGui->ao_none);
+ gGui->ao_none = 0;
+ }
+ if(gGui->vo_none) {
+ xine_close_video_driver(gGui->xine, gGui->vo_none);
+ gGui->vo_none = 0;
+ }
+
/* Restore old audio volume */
if(gGui->ao_port && (gGui->mixer.method == SOUND_CARD_MIXER))
xine_set_param(gGui->stream, XINE_PARAM_AUDIO_VOLUME, gGui->mixer.original_level);
-
- xine_close(gGui->stream);
- xine_close(gGui->visual_anim.stream);
- xine_event_dispose_queue(gGui->event_queue);
- xine_event_dispose_queue(gGui->visual_anim.event_queue);
-
- /* we are going to dispose this stream, so make sure slider_loop
- * won't use it anymore (otherwise -> segfault on exit).
- */
- gGui->running = 0;
+ if(gGui->stream) {
+ xine_dispose(gGui->stream);
+ gGui->stream = 0;
+ }
if(gGui->visual_anim.post_output_element.post)
xine_post_dispose(gGui->xine, gGui->visual_anim.post_output_element.post);
- xine_dispose(gGui->stream);
- /* xine_dispose(gGui->visual_anim.stream); */
-
- if(gGui->vo_port)
+ if(gGui->vo_port) {
xine_close_video_driver(gGui->xine, gGui->vo_port);
- if(gGui->vo_none)
- xine_close_video_driver(gGui->xine, gGui->vo_none);
-
- if(gGui->ao_port)
+ gGui->vo_port = 0;
+ }
+ if(gGui->ao_port) {
xine_close_audio_driver(gGui->xine, gGui->ao_port);
- if(gGui->ao_none)
- xine_close_audio_driver(gGui->xine, gGui->ao_none);
+ gGui->ao_port = 0;
+ }
xine_exit(gGui->xine);
+
+ video_window_exit();
+#ifdef HAVE_XF86VIDMODE
+ /* just in case a different modeline than the original one is running,
+ * toggle back to window mode which automatically causes a switch back to
+ * the original modeline
+ */
+ if(gGui->XF86VidMode_fullscreen)
+ video_window_set_fullscreen_mode(WINDOWED_MODE);
+ // gui_set_fullscreen_mode(NULL,NULL);
+#endif
+
#ifdef HAVE_LIRC
if(gGui->lirc_enable)
lirc_stop();