]> git.sesse.net Git - vlc/commitdiff
Enable rc fastforward and rewind commands for RTSP trickplay.
authorJean-Paul Saman <jean-paul.saman@m2x.nl>
Fri, 21 Nov 2008 09:21:31 +0000 (10:21 +0100)
committerJean-Paul Saman <jean-paul.saman@m2x.nl>
Fri, 21 Nov 2008 09:22:47 +0000 (10:22 +0100)
modules/control/rc.c

index 7a57396355cfe9af618df4a1fe7f71ccb4266817..7ced84f2260204c5a02c0afa4e8f87fe01d85074 100644 (file)
@@ -1086,15 +1086,33 @@ static int Input( vlc_object_t *p_this, char const *psz_cmd,
     }
     else if ( !strcmp( psz_cmd, "fastforward" ) )
     {
-        val.i_int = config_GetInt( p_intf, "key-jump+extrashort" );
-        var_Set( p_intf->p_libvlc, "key-pressed", val );
+        if( var_GetBool( p_input, "can-rewind" ) )
+        {
+            int i_rate = var_GetInteger( p_input, "rate" );
+            i_rate = (i_rate < 0) ? -i_rate : i_rate * 2;
+            var_SetInteger( p_input, "rate", i_rate );
+        }
+        else
+        {
+            val.i_int = config_GetInt( p_intf, "key-jump+extrashort" );
+            var_Set( p_intf->p_libvlc, "key-pressed", val );
+        }
         vlc_object_release( p_input );
         return VLC_SUCCESS;
     }
     else if ( !strcmp( psz_cmd, "rewind" ) )
     {
-        val.i_int = config_GetInt( p_intf, "key-jump-extrashort" );
-        var_Set( p_intf->p_libvlc, "key-pressed", val );
+        if( var_GetBool( p_input, "can-rewind" ) )
+        {
+            int i_rate = var_GetInteger( p_input, "rate" );
+            i_rate = (i_rate > 0) ? -i_rate : i_rate / 2;
+            var_SetInteger( p_input, "rate", i_rate );
+        }
+        else
+        {
+            val.i_int = config_GetInt( p_intf, "key-jump-extrashort" );
+            var_Set( p_intf->p_libvlc, "key-pressed", val );
+        }
         vlc_object_release( p_input );
         return VLC_SUCCESS;
     }