Yes, I should leave more status updates here, otherwise the moss sets in, people start worrying
sqlite stuff: there's code in my subversion branch that is the basis for CTVDatabase - the class that handles all access to the sqlite file we need to store all the schedule data. As it is I can fill it and retrieve the listings back channel by channel. Of course we need more access methods, such as searching functions, filtering by field etc. Speed wise, it's a painful process:
Quote:m_database.GetDataEnd() took 828 ms to return
m_database.GetChannels() took 15 ms to return
CGUIWindowEPG::GetGridData returned 860 items in 1836 ms (2 days of 35 channels)
CGUIEPGGridContainer::UpdateItems completed successfully in 172 ms
GetDataEnd is a stupid method I use to find out what date the data runs out in the db. It will need to be replaced by a static value stored somewhere, so that can be ignored; nearly 2 seconds to get 860 items is pretty shocking however. Improvement needed here as this is performed each time you flick to the TV guide window. I know it's possible to cache this data and/or improve the query and design of the db.
GUI TV guide: There's code in svn for a window (CGUIWindowEPG) that retrieves 2 days of data as a 2d vector of FileItems, builds a grid of GUIListItems and which can be navigated reasonably well. This has been a really tough thing to get working, tough because I've made mistakes, have been improving and reshaping a lot of code, and primarily because I came to this with a very limited understanding of XBMC's GUIlib. (I wouldn't recommend my approach for time limited projects..) There are some nice things in it, such as semi-intelligent navigation, proper horizontal scrolling rather than page flipping; the basis of a reasonably sophisticated container class. It's needless to say, there's a lot more to do, and challenges are ahead - but I'm still enjoying myself