[vlc-devel] [PATCH] ActiveX/Mozilla FullScreen support

Jean-Paul Saman jpsaman at gmail.com
Mon May 23 15:27:49 CEST 2011


2011/5/23 Sergey Radionov <rsatom at gmail.com>:
> 23.05.2011 18:29, Jean-Paul Saman пишет:
>> 2011/5/23 Sergey Radionov<rsatom at gmail.com>:
>>> 23.05.2011 15:20, Jean-Paul Saman пишет:
>>>> On Sun, May 22, 2011 at 4:10 PM, Sergey Radionov<rsatom at gmail.com>

>>>> ---
>>>> 2) What is the purpose of:
>>>>
>>>> +    STDMETHODIMP get_NewMessageFlag(VARIANT_BOOL* vYes);
>>>> +    STDMETHODIMP put_NewMessageFlag(VARIANT_BOOL vYes);
>>>>
<... snip ... >
>> I do not see the use case for this from the above description.
>
> Imagine, we have some web site, which embed VLC, and web site has internal
> messaging sistem (between users of site, or between users and
> administration). User switch to FullScreen and watch video (long video, 1
> hour or more), and administration send urgent message to user("tornado,
> escape!" :), but user don't see it - he in fullscreen mode... and with this
> function he has blinking icon on control panel, informing him about message,
> all simple.

IMHO this is not code that belongs in VLC, but is part of the website design.

>>>> ---
>>>> 3) The methods (on the fullscreen window for activex AND mozilla):
>>>>
>>>> +void VLCFullScreenWnd::RegisterEvents()
>>>> +void VLCFullScreenWnd::UnRegisterEvents()
>>>> +void VLCFullScreenWnd::handle_input_state_event(const libvlc_event_t*
>>>> event, void *param)
>>>>
>>> no, it not duplication. FullScreen window is exactly the same client to
>>> vlc
>>> lib, as VLCPlugin. I made this to minimize changes in main code.
>>>
>>>> are duplication of methods in file plugin.cpp (for mozilla the file is
>>>> vlcplugin.cpp):
>>>>
>>>> void VLCPlugin::player_register_events()
>>>> void VLCPlugin::player_unregister_events()
>>>> static void handle_input_state_event(const libvlc_event_t* event, void
>>>> *param)
>>>>
>>>> The fullscreen window should refer to the object VLCPlugin (which
>>>> wraps libvlc access) instead of duplicating its
>>>> functionality. In case of fullscreen a messsage should also be sent to
>>>> the objects in the fullscreen window (if appropriate).
>>>
>>> I think, this is not nessesary complication, which have no any
>>> advantages,
>>> but can bring some new bugs. But, may be, I don't understand something :)
>>
>> It looks to me as duplication, so I would like to move the
>> libvlc_event/handle_event code
>> to VLCPlugin objects. Since that wraps libVLC code for the webplugins.
>>
> ok, I see what I can do.
>
>> In the fullscreen window implementation you need a pointer to the
>> VLCPlugin instance, hence your defintion of:
>>
>> +typedef VlcPlugin VLCPlugin;
>> +
>> +inline libvlc_media_player_t* getMD(VLCPlugin* p_instance)
>> +{
>> +       return p_instance->getMD();
>> +}
>>
>> Why not make it integral part of the fullscreen class?
>>
> I try minimize difference in code for ActiveX and Mozilla code.
> And may be in future, combine it into one file (may be with some #define, as
> usual). And for this I try localize differences in one place(top of the
> file).
>
> And also, by this reason, I move npVlcFullScreen.h and axVlcFullScreen.h to
> "projects folder - because, may be in future, they stand one shared file...
>
> But may be you are right, I think about it.

In vlc-1.2.0-git the folders project/activex and projects/mozilla are
no longer directly part of the vlc tree. They have been split in
separate git trees.
The mozilla and activex plugins do not share code atm. At this point
it is cleaner not to do that anyway.

----
Kind Regards,
Jean-Paul Saman



More information about the vlc-devel mailing list