Kodi Community Forum

Full Version: UML diagrams and more in-depth documentation for XBMC?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Well,
I've been lurking around the corners here at XBMC since the early days, and recently the desire to perhaps help in the development just hit (I've been doing a fare amount of C work in university, C++ is new to me but I have a background in Java so I understand the OPP para-dime and the more I dink around with it the more comfortable I get). Anyways, I've already cloned the GIT repository and have XBMC compiling from source no problem. However, just jumping in seems like a little bit of a daunting task and has me feeling uneasy, mainly because I don't really understand how all the peaces are coming together. Anyways, I was wondering if there were any UML diagrams for XBMC's code base that I could look at to at least get a better idea of how all the peaces are interconnected (Classes, interfaces, object inheritance, etc). Also, as I've been browsing through all the source and header files I noticed that the in-file code documentation is lighter than I'm used to seeing. In either case, I've read everything on the Wiki about Linux development but haven't found the depth and breath of information that would help me get a better understanding.

Any pointers, would be extremely helpful.

Cheers,
xbmc is too big to try and comprehend all at once. It's best to focus on an individual piece of it rather than try to understand all of it.
You could start by building the doxy sources - should be as simple as running doxygen in the appropriate folder. Some stuff is doxy'd a lot more than others, but at least for the stuff that is doxy'd it should give you some idea.

But the best advice is to start in an area that takes your interest, and step through the code that affects that area until you have an idea of how things fit together.

We welcome documentation patches, and ofcourse will be happy to provide initial pointers etc.

Cheers,
Jonathan
Thanks davilla and jmarshal!

Ironically I had just built the Doxy documentation just before I checked the forum. It's a little sparse but like you said, but its a start Smile
I've got some school commitments over the next five weeks or so but when I'm done for the quarter I hope to spend some time familiarizing myself with the XBMC code tree.

My primary interest is in the way XBMC actually handles video content (i.e how it opens files, passes data to the decoder engine, and then finally, once frames are decoded onto the rendering framework). I don't have any experience with GL so that should be interesting but as for the rest I hope I'll be able to pick it up in time.

As for initial pointers, I would like to have a mentor of sorts, so if anyone can recommend a Developer that I can occasionally field questions to regarding my above interests, that would be fantastic.

Anyways, thank you for your time and help.

Cheers,
DVDPlayer.cpp -> DVDPlayerVideo.cpp (some decoder like DVDVideoCodecVDA.cpp) -> LinuxRendererGL.cpp

In a nut shell Smile