First things first we need a breakdown of things we want to accomplish. In rough order
I will be working on each of these separately to simplify the development process and build up a set of building blocks that can be assembled to make a whole.
Code will be written in C++, and samples will be posed as I finish them.