WIP Home menu customisation / custom node extension
#1
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
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#2
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 Wink

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
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#3
(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).
Always read the XBMC online-manual, FAQ and search the forums before posting.
Do NOT e-mail Team-XBMC members asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting, make sure you read this first

My previous forum/trac nickname: grajen3
Reply
#4
don't forget that we should provide a GUI to adjust the menu items/tree
Reply
#5
For updated VS project files check the last commit in https://github.com/Montellese/xbmc/compa...y_provider
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#6
@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.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#7
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.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#8
(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).
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#9
diff to get it to compile on linux:
http://paste.ubuntu.com/5784915/
Do not PM or e-mail Team-Kodi members directly asking for support.
Always read the Forum rules, Kodi online-manual, FAQ, Help and Search the forum before posting.
Reply

Logout Mark Read Team Forum Stats Members Help
Home menu customisation / custom node extension0