[vlc-devel] commit: Store audio output interface variables into the input manager object ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sun Feb 14 16:12:51 CET 2010
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Feb 14 17:11:36 2010 +0200| [2932220e9ed7d99f8b8397f1b578c9f0a3a1aa3b] | committer: Rémi Denis-Courmont
Store audio output interface variables into the input manager object
This partially fixes multiple media players in LibVLC. This also
removes a few run-away var_Create() in doVolumeChanges().
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2932220e9ed7d99f8b8397f1b578c9f0a3a1aa3b
---
modules/control/rc.c | 4 ++--
modules/gui/qt4/input_manager.cpp | 8 ++++----
modules/gui/skins2/src/vlcproc.cpp | 4 ++--
src/audio_output/intf.c | 19 ++++++++-----------
src/control/media_player.c | 3 +++
src/libvlc.c | 5 -----
src/playlist/engine.c | 4 ++++
7 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/modules/control/rc.c b/modules/control/rc.c
index 2c6d574..0e2035d 100644
--- a/modules/control/rc.c
+++ b/modules/control/rc.c
@@ -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 );
}
diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
index 670b3c7..85e2bb4 100644
--- a/modules/gui/qt4/input_manager.cpp
+++ b/modules/gui/qt4/input_manager.cpp
@@ -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 );
diff --git a/modules/gui/skins2/src/vlcproc.cpp b/modules/gui/skins2/src/vlcproc.cpp
index 76f2ca7..b0981bb 100644
--- a/modules/gui/skins2/src/vlcproc.cpp
+++ b/modules/gui/skins2/src/vlcproc.cpp
@@ -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 );
diff --git a/src/audio_output/intf.c b/src/audio_output/intf.c
index 3fadb4f..d5e0ba7 100644
--- a/src/audio_output/intf.c
+++ b/src/audio_output/intf.c
@@ -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 );
diff --git a/src/control/media_player.c b/src/control/media_player.c
index 6521712..f28b369 100644
--- a/src/control/media_player.c
+++ b/src/control/media_player.c
@@ -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);
diff --git a/src/libvlc.c b/src/libvlc.c
index cbc575e..58f588a 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -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" );
diff --git a/src/playlist/engine.c b/src/playlist/engine.c
index b0a05ce..0da2997 100644
--- a/src/playlist/engine.c
+++ b/src/playlist/engine.c
@@ -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 );
More information about the vlc-devel
mailing list