Kodi Community Forum

Full Version: XBMC for Linux skinning engine issue (bug?)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've been playing about with the Linux port for the last few days on my eee pc and it works fantastically well with the defauly PM III skin. I then tried to look at getting the Fluid skin to run on it but it crashes straight after the splash screen.

The skin itself works fine in the XBMC_PC app but it looks like it having problems trying to scale it for the resolution on the eee?

Has anyone had any similar issues with any of the other skins?

The message I get in the console is as follows:

XboxMediaCenter: GUIBaseContainer.cpp:460: virtual void CGUIBaseContainer::CalculateLayout(): Assertion 'm_focusedLayout && m_layout' failed.
Aborted (core dumped)

and the log is linked below:

xbmc.log
I have had users of Fusion report to me that XBMC for Linux doesn't seem to always use the right skin directories.

Not having this hardware/software i'm going off second hand information, but apparently for example if you are running at 1280x720 resolution, it doesn't read the skin in the 720p directory but instead the SD PAL/NTSC 16x9 directories.

Could you perhaps be having a similar issue?
I'm almost certain it's reading from the PAL16x9 folder and I have been going through the code on the home screen trying to figure out what part of the code is causing the problem and by cutting it down to a single wraplist I can get it to run without crashing but as soon as I add a list control the crash occurs - locks up the mouse pointer so I have to reboot to clear it.
Errors like
Code:
Error loading includes.xml file (/home/simon/XBMC/BUILD/skin/Project_Fluid/PAL/includes.xml): Failed to open file (row=0, col=0)
unable to load:/home/simon/xbmc/build/skin/project_fluid/pal/dialogvolumebar.xml, Line 0

seem to suggest that it could be a case sensitivity issue (i.e. Linux is case-sensitive wrt filenames and Windows doesn't care).
Yeah I remembered that when the skin wouldn't run at all until I realised we had a Skin.xml instead of a skin.xml file!

I'm going to have a deeper look through it tonight and/or tomorrow and see if I can't track it down a bit more.
Well after a bit of a break I've come back at it and managed to solve the problem! Big Grin

I played about with files in different locations and found that if I moved the Includes.xml from the PAL16x9 folder (where the Home.xml file was definitely being picked up from) and placed it in the PAL folder instead then I could stop it crashing! I then continued to develop the skin code in the PAL16x9 folder but had to leave Includes.xml in the PAL folder as it would not be picked up from within PAL16x9.

Finally I thought about linux being case-sensitive and tried moving it back to the PAL16x9 folder and renaming it includes.xml and that worked! Nod

So it seems that if it's called Includes.xml then it can be picked up from within the PAL folder but if it's called includes.xml then it can be picked up from anywhere?

Is there a list anywhere that says which files are case-sensitive? (at the moment the only 2 I've found for sure are skin.xml and includes.xml)

Skin development on the eee is now looking good which is a great alternative for me when I'm not at home. Cool

PS I've had to do a number of conversions to adapt the code from 720p to PAL16x9 and all of it can be automated. I'm thinking about writing a quick and simple helper app to do such conversions. If anyone else would be interested in such as app then I'll post it to the forums when I'm done.
Quickest solution would be to just blow through all the files and tolower() any path references then do the same to every file. Of course this would require the textures being rebundled on a windows machine.