Gamester17 Wrote:XMLTV formated listings.xml for input from the client and a own epg.db SQL database for the storage does sounds logical.
However I do not think it should be the clients job to populate the SQL database directly, instead the clients job should be to provide the XMLTV formated listings.xml file to the XBMC EPG API, then it will the the job of XBMC EPG API to parse that file and populate the SQL database (which in turn the EPG GUI part will use).
another long post, apologies...
The issue I see with that approach, is that all client's will have to translate the EPG from whatever protocol they receive it from the server into one big XML file before the EPG updates the db. For instance people using VDR and EIT, will grab the EPG via SVDRP, then will have it converted to XML, then inserted in the db. Remember a lot of people won't be using XMLTV, and most will want to see the server's version of the EPG for consistency. If the server want's to grab XMLTV listing and blend it with program changes via EIT, then that's all the better for us.
Of course with this approach changes to the DB structure may need to be replicated by all the clients, however that problem could be solved by a thorough design for the DB in the first place.
How are live updates to the EPG going to be managed, with XBMC parsing a BIG file each time a program start time change happens? I'm also wondering how status messages for programmes, such as "Recording", "Schedule Clash" etc would be reported to the GUI. Flicking bools in the db could be an efficient way to manage these changes.
If in the future, the various client <-> server communications were improved, so that updates were pushed from the server, having the client update the db directly with a couple of SQL transactions seems more sensible than pushing an EPG change to the GUI, which then parses the entire XML file and looks for changes accordingly. This might indirectly cause slowdowns in the GUI.
I'll try and have a look at those sources some time today or tomorrow. Seeing how other people do this is definitely a top priority for me :-)