]> git.sesse.net Git - vlc/blobdiff - modules/control/http/rpn.c
Change default aspect to 16:9.
[vlc] / modules / control / http / rpn.c
index a6551b34e13783d630db7596a9f9f60328a80911..eb7aeee7b79d13e4e766f55e5c1a00bf6fd695e0 100644 (file)
@@ -27,9 +27,9 @@
 #endif
 
 #include "http.h"
-#include "vlc_url.h"
-#include "vlc_meta.h"
-#include "vlc_strings.h"
+#include <vlc_url.h>
+#include <vlc_meta.h>
+#include <vlc_strings.h>
 
 static vlc_object_t *GetVLCObject( intf_thread_t *p_intf,
                                    const char *psz_object,
@@ -41,8 +41,6 @@ static vlc_object_t *GetVLCObject( intf_thread_t *p_intf,
 
     if( !strcmp( psz_object, "VLC_OBJECT_LIBVLC" ) )
         p_object = VLC_OBJECT(p_intf->p_libvlc);
-    else if( !strcmp( psz_object, "VLC_OBJECT_INTF" ) )
-        p_object = VLC_OBJECT(p_intf);
     else if( !strcmp( psz_object, "VLC_OBJECT_PLAYLIST" ) )
         p_object = VLC_OBJECT(p_sys->p_playlist);
     else if( !strcmp( psz_object, "VLC_OBJECT_INPUT" ) )
@@ -166,7 +164,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
         /* 1. Integer function */
         if( !strcmp( s, "!" ) )
         {
-            SSPushN( st, ~SSPopN( st, vars ) );
+            SSPushN( st, !SSPopN( st, vars ) );
         }
         else if( !strcmp( s, "^" ) )
         {
@@ -362,12 +360,13 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
         else if( !strcmp( s, "url_encode" ) )
         {
             char *url = SSPop( st );
-            char *value = vlc_UrlEncode( url );
+            char *value = encode_URI_component( url );
             free( url );
             SSPush( st, value );
             free( value );
         }
-        else if( !strcmp( s, "xml_encode" ) )
+        else if( !strcmp( s, "xml_encode" )
+              || !strcmp( s, "htmlspecialchars" ) )
         {
             char *url = SSPop( st );
             char *value = convert_xml_special_chars( url );
@@ -420,17 +419,6 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
             free( psz_src );
             free( psz_dest );
         }
-        else if( !strcmp( s, "htmlspecialchars" ) )
-        {
-            char *psz_src = SSPop( st );
-            char *psz_dest;
-
-            psz_dest = convert_xml_special_chars( psz_src );
-
-            SSPush( st, psz_dest );
-            free( psz_src );
-            free( psz_dest );
-        }
         else if( !strcmp( s, "realpath" ) )
         {
             char *psz_src = SSPop( st );
@@ -496,7 +484,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
             i_ret = playlist_Control( p_sys->p_playlist, PLAYLIST_VIEWPLAY,
                                       pl_Locked, NULL,
                                       playlist_ItemGetById( p_sys->p_playlist,
-                                      i_id, pl_Locked ) );
+                                      i_id ) );
             playlist_Unlock( p_sys->p_playlist );
             msg_Dbg( p_intf, "requested playlist item: %i", i_id );
             SSPushN( st, i_ret );
@@ -626,7 +614,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
                 case VLC_VAR_INTEGER:
                 case VLC_VAR_HOTKEY:
                     val.i_int = SSPopN( st, vars );
-                    msg_Dbg( p_intf, "requested %s var change: %s->%d",
+                    msg_Dbg( p_intf, "requested %s var change: %s->%"PRIu64,
                              psz_object, psz_variable, val.i_int );
                     break;
                 case VLC_VAR_STRING:
@@ -653,8 +641,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
 
                 if( !b_error )
                     var_Set( p_object, psz_variable, val );
-                if( psz_value != NULL )
-                    free( psz_value );
+                free( psz_value );
             }
             else
                 msg_Warn( p_intf, "vlc_var_set called without an object" );
@@ -823,8 +810,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
             }
             i_result = config_SaveConfigFile( p_intf, psz_module );
 
-            if( psz_module != NULL )
-                free( psz_module );
+            free( psz_module );
             SSPushN( st, i_result );
         }
         else if( !strcmp( s, "vlc_config_reset" ) )
@@ -856,11 +842,12 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
                 {
                     playlist_item_t *p_item;
                     msg_Dbg( p_intf, "requested mrl add: %s", mrl );
+                    playlist_Lock( p_sys->p_playlist );
                     p_item = playlist_ItemGetByInput( p_sys->p_playlist,
-                                                      p_input,
-                                                      pl_Unlocked );
+                                                      p_input );
                     if( p_item )
                         i_ret = p_item->i_id;
+                    playlist_Unlock( p_sys->p_playlist );
                 }
                 else
                     msg_Warn( p_intf, "adding mrl %s failed", mrl );
@@ -880,12 +867,13 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
         else if( !strcmp( s, "playlist_delete" ) )
         {
             int i_id = SSPopN( st, vars );
+            playlist_Lock( p_sys->p_playlist );
             playlist_item_t *p_item = playlist_ItemGetById( p_sys->p_playlist,
-                                                            i_id, pl_Unlocked );
+                                                            i_id );
             if( p_item )
             {
                 playlist_DeleteFromInput( p_sys->p_playlist,
-                                          p_item->p_input->i_id, pl_Unlocked );
+                                          p_item->p_input, pl_Locked );
                 msg_Dbg( p_intf, "requested playlist delete: %d", i_id );
             }
             else
@@ -893,6 +881,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
                 msg_Dbg( p_intf, "couldn't find playlist item to delete (%d)",
                          i_id );
             }
+            playlist_Unlock( p_sys->p_playlist );
         }
         else if( !strcmp( s, "playlist_move" ) )
         {
@@ -953,38 +942,38 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
             char *psz_vol = SSPop( st );
             int i_value;
             audio_volume_t i_volume;
-            aout_VolumeGet( p_intf, &i_volume );
+            aout_VolumeGet( p_sys->p_playlist, &i_volume );
             if( psz_vol[0] == '+' )
             {
                 i_value = atoi( psz_vol );
                 if( (i_volume + i_value) > AOUT_VOLUME_MAX )
-                    aout_VolumeSet( p_intf, AOUT_VOLUME_MAX );
+                    aout_VolumeSet( p_sys->p_playlist, AOUT_VOLUME_MAX );
                 else
-                    aout_VolumeSet( p_intf, i_volume + i_value );
+                    aout_VolumeSet( p_sys->p_playlist, i_volume + i_value );
             }
             else if( psz_vol[0] == '-' )
             {
                 i_value = atoi( psz_vol );
                 if( (i_volume + i_value) < AOUT_VOLUME_MIN )
-                    aout_VolumeSet( p_intf, AOUT_VOLUME_MIN );
+                    aout_VolumeSet( p_sys->p_playlist, AOUT_VOLUME_MIN );
                 else
-                    aout_VolumeSet( p_intf, i_volume + i_value );
+                    aout_VolumeSet( p_sys->p_playlist, i_volume + i_value );
             }
             else if( strstr( psz_vol, "%") != NULL )
             {
                 i_value = atoi( psz_vol );
                 if( i_value < 0 ) i_value = 0;
                 if( i_value > 400 ) i_value = 400;
-                aout_VolumeSet( p_intf, (i_value * (AOUT_VOLUME_MAX - AOUT_VOLUME_MIN))/400+AOUT_VOLUME_MIN);
+                aout_VolumeSet( p_sys->p_playlist, (i_value * (AOUT_VOLUME_MAX - AOUT_VOLUME_MIN))/400+AOUT_VOLUME_MIN);
             }
             else
             {
                 i_value = atoi( psz_vol );
                 if( i_value > AOUT_VOLUME_MAX ) i_value = AOUT_VOLUME_MAX;
                 if( i_value < AOUT_VOLUME_MIN ) i_value = AOUT_VOLUME_MIN;
-                aout_VolumeSet( p_intf, i_value );
+                aout_VolumeSet( p_sys->p_playlist, i_value );
             }
-            aout_VolumeGet( p_intf, &i_volume );
+            aout_VolumeGet( p_sys->p_playlist, &i_volume );
             free( psz_vol );
         }
         else if( !strcmp( s, "vlc_get_meta" ) )
@@ -1124,7 +1113,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t  *vars,
                 vout_thread_t *p_vout = input_GetVout( p_sys->p_input );
                 if( p_vout )
                 {
-                    vout_Control( p_vout, VOUT_SNAPSHOT );
+                    var_TriggerCallback( p_vout, "video-snapshot" );
                     vlc_object_release( p_vout );
                     msg_Dbg( p_intf, "requested snapshot" );
                 }