b_stream(0),
b_autoplay(1),
b_toolbar(0),
+ psz_text(NULL),
psz_target(NULL),
playlist_index(-1),
libvlc_instance(NULL),
libvlc_media_list(NULL),
libvlc_media_player(NULL),
- libvlc_log(NULL),
p_scriptClass(NULL),
p_browser(instance),
psz_baseURL(NULL)
#endif
{
memset(&npwindow, 0, sizeof(NPWindow));
+#if XP_UNIX
memset(&npvideo, 0, sizeof(Window));
memset(&npcontrol, 0, sizeof(Window));
+#endif
}
static bool boolValue(const char *value) {
ppsz_argv[ppsz_argc++] = "--no-media-library";
ppsz_argv[ppsz_argc++] = "--ignore-config";
ppsz_argv[ppsz_argc++] = "--intf=dummy";
+ ppsz_argv[ppsz_argc++] = "--no-video-title-show";
+
const char *progid = NULL;
/* parse plugin arguments */
for( int i = 0; i < argc ; i++ )
{
- fprintf(stderr, "argn=%s, argv=%s\n", argn[i], argv[i]);
+ /* fprintf(stderr, "argn=%s, argv=%s\n", argn[i], argv[i]); */
if( !strcmp( argn[i], "target" )
|| !strcmp( argn[i], "mrl")
{
psz_target = argv[i];
}
+ else if( !strcmp( argn[i], "text" ) )
+ {
+ psz_text = strdup( argv[i] );
+ }
else if( !strcmp( argn[i], "autoplay")
|| !strcmp( argn[i], "autostart") )
{
}
else if( !strcmp( argn[i], "toolbar" ) )
{
-/* FIXME: Remove this when toolbar functionality has been implemented on\
+/* FIXME: Remove this when toolbar functionality has been implemented on
* MacOS X and Win32 for Firefox/Mozilla/Safari. */
#ifdef XP_UNIX
b_toolbar = boolValue(argv[i]);
libvlc_exception_init(&ex);
libvlc_instance = libvlc_new(ppsz_argc, ppsz_argv, &ex);
-
if( libvlc_exception_raised(&ex) )
{
libvlc_exception_clear(&ex);
{
free(psz_baseURL);
free(psz_target);
- if( libvlc_log )
- libvlc_log_close(libvlc_log, NULL);
+ free(psz_text);
if( libvlc_media_player )
libvlc_media_player_release( libvlc_media_player );
if( libvlc_media_list )
#endif
#ifdef XP_WIN
libvlc_media_player_set_hwnd(libvlc_media_player,
- getVideoWindow(),
+ getWindow().window,
ex);
#endif
}
for( int i = 0; i < optc; ++i )
{
- libvlc_media_add_option_untrusted(p_m, optv[i],ex);
+ libvlc_media_add_option_flag(p_m, optv[i], libvlc_media_option_unique, ex);
if( libvlc_exception_raised(ex) )
{
libvlc_media_release(p_m);
return item;
}
-void VlcPlugin::playlist_play( libvlc_exception_t *ex )
-{
- if( libvlc_media_player||playlist_select(0,ex) )
- libvlc_media_player_play(libvlc_media_player,ex);
-}
-
-void VlcPlugin::playlist_play_item( int idx, libvlc_exception_t *ex )
-{
- if( playlist_select(idx,ex) )
- libvlc_media_player_play(libvlc_media_player,ex);
-}
-
-void VlcPlugin::playlist_stop( libvlc_exception_t *ex )
-{
- if( libvlc_media_player )
- libvlc_media_player_stop(libvlc_media_player,ex);
-}
-
bool VlcPlugin::playlist_select( int idx, libvlc_exception_t *ex )
{
libvlc_media_t *p_m = NULL;
return false;
}
-void VlcPlugin::playlist_next( libvlc_exception_t *ex )
-{
- if( playlist_select(playlist_index+1,ex) )
- libvlc_media_player_play(libvlc_media_player,ex);
-}
-
-void VlcPlugin::playlist_prev( libvlc_exception_t *ex )
-{
- if( playlist_select(playlist_index-1,ex) )
- libvlc_media_player_play(libvlc_media_player,ex);
-}
-
-void VlcPlugin::playlist_pause( libvlc_exception_t *ex )
-{
- if( libvlc_media_player )
- libvlc_media_player_pause(libvlc_media_player,ex);
-}
-
void VlcPlugin::playlist_delete_item( int idx, libvlc_exception_t *ex )
{
libvlc_media_list_lock(libvlc_media_list);
return items_count;
}
-int VlcPlugin::playlist_isplaying( libvlc_exception_t *ex )
-{
- int is_playing = 0;
- if( libvlc_media_player )
- libvlc_media_player_is_playing( libvlc_media_player, ex );
- return is_playing;
-}
-
void VlcPlugin::toggle_fullscreen( libvlc_exception_t *ex )
{
if( playlist_isplaying(ex) )
libvlc_toggle_fullscreen(libvlc_media_player,ex);
}
-
void VlcPlugin::set_fullscreen( int yes, libvlc_exception_t *ex )
{
if( playlist_isplaying(ex) )
libvlc_set_fullscreen(libvlc_media_player,yes,ex);
}
-
int VlcPlugin::get_fullscreen( libvlc_exception_t *ex )
{
int r = 0;
return r;
}
-
/*****************************************************************************
* VlcPlugin methods
*****************************************************************************/
if( href )
{
/* prepend base URL */
- strcpy(href, psz_baseURL);
+ memcpy(href, psz_baseURL, baseLen+1);
/*
** relative url could be empty,
/* skip over protocol part */
char *pathstart = strchr(href, ':');
- char *pathend;
+ char *pathend = href+baseLen;
if( pathstart )
{
if( '/' == *(++pathstart) )
}
/* skip over host part */
pathstart = strchr(pathstart, '/');
- pathend = href+baseLen;
if( ! pathstart )
{
// no path, add a / past end of url (over '\0')
return NULL;
}
pathstart = href;
- pathend = href+baseLen;
}
/* relative URL made of an absolute path ? */
dst_y - (p_timeline->height >> 1),
(window.width-(dst_x+BTN_SPACE)), p_timeline->height );
-
-
/* get movie position in % */
if( playlist_isplaying(&ex) )
{
vlc_toolbar_clicked_t VlcPlugin::getToolbarButtonClicked( int i_xpos, int i_ypos )
{
- unsigned int i_dest = BTN_SPACE;//(i_tb_height >> 1);
+ unsigned int i_dest = BTN_SPACE;
int is_playing = 0;
bool b_mute = false;
libvlc_exception_t ex;
+#ifndef NDEBUG
fprintf( stderr, "ToolbarButtonClicked:: "
"trying to match (%d,%d) (%d,%d)\n",
i_xpos, i_ypos, i_tb_height, i_tb_width );
-
+#endif
if( i_ypos >= i_tb_width )
return clicked_Unknown;