[vlc-devel] commit: xosd: some cleaning and fix compilation for version(libxosd) < 2 ( Rémi Duraffort )
git version control
git at videolan.org
Sun Apr 19 12:20:12 CEST 2009
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Sun Apr 19 12:19:21 2009 +0200| [aed9c92ab277254a0d869aef55e7d0148f5be495] | committer: Rémi Duraffort
xosd: some cleaning and fix compilation for version(libxosd) < 2
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aed9c92ab277254a0d869aef55e7d0148f5be495
---
modules/misc/notify/xosd.c | 104 ++++++++++++++++++--------------------------
1 files changed, 43 insertions(+), 61 deletions(-)
diff --git a/modules/misc/notify/xosd.c b/modules/misc/notify/xosd.c
index edaa724..510f234 100644
--- a/modules/misc/notify/xosd.c
+++ b/modules/misc/notify/xosd.c
@@ -25,7 +25,6 @@
* Preamble
*****************************************************************************/
-#include <xosd.h>
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
@@ -36,9 +35,7 @@
#include <vlc_input.h>
#include <vlc_interface.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
+#include <xosd.h>
/*****************************************************************************
* intf_sys_t: description and status of rc interface
@@ -109,87 +106,76 @@ vlc_module_end ()
static int Open( vlc_object_t *p_this )
{
intf_thread_t *p_intf = (intf_thread_t *)p_this;
+ intf_sys_t *p_sys;
xosd *p_osd;
char *psz_font, *psz_colour;
- /* Allocate instance and initialize some members */
- p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
- if( p_intf->p_sys == NULL )
- return VLC_ENOMEM;
-
if( getenv( "DISPLAY" ) == NULL )
{
msg_Err( p_intf, "no display, please set the DISPLAY variable" );
- free( p_intf->p_sys );
return VLC_EGENERIC;
}
+ /* Allocate instance and initialize some members */
+ p_sys = p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
+ if( p_sys == NULL )
+ return VLC_ENOMEM;
+
/* Initialize library */
-#if defined(HAVE_XOSD_VERSION_0) || defined(HAVE_XOSD_VERSION_1)
psz_font = config_GetPsz( p_intf, "xosd-font" );
- psz_colour = config_GetPsz( p_intf,"xosd-colour" );
- p_osd = p_intf->p_sys->p_osd = xosd_init( psz_font, psz_colour, 3,
- XOSD_top, 0, 1 );
- free( psz_font );
- free( psz_colour );
+ psz_colour = config_GetPsz( p_intf, "xosd-colour" );
- if( p_intf->p_sys->p_osd == NULL )
- {
- msg_Err( p_intf, "couldn't initialize libxosd" );
- free( p_intf->p_sys );
- return VLC_EGENERIC;
- }
+#if defined(HAVE_XOSD_VERSION_0) || defined(HAVE_XOSD_VERSION_1)
+ p_osd = xosd_init( psz_font, psz_colour, 3,
+ config_GetInt( p_intf, "xosd-position" ) ? XOSD_bottom :
+ XOSD_top,
+ config_GetInt( p_intf, "xosd-text-offset" ),
+ config_GetInt( p_intf, "xosd-shadow-offset" ), 1 );
#else
- p_osd = p_intf->p_sys->p_osd = xosd_create( 1 );
+ p_osd = xosd_create( 1 );
+#endif
if( p_osd == NULL )
{
msg_Err( p_intf, "couldn't initialize libxosd" );
- free( p_intf->p_sys );
+ free( psz_colour );
+ free( psz_font );
+ free( p_sys );
return VLC_EGENERIC;
}
+ p_sys->p_osd = p_osd;
- psz_colour = config_GetPsz( p_intf, "xosd-colour" );
+ /* Set user preferences */
+ xosd_set_outline_colour( p_osd, "black" );
+#ifdef HAVE_XOSD_VERSION_2
+ xosd_set_font( p_osd, psz_font );
xosd_set_colour( p_osd, psz_colour );
xosd_set_timeout( p_osd, 3 );
- free( psz_colour );
+ xosd_set_pos( p_osd, config_GetInt( p_intf, "xosd-position" ) ?
+ XOSD_bottom: XOSD_top );
+ xosd_set_horizontal_offset( p_osd,
+ config_GetInt( p_intf, "xosd-text-offset" ) );
+ xosd_set_vertical_offset( p_osd,
+ config_GetInt( p_intf, "xosd-text-offset" ) );
+ xosd_set_shadow_offset( p_osd,
+ config_GetInt( p_intf, "xosd-shadow-offset" ));
#endif
+ /* Initialize to NULL */
+ xosd_display( p_osd, 0, XOSD_string, "XOSD interface initialized" );
+
+ free( psz_colour );
+ free( psz_font );
// Initialize mutex and condition variable before adding the callbacks
- vlc_mutex_init( &p_intf->p_sys->lock );
- vlc_cond_init( &p_intf->p_sys->cond );
+ vlc_mutex_init( &p_sys->lock );
+ vlc_cond_init( &p_sys->cond );
// Add the callbacks
playlist_t *p_playlist = pl_Hold( p_intf );
var_AddCallback( p_playlist, "item-current", PlaylistNext, p_this );
var_AddCallback( p_playlist, "item-change", PlaylistNext, p_this );
pl_Release( p_intf );
- /* Set user preferences */
- psz_font = config_GetPsz( p_intf, "xosd-font" );
- xosd_set_font( p_intf->p_sys->p_osd, psz_font );
- free( psz_font );
- xosd_set_outline_colour( p_intf->p_sys->p_osd,"black" );
-#ifdef HAVE_XOSD_VERSION_2
- xosd_set_horizontal_offset( p_intf->p_sys->p_osd,
- config_GetInt( p_intf, "xosd-text-offset" ) );
- xosd_set_vertical_offset( p_intf->p_sys->p_osd,
- config_GetInt( p_intf, "xosd-text-offset" ) );
-#else
- xosd_set_offset( p_intf->p_sys->p_osd,
- config_GetInt( p_intf, "xosd-text-offset" ) );
-#endif
- xosd_set_shadow_offset( p_intf->p_sys->p_osd,
- config_GetInt( p_intf, "xosd-shadow-offset" ));
- xosd_set_pos( p_intf->p_sys->p_osd,
- config_GetInt( p_intf, "xosd-position" ) ?
- XOSD_bottom: XOSD_top );
-
- /* Initialize to NULL */
- xosd_display( p_osd, 0, XOSD_string, "XOSD interface initialized" );
-
+ p_sys->b_need_update = true;
p_intf->pf_run = Run;
-
- p_intf->p_sys->b_need_update = true;
-
return VLC_SUCCESS;
}
@@ -255,20 +241,17 @@ static void Run( intf_thread_t *p_intf )
if( i_status == PLAYLIST_STOPPED )
{
psz_display = strdup(_("Stop"));
- PL_UNLOCK;
- pl_Release( p_intf );
}
else if( i_status == PLAYLIST_PAUSED )
{
psz_display = strdup(_("Pause"));
- PL_UNLOCK;
- pl_Release( p_intf );
}
else
{
p_item = playlist_CurrentPlayingItem( p_playlist );
if( !p_item )
{
+ psz_display = NULL;
PL_UNLOCK;
pl_Release( p_intf );
continue;
@@ -285,10 +268,9 @@ static void Run( intf_thread_t *p_intf )
}
else
psz_display = strdup( p_input->psz_name );
-
- PL_UNLOCK;
- pl_Release( p_intf );
}
+ PL_UNLOCK;
+ pl_Release( p_intf );
/* Display */
xosd_display( p_intf->p_sys->p_osd, 0, /* first line */
More information about the vlc-devel
mailing list