From: František D. <va...@ci...> - 2008-11-18 20:18:45
|
# HG changeset patch # User František Dvořák <va...@ci...> # Date 1227039235 -3600 # Node ID c2e5eba3a58edb7643738b18a1ce72e1f0ebe16c # Parent 96c7f8460d61ec021ffeb6bb38db8f406248f8d7 Fix of the two opened CACA windows in cacaxine (xine-ui). There is needed some ui<->lib interaction: used caca display is optionally delivered from ui to the caca vo plugin. diff -r c2e5eba3a58edb7643738b18a1ce72e1f0ebe16c -r 96c7f8460d61ec021ffeb6bb38db8f406248f8d7 src/video_out/video_out_caca.c --- a/src/video_out/video_out_caca.c Tue Nov 18 21:13:55 2008 +0100 +++ b/src/video_out/video_out_caca.c Mon Nov 10 16:33:51 2008 +0100 @@ -276,6 +276,7 @@ static int caca_redraw_needed (vo_driver static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *visual_gen) { caca_class_t *class = (caca_class_t *) class_gen; + caca_display_t *dp = (caca_display_t *)visual_gen; caca_driver_t *this; this = calloc(1, sizeof (caca_driver_t)); @@ -300,8 +301,13 @@ static vo_driver_t *open_plugin (video_d this->yuv2rgb_factory = yuv2rgb_factory_init(MODE_32_RGB, 0, NULL); this->yuv2rgb_factory->set_csc_levels(this->yuv2rgb_factory, 0, 128, 128); - this->cv = cucul_create_canvas(0, 0); - this->dp = caca_create_display(this->cv); + if (dp) { + this->cv = caca_get_canvas(dp); + this->dp = dp; + } else { + this->cv = cucul_create_canvas(0, 0); + this->dp = caca_create_display(this->cv); + } caca_refresh_display(this->dp); return &this->vo_driver; |