[vlc-devel] [PATCH] Add mappings for some new libvlc events
Daniel Amm
da2424 at t-online.de
Mon Dec 14 20:03:37 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,
Ooops, you're right. I was thinking that these events were only added in
libvlc 3.
Do we need a check for libvlc 2.2.2 instead?
More information about the vlc-devel
mailing list