Ok, First working prototype is up and available here:
https://github.com/jmarshallnz/xbmc/tree...y_provider
I've somewhat hacked it on top of the video library node system - currently the node system resides in system/library/menu/
There's a couple of things to note:
1. No support as-yet for listing files inside folders. Well, they'll list just fine, but it won't know what to do when you click on an item.
2. Similarly, no support for running info/thumb loaders etc.
3. The system for determining where to load up a directory is currently a bit of a hack - basically I added a <target> field to nodes that specifies the window.
As a result of 3, these lists won't work inside the media window (unless the <path> tag is all it needs to resolve the virtual folder). Perhaps a better technique would be handling of a shortcut item in the media windows that essentially executes the appropriate ActivateWindow(). It could also then skip activating the current window etc. Thoughts appreciated.
Also, with the above, the music nodes won't work very well (due to the music files/library split) and I didn't bother with the LiveTV node setup as yet.
Please test it out/take a look at the code etc. - jenkins can do builds for ya.
Cheers,
Jonathan
Triggered a testbuild of that branch for providing links to the test willing people. But that didn't work that well. Only the OSX compile was successfull
So it seems you added a new source file but in the xcode project you didn't tick the ATV2 and IOS targets but only the OSX target. Also the windows project wasn't adapted. On android it failed aswell (something missing in the linux buildsys? Makefile adaption maybe?)
If someone wants to test it on OSX - here is the build:
http://mirrors.xbmc.org/test-builds/osx/...r-i386.dmg
(2013-06-18, 00:27)jmarshall Wrote: [ -> ]1. No support as-yet for listing files inside folders. Well, they'll list just fine, but it won't know what to do when you click on an item.
2. Similarly, no support for running info/thumb loaders etc.
Do You have plan of attack here?
For 1. I'd to rip all OnClick methods from mediawindow subclasses and pass item along with context to separate OnItemClickHandler. I'd like to do the same with context menu buttons creation and handling and move as much as possible.
For 2. I'd like to merge all thumb loaders into one that will do appropiate thing based on item media type and/or passed context.
Both 1 and 2 are needed if we want to populate lists with mixed or unkown content, right?
(2013-06-18, 00:27)jmarshall Wrote: [ -> ]3. The system for determining where to load up a directory is currently a bit of a hack - basically I added a <target> field to nodes that specifies the window.
As a result of 3, these lists won't work inside the media window (unless the <path> tag is all it needs to resolve the virtual folder). Perhaps a better technique would be handling of a shortcut item in the media windows that essentially executes the appropriate ActivateWindow(). It could also then skip activating the current window etc. Thoughts appreciated.
We need to know what window to activate and not always we can deduce it from path so context is needed. I'd drop target atribute and just put ActivateWindow commands directly in menu .xmls. After all, target is exactly just using ActivateWindow, so there's no need for it if we can do it ourselves? Anyway, we need to be able to define and exec builtins in menu .xml (i.e. PlayDVD, EjectTray).
don't forget that we should provide a GUI to adjust the menu items/tree
@pieh: ActivateWindow is not the way to go IMO when you consider that these may well be listed within the target window anyway, whereby all you need do is update the path. Also, note that the current menu system automatically lists the submenus in Confluence - the skinner just says "in list 2, give me the directory of the item focused in list 1", and in that case target is not required. Having them separate allows for them to be useful in more places. As for executing items, they feel more like files than anything else, but agreed that that would be needed. Thus the idea of a basic "shortcut" handler in the media windows. As for 1 and 2, IMO these are both something for a later iteration. Getting something working is iteration 1, and for that I'd just pop a handler in CGUIMediaWindow::OnClick().
@da-anda: Not in this iteration. I have no intention of providing said code, but others are welcome to do so.
@Memphiz: Is it possible to set within the project that all files should be added to all build steps always?
@Montellese: Thanks - will pull in.
Updated with the build fix for ATV2/IOS/Win32. Linux/Android I've probably missed something in the initial makefile commit. Will take a look later.
(2013-06-20, 00:36)jmarshall Wrote: [ -> ]@Memphiz: Is it possible to set within the project that all files should be added to all build steps always?
I guess you mean all xcode targets? (osx/ios/atv2) - afaik its not possible. But maybe mdd knows more (will try to remember to ask him once i catch him on irc again).