[vlc-devel] [PATCH] Add mappings for some new libvlc events
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Mon Dec 14 18:26:45 CET 2015
On 12/14/2015 05:59 PM, Daniel Amm wrote:
> ---
> vlcpp/EventManager.hpp | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 72 insertions(+)
>
> diff --git a/vlcpp/EventManager.hpp b/vlcpp/EventManager.hpp
> index f15ea46..15ff377 100644
> --- a/vlcpp/EventManager.hpp
> +++ b/vlcpp/EventManager.hpp
> @@ -700,6 +700,78 @@ class MediaPlayerEventManager : public EventManager
> (*callback)( e->u.media_player_es_changed.i_type, e->u.media_player_es_changed.i_id );
> });
> }
> +
> + /**
> + * \brief onCorked Registers an event called when the playback is paused automatically for a higher priority audio stream
> + * \param f A std::function<void(void)> (or an equivalent Callable type)
> + */
> + template <typename Func>
> + RegisteredEvent onCorked( Func&& f )
> + {
> + return handle( libvlc_MediaPlayerCorked, std::forward<Func>( f ) );
> + }
> +
> + /**
> + * \brief onUncorked Registers an event called when the playback is unpaused automatically after a higher priority audio stream ends
> + * \param f A std::function<void(void)> (or an equivalent Callable type)
> + */
> + template <typename Func>
> + RegisteredEvent onUncorked( Func&& f )
> + {
> + return handle( libvlc_MediaPlayerUncorked, std::forward<Func>( f ) );
> + }
> +
> + /**
> + * \brief onMuted Registers an event called when the audio is muted
> + * \param f A std::function<void(void)> (or an equivalent Callable type)
> + */
> + template <typename Func>
> + RegisteredEvent onMuted( Func&& f )
> + {
> + return handle( libvlc_MediaPlayerMuted, std::forward<Func>( f ) );
> + }
> +
> + /**
> + * \brief onUnmuted Registers an event called when the audio is unmuted
> + * \param f A std::function<void(void)> (or an equivalent Callable type)
> + */
> + template <typename Func>
> + RegisteredEvent onUnmuted( Func&& f )
> + {
> + return handle( libvlc_MediaPlayerUnmuted, std::forward<Func>( f ) );
> + }
> +
> + /**
> + * \brief onAudioVolume Registers an event called when the current audio volume changes
> + * \param f A std::function<void(float)> (or an equivalent Callable type)
> + * The provided float is the new current audio volume percentage.
> + */
> + template <typename Func>
> + RegisteredEvent onAudioVolume( Func&& f )
> + {
> + EXPECT_SIGNATURE(void(float));
> + return handle( libvlc_MediaPlayerAudioVolume, std::forward<Func>( f ), [](const libvlc_event_t* e, void* data)
> + {
> + auto callback = static_cast<DecayPtr<Func>>( data );
> + (*callback)( e->u.media_player_audio_volume.volume );
> + });
> + }
> +
> + /**
> + * \brief onAudioDevice Registers an event called when the current audio output device changes
> + * \param f A std::function<void(std::string)> (or an equivalent Callable type)
> + * The provided string is the new current volume.
> + */
> + template <typename Func>
> + RegisteredEvent onAudioDevice( Func&& f )
> + {
> + EXPECT_SIGNATURE(void(std::string));
> + return handle( libvlc_MediaPlayerAudioDevice, std::forward<Func>( f ), [](const libvlc_event_t* e, void* data)
> + {
> + auto callback = static_cast<DecayPtr<Func>>( data );
> + (*callback)( e->u.media_player_audio_device.device );
> + });
> + }
> #endif
> };
>
>
Hi,
If I'm not mistaking, libvlc 2.2 also has corked/uncorked, mute/unmute &
volume changed events.
You should move the wrappers for those out of the #if
LIBVLC_VERSION_INT... scope.
Audio device is 3.0 only indeed.
LGTM otherwise :)
Regards,
More information about the vlc-devel
mailing list