X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fosd%2Fosd.c;h=1dea9bb8ba34ea593d7dc2cf1ec11cf15d3a230a;hb=3eadc7974756eb7c8916462ec050ae44e1068387;hp=72ae0f5c407cd1fcd27864ec8cbb06595ac394b5;hpb=82e29c9ba1135639fe10881591e6261bc3396ae4;p=vlc diff --git a/src/osd/osd.c b/src/osd/osd.c index 72ae0f5c40..1dea9bb8ba 100644 --- a/src/osd/osd.c +++ b/src/osd/osd.c @@ -25,6 +25,10 @@ * Preamble *****************************************************************************/ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include #include #include @@ -34,7 +38,9 @@ #undef OSD_MENU_DEBUG +#if 0 static const char *ppsz_button_states[] = { "unselect", "select", "pressed" }; +#endif /***************************************************************************** * Local prototypes @@ -45,7 +51,7 @@ static inline osd_state_t *osd_VolumeStateChange( osd_state_t *, int ); static int osd_VolumeStep( vlc_object_t *, int, int ); static vlc_bool_t osd_isVisible( osd_menu_t *p_osd ); static osd_menu_t *osd_ParserLoad( vlc_object_t *, const char * ); -static void osd_ParserUnload( vlc_object_t *, osd_menu_t * ); +static void osd_ParserUnload( osd_menu_t * ); static vlc_bool_t osd_isVisible( osd_menu_t *p_osd ) { @@ -61,8 +67,10 @@ static vlc_bool_t osd_isVisible( osd_menu_t *p_osd ) static osd_menu_t *osd_ParserLoad( vlc_object_t *p_this, const char *psz_file ) { osd_menu_t *p_menu; + static const char osdmenu_name[] = "osd menu"; - p_menu = vlc_object_create( p_this, VLC_OBJECT_OSDMENU ); + p_menu = vlc_custom_create( p_this, sizeof( *p_menu ), VLC_OBJECT_OSDMENU, + osdmenu_name ); if( !p_menu ) { msg_Err( p_this, "out of memory" ); @@ -77,7 +85,7 @@ static osd_menu_t *osd_ParserLoad( vlc_object_t *p_this, const char *psz_file ) if( !p_menu->p_image || !p_menu->psz_file ) { msg_Err( p_this, "unable to load images, aborting .." ); - osd_ParserUnload( p_this, p_menu ); + osd_ParserUnload( p_menu ); return NULL; } else @@ -86,22 +94,22 @@ static osd_menu_t *osd_ParserLoad( vlc_object_t *p_this, const char *psz_file ) char *psz_ext = strrchr( p_menu->psz_file, '.' ); if( psz_ext && !strcmp( psz_ext, ".cfg") ) - psz_type = "import-osd"; + psz_type = (char*)"import-osd"; else - psz_type = "import-osd-xml"; + psz_type = (char*)"import-osd-xml"; p_menu->p_parser = module_Need( p_menu, "osd parser", psz_type, VLC_TRUE ); if( !p_menu->p_parser ) { - osd_ParserUnload( p_this, p_menu ); + osd_ParserUnload( p_menu ); return NULL; } } return p_menu; } -static void osd_ParserUnload( vlc_object_t *p_this, osd_menu_t *p_menu ) +static void osd_ParserUnload( osd_menu_t *p_menu ) { if( p_menu->p_image ) image_HandlerDelete( p_menu->p_image ); @@ -112,7 +120,7 @@ static void osd_ParserUnload( vlc_object_t *p_this, osd_menu_t *p_menu ) module_Unneed( p_menu, p_menu->p_parser ); vlc_object_detach( p_menu ); - vlc_object_destroy( p_menu ); + vlc_object_release( p_menu ); } /** @@ -210,7 +218,7 @@ error: free( p_osd->psz_file ); vlc_object_detach( p_osd ); - vlc_object_destroy( p_osd ); + vlc_object_release( p_osd ); vlc_mutex_unlock( lockval.p_address ); return NULL; } @@ -234,7 +242,7 @@ void __osd_MenuDelete( vlc_object_t *p_this, osd_menu_t *p_osd ) var_Destroy( p_osd, "osd-menu-visible" ); var_Destroy( p_osd, "osd-menu-update" ); - osd_ParserUnload( p_this, p_osd ); + osd_ParserUnload( p_osd ); p_osd = NULL; vlc_mutex_unlock( lockval.p_address ); } @@ -711,7 +719,7 @@ osd_button_t *__osd_ButtonFind( vlc_object_t *p_this, int i_x, int i_y, int i_scale_width, int i_scale_height ) { osd_menu_t *p_osd; - osd_button_t *p_button, *p_start, *p_end; + osd_button_t *p_button; vlc_value_t lockval; p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );