[vlc-devel] [PATCH v2 01/11] core: move all actions handling in actions.c

Hugo Beauzée-Luyssen hugo at beauzee.fr
Fri Aug 11 15:58:27 CEST 2017

On Fri, Aug 11, 2017, at 02:23 PM, Rémi Denis-Courmont wrote:
> On vendredi 11 août 2017 12:01:24 EEST Hugo Beauzée-Luyssen wrote:
> > > You can´t have a default with variadic parameters. You need to know if
> > > there
> > > will be a first variadic parameter, and if so, of what type, from the
> > > fixed
> > > parameters. And none of the three fixed parameters allow that.
> > 
> > This is what patch 2 does. I can rebase 1 & 2 together if you feel it
> > should be done that way.
> At this point, the origin context can only either be an interface or a
> video 
> window. I imagine it could be a LibVLC media player, or maybe an audio
> output 
> in the future.
> So right now, there are two cases. In the future, we could have maybe
> three or 
> four cases, all of them just one object pointer. Frankly, I don't see the 
> benefit of using a variadic prototype to vary the type of one single
> pointer. 
> You could use a single void or vlc_object_t pointer, or  you could just
> have 
> different functions with full type safety. Heck, we could even pass this
> via a 
> new vout_window_t event on the one hand, and a new intf-specific function
> or 
> callback on the other hand.

Either we want to be future proof and in this case, I don't see why
there couldn't be 2 different entities being provided as context, in
which case variadic arguments seems like the proper solution (which also
enabled one to not specify any arguments and use the current
input/vout/whatnot as context), or we only care about what is currently
supported, in which case the context is not required, as it's always the
current playlist/input/vout/aout.

  Hugo Beauzée-Luyssen
  hugo at beauzee.fr

More information about the vlc-devel mailing list