Well, I have been dealing with setting up Flirc with an Ouya and a Harmony One today. Part of the reason I bought the Ouya was promises it will work with XBMC. It seems like it will work pretty well, especially when there is an Ouya optimized version.
Anyway, I've got everything pretty much working in XBMC by remapping some keys in Keyboard.xml (such as mapping "b" to back and "c" for context menus) and then setting Flirc to emulate those keys. Other mappings are quite easy, like mapping the Harmony's "ok" key to "return" on the keyboard. This works nicely in XBMC.
I'd like to get it to work fine with the OUYA interface as well. I've tried some ways to do this, but the problem that OUYA UI hasn't quite standardized itself yet. For instance in the "Make" menu, you can hit the return key and it selects, but in the other a keyboard return does nothing. Android itself usually has trouble with the ESC key, but oddly in OUYA it works in some circumstances and doesn't work in others.
So the next idea is to use an Android program like Exernal Keyboard Helper to do some internal Android remapping so that those Harmony keys emulate keys on the OUYA controller. However I haven't been successful in that yet either. Here is part of the generic.kl file.
key 304 BUTTON_A
key 305 BUTTON_B
key 306 BUTTON_C
key 307 BUTTON_X
key 308 BUTTON_Y
key 309 BUTTON_Z
Do constants like BUTTON_O work in this file? Does anyone know? They aren't present in External Keyboard Helper... has anyone tried to edit the generic.kl directly to emulate the controller buttons.