/* * Initialize plugin. */ static void init(void) { /* font = "-ttf-lucida console-*-r-*-*-60-*-*-*-*-*-*-*"; */ /* font = "fixed"; */ /* font = "-misc-fixed-*-*-*-*-40-*-*-*-*-*-*-*"; */ /* colour = "green"; */ DEBUG("init"); if (osd) { DEBUG("uniniting osd"); xosd_uninit(osd); osd=NULL; } read_config (); previous_repeat = previous_shuffle = previous_paused = previous_playing = FALSE; previous_volume = previous_song = 0; previous_title = 0; osd = xosd_init (font, colour, timeout, pos, offset, shadow_offset, 2); if (osd) timeout_tag = gtk_timeout_add (100, timeout_func, NULL); }
/***************************************************************************** * Open: initialize and create stuff *****************************************************************************/ static int Open( vlc_object_t *p_this ) { intf_thread_t *p_intf = (intf_thread_t *)p_this; xosd *p_osd; /* Allocate instance and initialize some members */ p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) ); if( p_intf->p_sys == NULL ) { msg_Err( p_intf, "out of memory" ); return VLC_ENOMEM; } if( getenv( "DISPLAY" ) == NULL ) { msg_Err( p_intf, "no display, please set the DISPLAY variable" ); return VLC_EGENERIC; } /* Initialize library */ #if defined(HAVE_XOSD_VERSION_0) || defined(HAVE_XOSD_VERSION_1) p_osd = p_intf->p_sys->p_osd = xosd_init( config_GetPsz( p_intf, "xosd-font" ), config_GetPsz( p_intf,"xosd-colour" ), 3, XOSD_top, 0, 1 ); if( p_intf->p_sys->p_osd == NULL ) { msg_Err( p_intf, "couldn't initialize libxosd" ); return VLC_EGENERIC; } #else p_osd = p_intf->p_sys->p_osd = xosd_create( 1 ); if( p_osd == NULL ) { msg_Err( p_intf, "couldn't initialize libxosd" ); return VLC_EGENERIC; } xosd_set_colour( p_osd, config_GetPsz( p_intf,"xosd-colour" ) ); xosd_set_timeout( p_osd, 3 ); #endif playlist_t *p_playlist = (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_playlist == NULL ) { return VLC_EGENERIC; } var_AddCallback( p_playlist, "playlist-current", PlaylistNext, p_this ); var_AddCallback( p_playlist, "item-change", PlaylistNext, p_this ); vlc_object_release( p_playlist ); /* Set user preferences */ xosd_set_font( p_intf->p_sys->p_osd, config_GetPsz( p_intf, "xosd-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_intf->pf_run = Run; p_intf->p_sys->b_need_update = VLC_TRUE; return VLC_SUCCESS; }