I have to say, I am somewhat generally disapointed. Almost nothing that is needed to get this prototype off the ground can be done with a VMC add-in even though most of it is straightforward. I would do my own thing from scratch as it would be less painful, but since the prototype calls for OCUR/CableCard support I am SOL...
1) Need to display Live TV and overlay special Content over it. Yes you can do as long as the content is MCML. Ok but the MCML needs to come from online. Oh sorry... Can't do that... So I either have to write my own code to get the markup from the web and store it to a local file. Or...
2) Display HTML on top of video. Can be done by using a livrary which I found to render web pages offline. The real problem is that the only way to display dynamic images inside MCML is to save the image to a file and have the graphic element update it's content. Which works, but can only achieve 3-4 updates per second. I realize the addin is hosted in a seperate process, but why can't it marshal image data between the process which would be orders of magnitude quicker than hitting the disk!
3) Ok, but since we're doing stuff over live tv, we need to be able to change channels. Sure you can call the PlayMedia API, but you can't access the guide or offer some of the built-in channel navigation features. Although it seems to be possible to pop the guide on top of my experience, selecting a channel just makes it navigate to regular live tv instead of my Add-in. So I guess, i'll have to implement my own Guide UI....
4) Oh wait, the Guide API don't give you full guide listings, they simply allow you to do searches for specific content so schedulings can be recorded. Oh but there is a way you can tap into raw guide database and do your own queries. Not too bad... But no, since I need to support Cable Cards, I need the TV pack installed, where the Database is now encrypted. So I now have to find an external feed for guide information since I can't use the built-in one.
If it wasn't for the need to support CableCards/OCUR tuners, I would have written my own application from scratch and would probably have been done by now. Somewhat frustrated since this 3-4 week project will end up taking 2-3 months due to all the existing functionality I have to recreate.