]> git.sesse.net Git - vlc/blobdiff - modules/control/http/rpn.c
* modules/demux/mkv.cpp: remove useless printf()s
[vlc] / modules / control / http / rpn.c
index 14c15167fbda3f1522d3beb834717b15877b72e8..57ae1abc882ddfe65f70d97c0e5c635c0edd60f2 100644 (file)
@@ -400,16 +400,17 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
         {
             char *psz_src = E_(SSPop)( st );
             char *psz_dest;
+            char *str = psz_src;
 
             p = psz_dest = strdup( psz_src );
 
-            while( *psz_src )
+            while( *str )
             {
-                if( *psz_src == '\\' && *(psz_src + 1) )
+                if( *str == '\\' && *(str + 1) )
                 {
-                    psz_src++;
+                    str++;
                 }
-                *p++ = *psz_src++;
+                *p++ = *str++;
             }
             *p = '\0';
 
@@ -489,7 +490,8 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
             int i_id = E_(SSPopN)( st, vars );
             int i_ret;
 
-            i_ret = playlist_Control( p_sys->p_playlist, PLAYLIST_ITEMPLAY,
+            i_ret = playlist_Control( p_sys->p_playlist, PLAYLIST_VIEWPLAY,
+                                      NULL,
                                       playlist_ItemGetById( p_sys->p_playlist,
                                       i_id ) );
             msg_Dbg( p_intf, "requested playlist item: %i", i_id );
@@ -696,7 +698,7 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
                 {
                     char psz_value[20];
                     lldiv_t value = lldiv( val.f_float * 1000000, 1000000 );
-                    snprintf( psz_value, sizeof(psz_value), I64Fd".%06u",
+                    snprintf( psz_value, sizeof(psz_value), "%lld.%06u",
                                     value.quot, (unsigned int)value.rem );
                     E_(SSPush)( st, psz_value );
                     break;
@@ -793,7 +795,7 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
                 char psz_string[20];
                 lldiv_t value = lldiv( config_GetFloat( p_intf, psz_variable )
                                        * 1000000, 1000000 );
-                snprintf( psz_string, sizeof(psz_string), I64Fd".%06u",
+                snprintf( psz_string, sizeof(psz_string), "%lld.%06u",
                           value.quot, (unsigned int)value.rem );
                 E_(SSPush)( st, psz_string );
                 break;
@@ -986,7 +988,7 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
                     psz_val = vlc_input_item_GetInfo( p_item,
                                 _(VLC_META_INFO_CAT), _(VLC_META_TITLE) );
                     if( psz_val == NULL )
-                        psz_val == strdup( p_item->psz_name );
+                        psz_val = strdup( p_item->psz_name );
                 }
                 else if( !strcmp( psz_meta, "ALBUM" ) )
                 {
@@ -1060,6 +1062,24 @@ void E_(EvaluateRPN)( intf_thread_t *p_intf, mvar_t  *vars,
             free( psz_cmd );
             free( psz_error );
         }
+        else if( !strcmp( s, "snapshot" ) )
+        {
+            if( p_sys->p_input )
+            {
+                vout_thread_t *p_vout;
+                p_vout = vlc_object_find( p_sys->p_input,
+                                          VLC_OBJECT_VOUT, FIND_CHILD );
+
+                if( p_vout )
+                {
+                    vout_Control( p_vout, VOUT_SNAPSHOT );
+                    vlc_object_release( p_vout );
+                    msg_Dbg( p_intf, "requested snapshot" );
+                }
+            }
+            break;
+
+        }
         else
         {
             E_(SSPush)( st, s );