]> git.sesse.net Git - vlc/commitdiff
Store audio output interface variables into the input manager object
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 14 Feb 2010 15:11:36 +0000 (17:11 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 14 Feb 2010 15:12:48 +0000 (17:12 +0200)
This partially fixes multiple media players in LibVLC. This also
removes a few run-away var_Create() in doVolumeChanges().

modules/control/rc.c
modules/gui/qt4/input_manager.cpp
modules/gui/skins2/src/vlcproc.cpp
src/audio_output/intf.c
src/control/media_player.c
src/libvlc.c
src/playlist/engine.c

index 2c6d574137c31ad9b3bf3c3f7b13771a025b738f..0e2035def02ea46747ef55a0ebe3731da14739a6 100644 (file)
@@ -458,7 +458,7 @@ static void Run( intf_thread_t *p_intf )
 
     /* status callbacks */
     /* Listen to audio volume updates */
-    var_AddCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, p_intf );
+    var_AddCallback( p_playlist, "volume-change", VolumeChanged, p_intf );
 
 #ifdef WIN32
     /* Get the file descriptor of the console input */
@@ -789,7 +789,7 @@ static void Run( intf_thread_t *p_intf )
         vlc_object_release( p_input );
     }
 
-    var_DelCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, p_intf );
+    var_DelCallback( p_playlist, "volume-change", VolumeChanged, p_intf );
     vlc_restorecancel( canc );
 }
 
index 670b3c767333c7cb6fa26ec6350a5bacc0d058ed..85e2bb440aaea31b40372f8886c90d2720467746 100644 (file)
@@ -913,8 +913,8 @@ MainInputManager::MainInputManager( intf_thread_t *_p_intf )
     var_AddCallback( THEPL, "repeat", RepeatChanged, this );
     var_AddCallback( THEPL, "loop", LoopChanged, this );
 
-    var_AddCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, this );
-    var_AddCallback( p_intf->p_libvlc, "volume-muted", SoundMuteChanged, this );
+    var_AddCallback( THEPL, "volume-change", VolumeChanged, this );
+    var_AddCallback( THEPL, "volume-muted", SoundMuteChanged, this );
 
     /* Warn our embedded IM about input changes */
     CONNECT( this, inputChanged( input_thread_t * ),
@@ -944,8 +944,8 @@ MainInputManager::~MainInputManager()
        vlc_object_release( p_input );
     }
 
-    var_DelCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, this );
-    var_DelCallback( p_intf->p_libvlc, "volume-muted", SoundMuteChanged, this );
+    var_DelCallback( THEPL, "volume-change", VolumeChanged, this );
+    var_DelCallback( THEPL, "volume-muted", SoundMuteChanged, this );
 
     var_DelCallback( THEPL, "activity", PLItemChanged, this );
     var_DelCallback( THEPL, "item-change", ItemChanged, im );
index 76f2ca7924454c79140062c0ea7e65c6798ca729..b0981bb171c2fbab9f0825726eaf2298725e6b3c 100644 (file)
@@ -146,7 +146,7 @@ VlcProc::VlcProc( intf_thread_t *pIntf ): SkinObject( pIntf ),
 #define ADD_CALLBACK( p_object, var ) \
     var_AddCallback( p_object, var, onGenericCallback, this );
 
-    ADD_CALLBACK( pIntf->p_libvlc, "volume-change" )
+    ADD_CALLBACK( pIntf->p_sys->p_playlist, "volume-change" )
     ADD_CALLBACK( pIntf->p_libvlc, "intf-show" )
 
     ADD_CALLBACK( pIntf->p_sys->p_playlist, "item-current" )
@@ -200,7 +200,7 @@ VlcProc::~VlcProc()
 
     interaction_Unregister( getIntf() );
 
-    var_DelCallback( getIntf()->p_libvlc, "volume-change",
+    var_DelCallback( getIntf()->p_sys->p_playlist, "volume-change",
                      onGenericCallback, this );
     var_DelCallback( getIntf()->p_libvlc, "intf-show",
                      onGenericCallback, this );
index 3fadb4fbc319a891ed5e5ba031d376a34f4b75da..d5e0ba78d488d4e5e9ca9b8419b09a3904c3b2c2 100644 (file)
@@ -104,7 +104,7 @@ int doVolumeChanges( unsigned action, vlc_object_t * p_object, int i_nb_steps,
 
     if ( p_aout ) aout_lock_volume( p_aout );
 
-    b_var_mute = (bool)var_GetBool( p_object->p_libvlc, "volume-muted");
+    b_var_mute = var_GetBool( p_object, "volume-muted");
 
     const bool b_unmute_condition = ( /* Also unmute on increments */
                     ( action == INCREMENT_VOLUME )
@@ -124,10 +124,8 @@ int doVolumeChanges( unsigned action, vlc_object_t * p_object, int i_nb_steps,
     if ( b_unmute_condition )
     {
         /* Restore saved volume */
-        var_Create( p_object->p_libvlc, "saved-volume", VLC_VAR_INTEGER );
-        i_volume = (audio_volume_t)var_GetInteger( p_object->p_libvlc,
-                                                   "saved-volume" );
-        var_SetBool( p_object->p_libvlc, "volume-muted", false );
+        i_volume = var_GetInteger( p_object, "saved-volume" );
+        var_SetBool( p_object, "volume-muted", false );
     }
     else if ( b_mute_condition )
     {
@@ -137,7 +135,7 @@ int doVolumeChanges( unsigned action, vlc_object_t * p_object, int i_nb_steps,
 
     if ( action == INCREMENT_VOLUME )
     {
-        i_volume_step = config_GetInt( p_object->p_libvlc, "volume-step" );
+        i_volume_step = var_InheritInteger( p_object, "volume-step" );
 
         if ( !b_unmute_condition )
             i_volume = config_GetInt( p_object, "volume" );
@@ -152,14 +150,13 @@ int doVolumeChanges( unsigned action, vlc_object_t * p_object, int i_nb_steps,
             i_volume = i_new_volume;
     }
 
-    var_Create( p_object->p_libvlc, "saved-volume", VLC_VAR_INTEGER );
-    var_SetInteger( p_object->p_libvlc, "saved-volume" , i_volume );
+    var_SetInteger( p_object, "saved-volume" , i_volume );
 
     /* On Mute */
     if ( b_mute_condition )
     {
         i_volume = AOUT_VOLUME_MIN;
-        var_SetBool( p_object->p_libvlc, "volume-muted", true );
+        var_SetBool( p_object, "volume-muted", true );
     }
 
     /* Commit volume changes */
@@ -176,7 +173,7 @@ int doVolumeChanges( unsigned action, vlc_object_t * p_object, int i_nb_steps,
     }
 
     /* trigger callbacks */
-    var_TriggerCallback( p_object->p_libvlc, "volume-change");
+    var_TriggerCallback( p_object, "volume-change" );
     if ( p_aout )
     {
         var_SetBool( p_aout, "intf-change", true );
@@ -278,7 +275,7 @@ bool aout_IsMuted( vlc_object_t * p_object )
     bool b_return_val;
     aout_instance_t * p_aout = findAout( p_object );
     if ( p_aout ) aout_lock_volume( p_aout );
-    b_return_val = var_GetBool( p_object->p_libvlc, "volume-muted");
+    b_return_val = var_GetBool( p_object, "volume-muted");
     if ( p_aout )
     {
         aout_unlock_volume( p_aout );
index 65217123aee9c2687dfa9badcc3b30a56a8bdb66..f28b36998d491a24aa60641212ce31953652a6a6 100644 (file)
@@ -546,6 +546,9 @@ libvlc_media_player_new( libvlc_instance_t *instance )
 
      /* Audio */
     var_Create (mp, "aout", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
+    var_Create (mp, "volume-muted", VLC_VAR_BOOL);
+    var_Create (mp, "saved-volume", VLC_VAR_INTEGER);
+    var_Create (mp, "volume-change", VLC_VAR_VOID);
     var_Create (mp, "find-input-callback", VLC_VAR_ADDRESS);
     var_SetAddress (mp, "find-input-callback", find_input);
 
index cbc575e498584cd04a0b44cb9c955063d941cc2f..58f588a5ea70fcea0911fd2e91a641cb418b2406 100644 (file)
@@ -836,11 +836,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     /*
      * Load background interfaces
      */
-    /* Create volume callback system. (this variable must be created before
-       all interfaces as they can use it) */
-    var_Create( p_libvlc, "volume-change", VLC_VAR_VOID );
-    var_Create( p_libvlc, "volume-muted", VLC_VAR_BOOL );
-
     psz_modules = var_CreateGetNonEmptyString( p_libvlc, "extraintf" );
     psz_control = var_CreateGetNonEmptyString( p_libvlc, "control" );
 
index b0a05cea702bdfb651db1b7de18bb253faecc00d..0da299761c45880fa6ac03156fb0a065d8b9b3fe 100644 (file)
@@ -323,6 +323,10 @@ static void VariablesInit( playlist_t *p_playlist )
     /* Variables to preserve video output parameters */
     var_Create( p_playlist, "fullscreen", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
 
+    /* Audio output parameters */
+    var_Create( p_playlist, "volume-muted", VLC_VAR_BOOL );
+    var_Create( p_playlist, "saved-volume", VLC_VAR_INTEGER );
+    var_Create( p_playlist, "volume-change", VLC_VAR_VOID );
     /* FIXME: horrible hack for audio output interface code */
     var_Create( p_playlist, "find-input-callback", VLC_VAR_ADDRESS );
     var_SetAddress( p_playlist, "find-input-callback", playlist_FindInput );