Do you know how the myth protocol works? Here's how our stuff works:
In every house there is one instance of the Pluto device 'myth tv plugin' (child of dcerouter). This registers with media plugin to say that it knows how to control and coordinate myth players. It's job is to handle house-wide logic related to myth, and is always given the chance to preprocess messages that will go to the myth player. For example, it could be the one to say "user wants to watch myth tv in the bedroom. the bedroom doesn't have a pvr card. but there's a media director in the den which does, and which isn't being used now. so i'll send the bedroom a 'play media' command and tell it to use the myth backend in the den with ip X".
The plugin also has the responsibility for providing datagrids (like EPG, etc.) that appear on the orbiters (phones, pda's, etc.), and would likely be the place to handle recording commands, although it is debatable how much of this logic goes in the myth plugin vs. myth player device.
unlike the mythtv plugin which runs only 1 time on the core, the mythtv player is a device which exists on every media director where myth is running, and this is the 'myth wrapper' that receives commands in pluto's dce format (skip forward, pause, channel 50, etc.) and forwards them to myth. It should also fire events based on the state of myth. For example, if the user starts watching time lapse it needs to fire a live tv=0 event so the pluto plugin that manages setting inputs on a/v equipment can switch the inputs on the tv/receiver to display the output from the pc rather than the direct output from the sat/cable box. It would also monitor the state of the myth front end and fire appropriate 'set screen type' and 'goto screen' messages. For example, when you're watching live tv the remote on the pda/webpad and mobile phone would show the current show information, and the navigation buttons, such as the jog dial on the phone, would probably change channels. But if the user hits the 'menu' button and goes into myth setup, or maybe the epg guide, then the remote control on the orbiters should change. Instead of the jog dial on the phone changing channels, it should now scroll the program guide, and instead of showing current broadcast info on the pda, maybe another menu is more appropriate.
This, however, isn't implemented with myth since we don't have the low level comunication. All we do is simulate keystrokes. We don't know what the state of the front end is, and we cannot adjust the UI on the phones accordingly, nor change inputs with live vs recorded tv. All we do is when the user hits 'up' on the phone we simulate an up keystroke.
This key stuffing approach means our current myth code is super simple and we made absolutely no changes to myth--it's just a vanilla myth release. However it does limit the user experience.