Page 1 of 1

Win32/Win9x Skins2 related points

Posted: 15 Jun 2005 12:02
by zcot
howdy...

great program in so many ways. I like it alot.

I'm having various issues when using the Skins2 environment for Win32 on Win98(w/Plus), treating vlc as a simple mp3 player.

I am willing and interested to get involved with the inplementation/development hereof, but dont have any experience with CVS(or SVN) though I do understand the concepts.

Here are some issues I am experiencing, using the provided skins2 and/or custom skins2 I have been testing with. Most of the problems I am seeing appear to be graphically related.

-mainly, a fatal error that appears to relate to the skin.dll(the music always keeps playing flawlessly behind the fatal error dialog). I have been able to disable the seek scrollbar on many occasions to see the problem go away. Also it seems putting a seek scrollbar on the playlist window appears to create a problem as well(maybe the same issue). Perhaps there is a png format issue here? -I often see "not a dibsection, bddraw = 0" on the debug console.

-the help contexts are often blank of text, or don't show at all, and are never synched with the desktop settings(color/font), and its appears alot of issues could be related to synching to the desktop settings properly(getting some other issues with botched fonts overtaking the standard dialogs etc.).

-the current playlist media TEXT always disappears after the first song is over. At other times you can end up with the entire playlist window showing gray if you click around on the text entries and/or do some sorting(things that would involve refreshing the view to the screen).

-the $T, $D, and/or $N TEXTS always have problems, -disappearing after a short period of time and never coming back.

-various XML elements are not happening properly: Theme::tooltipfont="arial12"
Theme::alpha="200"
Theme::movealpha="150"
Window::visible="false"
Window::playondrop="false"
Playlist::bgimage="plbgpic"

The majority of what I am seeing seems to be related to the Win32 graphical situation. I know that because so many things are often in the development stage there can be issues, but I think alot of these can be handled with some integral adjustments for the situation.

Any advice on getting involved in the respective areas? Who is a good contact?

Posted: 15 Jun 2005 21:19
by ipkiss
First of all, which version of VLC did you use for your tests? I advise you to try all that again with vlc-0.8.2-test2 (or even with a nightly build: http://www.videolan.org/~videolan/) to see if the bugs are still there.

- the fatal error: this is definitely a bug in VLC. If you have an easy way to reproduce it, i can have a look at it... Are there any warnings/errors in the logs before the crash? Use the "-vvv --extraintf logger" options to enable the logs easily.

- the message "not a dibsection, bddraw = 0" is not output by VLC, it is a debug message left in one of the DLLs in Windows! I don't remember what it means exactly.

- concerning the help contexts, are you sure they are defined in the skin? The font and color are imposed, you cannot change them currently.

- i have never seen the problem of disappearing text for $D, $N and $T. Does it happen for all of them? only the scrolling ones? Can you tell me how to reproduce the problem?

- Theme::alpha and Theme::movealpha only work for windows NT/2000/XP, and they dont work well anyway (you need to activate an option in the preferences to enable them)

- what's wrong with the other attributes?
Make sure to read the documentation on http://www.videolan.org/vlc/skins2-create.html...

If you want to have a look at the source code for the skins, it is available in modules/gui/skins2. Don't hesitate to ask if you have questions about it...

Posted: 16 Jun 2005 10:06
by zcot
ok, great, thanks for the info.. -I will continue with this. I've subscribed to the vlc and vlc-dev lists so I'll be checking around there as well as the SVN tree.

Any messing around I have done, I used versions before vlc-0.8.2-test2 or test1 even I guess?
..the fatal error: this is definitely a bug in VLC. If you have an easy way to reproduce it, i can have a look at it
I could reproduce it easily in various situations, and apparently prevent it from happening as well by taking out some of the skin functionality. I'll try to pinpoint some things more definitely.
- what's wrong with the other attributes?
just quick examples:

do Window::visible="false" on the separately defined playlist window and it is shown anyway from the start.

do Window::playondrop="false" and drag something on there and it'll play anyway.

and Playlist::bgimage="plbgpic" is just a failure from the start in my context(but the other mode works nicely ; ).

this stuff is mainly trivial to me since it can be worked around and vlc still stands nicely and does the job, but more than anything I can understand the madness of doing such full cross-platform implementations, and I am an analyst by nature so I could make it useful for something good.

Posted: 16 Jun 2005 21:48
by ipkiss
do Window::visible="false" on the separately defined playlist window and it is shown anyway from the start.
Indeed, i have checked the code, and the Window::visible attribute is completely ignored... This is rather easy to fix, but i don't have the time currently.
Feel free to do it :)
do Window::playondrop="false" and drag something on there and it'll play anyway.
This one works perfectly for me.

Posted: 16 Jun 2005 22:44
by zcot
Indeed, i have checked the code, and the Window::visible attribute is completely ignored...
where? :wink:

thanks, maybe i can do something for it

Posted: 16 Jun 2005 23:39
by ipkiss
In Builder::addWindow, rData.m_visible is not given to the constructor of the TopWindow object.
This also means that this constructor must be extended to support that parameter, and must handle it (passing it to its parent GenericWindow, which can set its m_varVisible accordingly).

But keep in mind that the expected behaviour is the one described in the documentation:
Since VLC remembers the skin windows position and visibility, this attribute will only be used the first time the skin is started.

Posted: 17 Jun 2005 07:55
by zcot
ok yes, I traced that out...

haha! wow.. :shock:

-lots of code.. and this only being the first few times I've looked at it, it's easy to get bogged down in the relationship of the deep detail of it all(I'm new at this too ; ).

Any chance of some diagrams laying around? some design docs?.. -I dont think I've run into those yet. :lol:

thanks for the info, I'll continue onward..

Posted: 19 Jun 2005 13:06
by ipkiss
There is some UML design there: http://people.via.ecp.fr/~asmax/skins/
It is a bit old (a few classes have been renamed since then), but the relationships between classes are still rather relevant.
It doesn't contain everything though (the parser is not represented at all...)

Otherwise, you can generate the Doxygen documentation of the skins2 module, it is generally very helpful. You can use the Doxyfile.skins2 file in the doc/ directory to do that.