If you're processing through the cRIO (or at least communicating through it), can't you just use this?
Code:
DriverStation.getInstance().getAlliance()
This has worked for us in Java, should work in C++ (possibly with some ->s added), and there should be something similar available in LabView, though I personally haven't used either for FRC.
Don't get me wrong, I love the idea. It just seems like you reinvented the wheel a little bit for this application of it.