X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fqte%2Fqte.cpp;h=b5619d57ec630f08f8a5f21d0ffc4ec033e555c5;hb=6d6da67787d2756400bf1e8e193bd4cc72b32e47;hp=9c0ca245e8abee53ca7af55c21c93758f2da3088;hpb=2cb472dba008f7d877ffe6bae9c5575253365282;p=vlc diff --git a/modules/video_output/qte/qte.cpp b/modules/video_output/qte/qte.cpp index 9c0ca245e8..b5619d57ec 100644 --- a/modules/video_output/qte/qte.cpp +++ b/modules/video_output/qte/qte.cpp @@ -4,8 +4,8 @@ * Copyright (C) 1998-2003 the VideoLAN team * $Id$ * - * Authors: Gerald Hansink - * Jean-Paul Saman + * Authors: Gerald Hansink + * Jean-Paul Saman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,12 +37,15 @@ extern "C" { #include /* ENOMEM */ -#include /* free() */ -#include /* strerror() */ -#include -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include #ifdef HAVE_MACHINE_PARAM_H /* BSD */ @@ -76,9 +79,9 @@ extern "C" /***************************************************************************** * Module descriptor *****************************************************************************/ -#define DISPLAY_TEXT N_("QT Embedded display name") +#define DISPLAY_TEXT N_("QT Embedded display") #define DISPLAY_LONGTEXT N_( \ - "Specify the Qt Embedded hardware display you want to use. " \ + "Qt Embedded hardware display to use. " \ "By default VLC will use the value of the DISPLAY environment variable.") /***************************************************************************** @@ -100,7 +103,7 @@ static void FreePicture ( vout_thread_t *, picture_t * ); static void ToggleFullScreen ( vout_thread_t * ); -static void RunQtThread( event_thread_t *p_event ); +static void* RunQtThread( vlc_object_t *p_this ); } /* extern "C" */ /***************************************************************************** @@ -109,16 +112,16 @@ static void RunQtThread( event_thread_t *p_event ); extern "C" { -vlc_module_begin(); - set_category( CAT_VIDEO ); - set_subcategory( SUBCAT_VIDEO_VOUT ); -// add_category_hint( N_("QT Embedded"), NULL ); -// add_string( "qte-display", "landscape", NULL, DISPLAY_TEXT, DISPLAY_LONGTEXT); - set_description( _("QT Embedded video output") ); - set_capability( "video output", 70 ); - add_shortcut( "qte" ); - set_callbacks( Open, Close); -vlc_module_end(); +vlc_module_begin () + set_category( CAT_VIDEO ) + set_subcategory( SUBCAT_VIDEO_VOUT ) +// add_category_hint( N_("QT Embedded"), NULL ) +// add_string( "qte-display", "landscape", NULL, DISPLAY_TEXT, DISPLAY_LONGTEXT) + set_description( N_("QT Embedded video output") ) + set_capability( "video output", 70 ) + add_shortcut( "qte" ) + set_callbacks( Open, Close) +vlc_module_end () } /* extern "C" */ @@ -140,10 +143,7 @@ static int Open( vlc_object_t *p_this ) p_vout->p_sys = (struct vout_sys_t*) malloc( sizeof( struct vout_sys_t ) ); if( p_vout->p_sys == NULL ) - { - msg_Err( p_vout, "out of memory" ); return( 1 ); - } p_vout->pf_init = Init; p_vout->pf_end = End; @@ -153,7 +153,7 @@ static int Open( vlc_object_t *p_this ) #ifdef NEED_QTE_MAIN p_vout->p_sys->p_qte_main = - module_Need( p_this, "gui-helper", "qte", VLC_TRUE ); + module_need( p_this, "gui-helper", "qte", true ); if( p_vout->p_sys->p_qte_main == NULL ) { free( p_vout->p_sys ); @@ -185,23 +185,20 @@ static void Close ( vlc_object_t *p_this ) vlc_object_detach( p_vout->p_sys->p_event ); /* Kill RunQtThread */ - p_vout->p_sys->p_event->b_die = VLC_TRUE; + vlc_object_kill( p_vout->p_sys->p_event ); CloseDisplay(p_vout); vlc_thread_join( p_vout->p_sys->p_event ); - vlc_object_destroy( p_vout->p_sys->p_event ); + vlc_object_release( p_vout->p_sys->p_event ); } #ifdef NEED_QTE_MAIN msg_Dbg( p_vout, "releasing gui-helper" ); - module_Unneed( p_vout, p_vout->p_sys->p_qte_main ); + module_unneed( p_vout, p_vout->p_sys->p_qte_main ); #endif - if( p_vout->p_sys ) - { - free( p_vout->p_sys ); - p_vout->p_sys = NULL; - } + free( p_vout->p_sys ); + p_vout->p_sys = NULL; } /***************************************************************************** @@ -218,7 +215,7 @@ static int Init( vout_thread_t *p_vout ) I_OUTPUTPICTURES = 0; - p_vout->output.i_chroma = (dd == 16) ? VLC_FOURCC('R','V','1','6'): VLC_FOURCC('R','V','3','2'); + p_vout->output.i_chroma = (dd == 16) ? VLC_CODEC_RGB16 : VLC_CODEC_RGB32; p_vout->output.i_rmask = 0xf800; p_vout->output.i_gmask = 0x07e0; p_vout->output.i_bmask = 0x001f; @@ -388,14 +385,15 @@ static int Manage( vout_thread_t *p_vout ) /* Pointer change */ // if( ! p_vout->p_sys->b_cursor_autohidden && -// ( mdate() - p_vout->p_sys->i_lastmoved > 2000000 ) ) +// ( mdate() - p_vout->p_sys->i_lastmoved > +// p_vout->p_sys->i_mouse_hide_timeout ) ) // { // /* Hide the mouse automatically */ // p_vout->p_sys->b_cursor_autohidden = 1; // SDL_ShowCursor( 0 ); // } // -// if( p_vout->p_vlc->b_die ) +// if( !vlc_object_alive (p_vout->p_libvlc) ) // p_vout->p_sys->bRunning = FALSE; return 0; @@ -514,7 +512,7 @@ static int OpenDisplay( vout_thread_t *p_vout ) /* Initializations */ #if 1 /* FIXME: I need an event queue to handle video output size changes. */ - p_vout->b_fullscreen = VLC_TRUE; + p_vout->b_fullscreen = true; #endif /* Set main window's size */ @@ -531,15 +529,15 @@ static int OpenDisplay( vout_thread_t *p_vout ) p_vout->i_window_height = p_vout->p_sys->i_height; #endif - msg_Dbg( p_vout, "OpenDisplay (h=%d,w=%d)",p_vout->p_sys->i_height,p_vout->p_sys->i_width); + msg_Dbg( p_vout, "opening display (h=%d,w=%d)",p_vout->p_sys->i_height,p_vout->p_sys->i_width); /* create thread to exec the qpe application */ if ( vlc_thread_create( p_vout->p_sys->p_event, "QT Embedded Thread", RunQtThread, - VLC_THREAD_PRIORITY_OUTPUT, VLC_TRUE) ) + VLC_THREAD_PRIORITY_OUTPUT, true) ) { msg_Err( p_vout, "cannot create QT Embedded Thread" ); - vlc_object_destroy( p_vout->p_sys->p_event ); + vlc_object_release( p_vout->p_sys->p_event ); p_vout->p_sys->p_event = NULL; return -1; } @@ -587,9 +585,11 @@ static void CloseDisplay( vout_thread_t *p_vout ) /***************************************************************************** * main loop of qtapplication *****************************************************************************/ -static void RunQtThread(event_thread_t *p_event) +static void* RunQtThread( vlc_object_t *p_this ) { - msg_Dbg( p_event->p_vout, "RunQtThread Starting" ); + event_thread_t *p_event = (event_thread_t *)p_this; + int canc = vlc_savecancel (); + msg_Dbg( p_event->p_vout, "RunQtThread starting" ); #ifdef NEED_QTE_MAIN if (qApp) @@ -640,10 +640,10 @@ static void RunQtThread(event_thread_t *p_event) p_event->p_vout->p_sys->bRunning = TRUE; #ifdef NEED_QTE_MAIN - while(!p_event->b_die && p_event->p_vout->p_sys->bRunning) + while(vlc_object_alive (p_event) && p_event->p_vout->p_sys->bRunning) { /* Check if we are asked to exit */ - if( p_event->b_die ) + if( !vlc_object_alive (p_event) ) break; msleep(100); @@ -667,5 +667,7 @@ static void RunQtThread(event_thread_t *p_event) #endif msg_Dbg( p_event->p_vout, "RunQtThread terminating" ); + vlc_restorecancel (canc); + return NULL; }