2010-06-22, 16:35
I managed to update my existing XOT-Uzg.v3 script to the new addon module. I do however have some problems regarding the location of skin-files for the WindowXML skins and how fallback is handled.
I have a resources\skins\Confluence\ folder with subfolders: 720p and media. In the 720p folder are some xml files that represent the different windows. When the screensize of XBMC is large enough (720p and larger), it will find those files and load correctly and even upscales the windows. However, if I shrink the XBMC window to a smaller than 720p resolution, I get the error:
Using my own debug build I pinned it down the the following issue:
If I call the skin skin.confluence everything works fine. This is because the determination of folder in which the XML should be is handled by the code in winxml.cpp line 92-111. There it uses the g_SkinInfo object to determine the XML path. That object has a Default Resolution set.
However, if skin.confluence is not found (in my case) the determination of the XML location is done by the code in winxml.cpp line 113-132 and it uses a dummy skinInfo which does not have any Default Resolution information. So if the resolution cannot be determined (it's to low) by the skinInfo object it will fallback to the default resolution, which is unknown and it will try to find the XML file in the root folder of the resources\skins\Confluence folder. They are not there and the error occurs.
If I move the files to the root folder XBMC crashes on running the script". I get the following error:
I have a resources\skins\Confluence\ folder with subfolders: 720p and media. In the 720p folder are some xml files that represent the different windows. When the screensize of XBMC is large enough (720p and larger), it will find those files and load correctly and even upscales the windows. However, if I shrink the XBMC window to a smaller than 720p resolution, I get the error:
Code:
20100622 15:26:46 - CRITICAL - default.py - 151 - | Traceback (most recent call last):
20100622 15:26:46 - CRITICAL - default.py - 151 - | File "D:\XBMC\XBMC_PC\portable_data\addons\net.rieter.xot\default.py", line 142, in ?
20100622 15:26:46 - CRITICAL - default.py - 151 - | MyWindow = progwindow.GUI(config.appSkin ,config.rootDir, config.skinFolder)
20100622 15:26:46 - CRITICAL - default.py - 151 - | TypeError: XML File for Window is missing
Using my own debug build I pinned it down the the following issue:
If I call the skin skin.confluence everything works fine. This is because the determination of folder in which the XML should be is handled by the code in winxml.cpp line 92-111. There it uses the g_SkinInfo object to determine the XML path. That object has a Default Resolution set.
However, if skin.confluence is not found (in my case) the determination of the XML location is done by the code in winxml.cpp line 113-132 and it uses a dummy skinInfo which does not have any Default Resolution information. So if the resolution cannot be determined (it's to low) by the skinInfo object it will fallback to the default resolution, which is unknown and it will try to find the XML file in the root folder of the resources\skins\Confluence folder. They are not there and the error occurs.
If I move the files to the root folder XBMC crashes on running the script". I get the following error:
Code:
Debug Assertion Failed!
Program: D:\xbmc\xbmc_pc\xbmc.exe
File: c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
Line: 779
Expression: vector subscription out of range