]> git.sesse.net Git - vlc/commitdiff
* Add hooks for getting/setting variables (not working yet)
authorClément Stenac <zorglub@videolan.org>
Tue, 28 Sep 2004 13:55:00 +0000 (13:55 +0000)
committerClément Stenac <zorglub@videolan.org>
Tue, 28 Sep 2004 13:55:00 +0000 (13:55 +0000)
* Really change VLC_Get to VLC_VariableGet

mozilla/vlcintf.idl
mozilla/vlcpeer.cpp
mozilla/vlcpeer.h
mozilla/vlcplugin.cpp
mozilla/vlcplugin.h
src/libvlc.c

index 30c451d6cadd4526fc7b57cd658afa6175af2e5b..08515f2030256b9c02ceb727380b5a55c924b570 100644 (file)
@@ -16,6 +16,15 @@ interface VlcIntf : nsISupports
     PRInt64 get_volume();
     void mute();
 
+    /* Get/Set variable */
+    void set_int_variable( in string psz_var, in PRInt64 i_value );
+    void set_bool_variable( in string psz_var, in PRBool b_value );
+    void set_str_variable( in string psz_var, in string psz_value );
+     
+    PRInt64 get_int_variable( in string psz_var );
+    PRBool get_bool_variable( in string psz_var );
+    string get_str_variable( in string psz_var );
+
     /* Playlist management */
     void clear_playlist();
     void add_item( in string psz_name);
index fe1e22b77df6e269804854ebaaf93d4a199cc175..9c2a0172aa8fd84498641ac8e7e7916ae57b1781 100644 (file)
@@ -128,6 +128,82 @@ NS_IMETHODIMP VlcPeer::Fullscreen()
     return NS_OK;
 }
 
+/* Set/Get vlc variables */
+NS_IMETHODIMP VlcPeer::Set_int_variable(const char *psz_var, PRInt64 value )
+{
+    vlc_value_t val;
+    val.i_int = value;
+    if( p_plugin )
+    {
+        VLC_VariableSet( p_plugin->i_vlc, psz_var, val );
+    }
+    return NS_OK;
+}
+
+NS_IMETHODIMP VlcPeer::Set_str_variable(const char *psz_var, const char *value )
+{
+    vlc_value_t val;
+    val.psz_string = strdup( value );
+    if( p_plugin )
+    {
+        VLC_VariableSet( p_plugin->i_vlc, psz_var, val );
+    }
+    return NS_OK;
+}
+
+NS_IMETHODIMP VlcPeer::Set_bool_variable(const char *psz_var, PRBool value )
+{
+    vlc_value_t val;
+    val.b_bool = value >= 1 ? VLC_TRUE : VLC_FALSE;
+    if( p_plugin )
+    {
+        VLC_VariableSet( p_plugin->i_vlc, psz_var, val );
+    }
+    return NS_OK;
+}
+
+NS_IMETHODIMP VlcPeer::Get_int_variable( const char *psz_var, PRInt64 *result )
+{
+    vlc_value_t val;
+    if( p_plugin )
+    {
+        fprintf(stderr, "Choppage de %s\n", psz_var );
+        VLC_VariableGet( p_plugin->i_vlc, psz_var, &val );
+        fprintf(stderr, "Valeur %i\n", val.i_int );
+        *result = (PRInt64)val.i_int;
+    }
+    return NS_OK;
+}
+
+NS_IMETHODIMP VlcPeer::Get_bool_variable(  const char *psz_var,PRBool *result )
+{
+    vlc_value_t val;
+    if( p_plugin )
+    {
+        VLC_VariableGet( p_plugin->i_vlc, psz_var, &val );
+        *result = (PRBool)val.b_bool;
+    }
+    return NS_OK;
+}
+
+NS_IMETHODIMP VlcPeer::Get_str_variable( const char *psz_var, char **result )
+{
+    vlc_value_t val;
+    if( p_plugin )
+    {
+        fprintf(stderr, "Choppage de %s\n", psz_var );
+        VLC_VariableGet( p_plugin->i_vlc, psz_var, &val );
+        if( val.psz_string )
+        {
+            *result = strdup( val.psz_string );
+        }
+        else
+        {
+            *result = strdup( "" );
+        }
+    }
+    return NS_OK;
+}
 
 /* Playlist control */
 NS_IMETHODIMP VlcPeer::Clear_playlist()
index 40b345bbd7ed8c7c38497460c7e23cadc9f54360..d963e8a3e2e0d7e8a474636a561f51a108f23a72 100644 (file)
@@ -2,7 +2,7 @@
  * vlcpeer.h: scriptable peer descriptor
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: vlcpeer.h,v 1.3 2003/04/09 16:18:36 sam Exp $
+ * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
index 93a1cd4e8d115cb53731bffa88817f266e5b7b19..948755be25871be852e6c0573d6a25de33dab047 100644 (file)
@@ -2,7 +2,7 @@
  * vlcplugin.cpp: a VLC plugin for Mozilla
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: vlcplugin.cpp,v 1.6 2003/10/23 17:04:39 sam Exp $
+ * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
index eb6c5dfcffe664e07d7f58915d5ed2460fccd865..0348298a4cb432a6999e5ca52dd4da5d9c2d9e0b 100644 (file)
@@ -2,7 +2,7 @@
  * vlcplugin.h: a VLC plugin for Mozilla
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: vlcplugin.h,v 1.13 2003/10/23 17:04:40 sam Exp $
+ * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
index 111688587a983dd19eaef615f7d0a81bc68d9c98..31390bf41cecfbada4f6935f9a71827449c982a9 100644 (file)
@@ -991,7 +991,7 @@ int VLC_VariableSet( int i_object, char const *psz_var, vlc_value_t value )
 /*****************************************************************************
  * VLC_VariableGet: get a vlc variable
  *****************************************************************************/
-int VLC_Get( int i_object, char const *psz_var, vlc_value_t *p_value )
+int VLC_VariableGet( int i_object, char const *psz_var, vlc_value_t *p_value )
 {
     vlc_t *p_vlc = vlc_current_object( i_object );
     int i_ret;
@@ -1001,7 +1001,7 @@ int VLC_Get( int i_object, char const *psz_var, vlc_value_t *p_value )
         return VLC_ENOOBJ;
     }
 
-    i_ret = var_Get( p_vlc, psz_var, p_value );
+    i_ret = var_Get( p_vlc , psz_var, p_value );
 
     if( i_object ) vlc_object_release( p_vlc );
     return i_ret;