#include <vlc_playlist.h>
#include <vlc_meta.h>
#include <vlc_interface.h>
+#include <vlc_url.h>
/*****************************************************************************
* Module descriptor
****************************************************************************/
-vlc_module_begin();
- set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_CONTROL );
- set_shortname( "Growl" );
- set_description( N_("Growl Notification Plugin") );
- set_capability( "interface", 0 );
- set_callbacks( Open, Close );
-vlc_module_end();
+vlc_module_begin ()
+ set_category( CAT_INTERFACE )
+ set_subcategory( SUBCAT_INTERFACE_CONTROL )
+ set_shortname( "Growl" )
+ set_description( N_("Growl Notification Plugin") )
+ set_capability( "interface", 0 )
+ set_callbacks( Open, Close )
+vlc_module_end ()
/*****************************************************************************
* Open: initialize and create stuff
intf_thread_t *p_intf = (intf_thread_t *)p_this;
intf_sys_t *p_sys;
- p_sys = p_intf->p_sys = calloc( sizeof(intf_sys_t), 1);
+ p_sys = p_intf->p_sys = calloc( 1, sizeof(intf_sys_t) );
if( !p_sys )
return VLC_ENOMEM;
p_sys->app_name = CFSTR( "VLC media player" );
p_sys->notification_type = CFSTR( "New input playing" );
- const char *data_path = config_GetDataDir ();
+ char *data_path = config_GetDataDir ( p_this );
char buf[strlen (data_path) + sizeof ("/vlc48x48.png")];
snprintf (buf, sizeof (buf), "%s/vlc48x48.png", data_path);
+ free( data_path );
p_sys->default_icon = (CFDataRef) readFile( buf );
playlist_t *p_playlist = pl_Hold( p_intf );
- var_AddCallback( p_playlist, "playlist-current", ItemChange, p_intf );
+ var_AddCallback( p_playlist, "item-current", ItemChange, p_intf );
pl_Release( p_intf );
RegisterToGrowl( p_this );
free( p_sys );
playlist_t *p_playlist = pl_Hold( p_this );
- var_DelCallback( p_playlist, "playlist-current", ItemChange, p_this );
+ var_DelCallback( p_playlist, "item-current", ItemChange, p_this );
pl_Release( p_this );
}
char *psz_artist = NULL;
char *psz_album = NULL;
input_thread_t *p_input;
- playlist_t *p_playlist = pl_Hold( p_this );
-
- p_input = p_playlist->p_input;
- pl_Release( p_this );
+ p_input = playlist_CurrentInput( (playlist_t*)p_this );
if( !p_input ) return VLC_SUCCESS;
- vlc_object_hold( p_input );
char *psz_name = input_item_GetName( input_GetItem( p_input ) );
if( p_input->b_dead || !psz_name )
/* Playing something ... */
input_item_t *p_item = input_GetItem( p_input );
- psz_title = input_item_GetTitle( p_item );
- if( psz_title == NULL || EMPTY_STR( psz_title ) )
+ psz_title = input_item_GetTitleFbName( p_item );
+ if( EMPTY_STR( psz_title ) )
{
free( psz_title );
- psz_title = input_item_GetName( input_GetItem( p_input ) );
- if( psz_title == NULL || EMPTY_STR( psz_title ) )
- {
- free( psz_title );
- vlc_object_release( p_input );
- return VLC_SUCCESS;
- }
+ vlc_object_release( p_input );
+ return VLC_SUCCESS;
}
psz_artist = input_item_GetArtist( p_item );
char *psz_arturl = input_item_GetArtURL( p_item );
CFDataRef art = NULL;
if( psz_arturl && !strncmp( psz_arturl, "file://", 7 ) &&
- strlen( psz_arturl ) > 7 )
+ decode_URI( psz_arturl + 7 ) )
art = (CFDataRef) readFile( psz_arturl + 7 );
free( psz_title );
NotifyToGrowl( p_intf, psz_tmp, art );
if( art ) CFRelease( art );
+ free( psz_tmp );
vlc_object_release( p_input );
return VLC_SUCCESS;