@@ -75,6 +75,10 @@ static int
75
75
mute_changed (vlc_object_t * obj , const char * name , vlc_value_t old ,
76
76
vlc_value_t cur , void * opaque );
77
77
78
+ static int
79
+ volume_changed (vlc_object_t * obj , const char * name , vlc_value_t old ,
80
+ vlc_value_t cur , void * opaque );
81
+
78
82
static void
79
83
add_es_callbacks ( input_thread_t * p_input_thread , libvlc_media_player_t * p_mi );
80
84
@@ -504,6 +508,19 @@ static int mute_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
504
508
return VLC_SUCCESS ;
505
509
}
506
510
511
+ static int volume_changed (vlc_object_t * obj , const char * name , vlc_value_t old ,
512
+ vlc_value_t cur , void * opaque )
513
+ {
514
+ libvlc_media_player_t * mp = (libvlc_media_player_t * )obj ;
515
+ libvlc_event_t event ;
516
+
517
+ event .type = libvlc_MediaPlayerAudioVolume ;
518
+ event .u .media_player_audio_volume .volume = cur .f_float ;
519
+ libvlc_event_send (mp -> p_event_manager , & event );
520
+ VLC_UNUSED (name ); VLC_UNUSED (old ); VLC_UNUSED (opaque );
521
+ return VLC_SUCCESS ;
522
+ }
523
+
507
524
/**************************************************************************
508
525
* Create a Media Instance object.
509
526
*
@@ -683,9 +700,11 @@ libvlc_media_player_new( libvlc_instance_t *instance )
683
700
register_event (mp , Uncorked );
684
701
register_event (mp , Muted );
685
702
register_event (mp , Unmuted );
703
+ register_event (mp , AudioVolume );
686
704
687
705
var_AddCallback (mp , "corks" , corks_changed , NULL );
688
706
var_AddCallback (mp , "mute" , mute_changed , NULL );
707
+ var_AddCallback (mp , "volume" , volume_changed , NULL );
689
708
690
709
/* Snapshot initialization */
691
710
register_event (mp , SnapshotTaken );
@@ -737,6 +756,7 @@ static void libvlc_media_player_destroy( libvlc_media_player_t *p_mi )
737
756
"snapshot-file" , snapshot_was_taken , p_mi );
738
757
739
758
/* Detach callback from the media player / input manager object */
759
+ var_DelCallback ( p_mi , "volume" , volume_changed , NULL );
740
760
var_DelCallback ( p_mi , "mute" , mute_changed , NULL );
741
761
var_DelCallback ( p_mi , "corks" , corks_changed , NULL );
742
762
0 commit comments