rbh
February 17th, 2006, 05:19 AM
My setup: A plasma TV with split screen. A Denon AVR4306 which has an Ethernet port. A HAI Omni Pro which does lights, security & sprinklers, a Russound 6-zone speaker system with IR collection from room keypads, 2 satellite receivers plus DVD, CD and my home PC which runs Girder, is not too far from the plasma and has second video output & sound. One satellite has a PVR but the software is not good and the TV guide only goes 3 days ahead and is dumb not smart like a TIVO so I might get Sage or Beyond TV or something.
So I am wondering how to pull all or most of this together. I am an experienced programmer having done C, C++, Vbasic, SQL, Java and most recently web pages & JavaScript. I groan at learning Lua, but if I use Girder then I must.
I've done a few short lua scripts and looked thru the forums. My basic hardware all works. I can learn IR codes and power up the plasma, talk to the Denon over IP. I have my own Java program to talk to the HAI over serial, but I am also trying to get the HAI plugin working with help from Proximis team.
Now to the point.
What is a good way of organising software for this lot? I don't think I want to do a true HTPC as I want to switch to HD and I wonder about the quality of PCI TV tuners for HD. My TV Wonder does not give a great picture on my hi-res PC LCD monitor although normal PC display looks good.
My thoughts are to use just the Denon to switch high quality TV and use the split screen capability of the plasma to have OSD with out having to worry about mixing HD signals. The TV also has a XGA input so I could switch to that too.
Back to the software. How to come with a scheme which is modular and allows components to be changed without having to reprogram the whole thing?
On the inputs side, the "Event mapping" feature of Girder allows different remotes to be nicely abstracted.
For outputs, I see that it would be possible to create a gml file for each device by creating a gml file with just Actions such as "DVD-PLAY" which would send the IR or IP or serial strings to the device and would abstract away model numbers and serial protocols.
Then the question remains what and how to put in the middle. My inclination is to put the whole lot in one or more Lua files and use AddEventHandler to capture events and TriggerEvent to send software commands to the abstracted outputs.
I see that many of the actions need to be modal. When I push PLAY, the current mode needs to determine if to play DVD, DVR or MP3. Easy to do with some lua variables!
I would appreciate any advice from anyone who has done all of this and is proud of his modularity, organisation, etc. I can see that it is easy to have a spaghetti mess that becomes a career and a nightmare to maintain, update or extend.
So I am wondering how to pull all or most of this together. I am an experienced programmer having done C, C++, Vbasic, SQL, Java and most recently web pages & JavaScript. I groan at learning Lua, but if I use Girder then I must.
I've done a few short lua scripts and looked thru the forums. My basic hardware all works. I can learn IR codes and power up the plasma, talk to the Denon over IP. I have my own Java program to talk to the HAI over serial, but I am also trying to get the HAI plugin working with help from Proximis team.
Now to the point.
What is a good way of organising software for this lot? I don't think I want to do a true HTPC as I want to switch to HD and I wonder about the quality of PCI TV tuners for HD. My TV Wonder does not give a great picture on my hi-res PC LCD monitor although normal PC display looks good.
My thoughts are to use just the Denon to switch high quality TV and use the split screen capability of the plasma to have OSD with out having to worry about mixing HD signals. The TV also has a XGA input so I could switch to that too.
Back to the software. How to come with a scheme which is modular and allows components to be changed without having to reprogram the whole thing?
On the inputs side, the "Event mapping" feature of Girder allows different remotes to be nicely abstracted.
For outputs, I see that it would be possible to create a gml file for each device by creating a gml file with just Actions such as "DVD-PLAY" which would send the IR or IP or serial strings to the device and would abstract away model numbers and serial protocols.
Then the question remains what and how to put in the middle. My inclination is to put the whole lot in one or more Lua files and use AddEventHandler to capture events and TriggerEvent to send software commands to the abstracted outputs.
I see that many of the actions need to be modal. When I push PLAY, the current mode needs to determine if to play DVD, DVR or MP3. Easy to do with some lua variables!
I would appreciate any advice from anyone who has done all of this and is proud of his modularity, organisation, etc. I can see that it is easy to have a spaghetti mess that becomes a career and a nightmare to maintain, update or extend.