]> git.sesse.net Git - vlc/commitdiff
Fix loop in mozilla plugin (closes #138)
authorClément Stenac <zorglub@videolan.org>
Sun, 22 May 2005 14:52:26 +0000 (14:52 +0000)
committerClément Stenac <zorglub@videolan.org>
Sun, 22 May 2005 14:52:26 +0000 (14:52 +0000)
mozilla/vlcshell.cpp
src/playlist/playlist.c

index 65240ee87830db1f1666dc1938eb13a8d1282a09..13d088b0d3181479cbc34dba50dfe0521985630d 100644 (file)
@@ -330,6 +330,20 @@ NPError NPP_New( NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc,
 
 #endif /* XP_MACOSX */
 
+        /* HACK: special case for loop, to have it set before playlist startup
+         */
+        for( i = 0; i < argc ; i++ )
+        {
+            if( !strcmp( argn[i], "loop" ) )
+            {
+                if( !strcmp( argv[i], "yes" ) )
+                {
+                    value.b_bool = VLC_TRUE;
+                    VLC_VariableSet( p_plugin->i_vlc, "conf::loop", value );
+                }
+            }
+        }
+
         i_ret = VLC_Init( p_plugin->i_vlc, sizeof(ppsz_argv)/sizeof(char*),
                           ppsz_argv );
 
@@ -395,14 +409,6 @@ NPError NPP_New( NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc,
         }
 
 #if USE_LIBVLC
-        else if( !strcmp( argn[i], "loop" ) )
-        {
-            if( !strcmp( argv[i], "yes" ) )
-            {
-                value.b_bool = VLC_TRUE;
-                VLC_VariableSet( p_plugin->i_vlc, "conf::loop", value );
-            }
-        }
         else if( !strcmp( argn[i], "fullscreen" ) )
         {
             if( !strcmp( argv[i], "yes" ) )
@@ -448,7 +454,6 @@ static void HackStopVout( VlcPlugin* p_plugin )
 
     do
     {
-        fprintf( stderr, "FindWindow: %p\n", hwnd );
         while( PeekMessage( &msg, (HWND)value.i_int, 0, 0, PM_REMOVE ) )
         {
             TranslateMessage(&msg);
@@ -676,7 +681,7 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
         {
 #if USE_LIBVLC
             VLC_AddTarget( p_plugin->i_vlc, p_plugin->psz_target,
-                           0, 0, i_mode, PLAYLIST_END );
+                           0, 0, PLAYLIST_INSERT, 0 );
 #endif
             p_plugin->b_stream = VLC_TRUE;
         }
index b6c98d25f157652b08f67e3b2e6a4ea0543dda70..500b2e52018381b92400ed369ec691ad43cf8238 100644 (file)
@@ -761,7 +761,7 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
     int i_skip,i_goto,i, i_new, i_count ;
     playlist_view_t *p_view;
 
-    vlc_bool_t b_loop = var_GetBool( p_playlist, "loop");
+    vlc_bool_t b_loop = var_GetBool( p_playlist, "loop" );
     vlc_bool_t b_random = var_GetBool( p_playlist, "random" );
     vlc_bool_t b_repeat = var_GetBool( p_playlist, "repeat" );
     vlc_bool_t b_playstop = var_GetBool( p_playlist, "play-and-stop" );
@@ -771,7 +771,6 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
     int64_t start = mdate();
 #endif
 
-
     /* Handle quickly a few special cases */
 
     /* No items to play */
@@ -830,7 +829,7 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
             {
                 p_playlist->pp_items[--i_count]->i_nb_played = 0;
             }
-           if( !b_loop )
+            if( !b_loop )
             {
                 return NULL;
             }
@@ -838,7 +837,7 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
         p_playlist->request.i_skip = 0;
         p_playlist->request.b_request = VLC_FALSE;
         return p_playlist->pp_items[i_new];
-   }
+    }
 
     /* Start the real work */
     if( p_playlist->request.b_request )
@@ -911,6 +910,9 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
                     {
                         if( b_loop )
                         {
+#ifdef PLAYLIST_DEBUG
+                            msg_Dbg( p_playlist, "looping" );
+#endif
                             p_new = playlist_FindNextFromParent( p_playlist,
                                       p_playlist->request.i_view,
                                       p_view->p_root,
@@ -949,6 +951,9 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
 
         if( p_playlist->status.i_view == -1 )
         {
+#ifdef PLAYLIST_DEBUG
+        msg_Dbg( p_playlist,"no request - old mode" );
+#endif
             if( p_playlist->i_index + 1 < p_playlist->i_size )
             {
                 p_playlist->i_index++;
@@ -972,6 +977,9 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
         /* We are playing with a view */
         else
         {
+#ifdef PLAYLIST_DEBUG
+            msg_Dbg( p_playlist,"no request - from a view" );
+#endif
             playlist_view_t *p_view =
                     playlist_ViewFind( p_playlist,
                                    p_playlist->status.i_view );
@@ -988,6 +996,9 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
                             p_playlist->status.p_item );
                 if( p_new == NULL && b_loop )
                 {
+#ifdef PLAYLIST_DEBUG
+                    msg_Dbg( p_playlist, "looping" );
+#endif
                     p_new = playlist_FindNextFromParent( p_playlist,
                                    p_playlist->status.i_view,
                                    p_view->p_root,