Let me start off by stating that while I have programming experience, I have nearly no experience with the hardware or interfacing aspects of this type of thing.
That said, I may be mistaken but I'm under the impression that the Yun is the best choice for what I want to do - please correct me if I'm wrong.
I can break down what I would like to achieve into a few parts (if you don't like reading, feel free to skip to Goal 4):
Goal 1: Combine Yun's USB input with its keyboard emulation to make a programmable keyboard.
I expect this to be a fairly simple task. It would involve connecting a USB keyboard to the Yun, reading its input with a script, and the script would make use of the keyboard emulation to send the desired output to a connected PC (via the mini-USB I assume).
Goal 2: Combine Yun USB input with its mouse emulation to read a multi-touch surface of some sort and translate this to mouse input.
Whether the multi-touch surface is a touchscreen or something else is not a dealbreaker, though a touchscreen would have its advantages such as being able to display an interface. Despite that, I'm open to suggestions on the type of input device.
However, I want a relatively large surface to work with - say about the size of a 13" widescreen - and it has to be reasonably precise. I'm not really sure where to find something like that; I saw touchscreens available in some of the arduino stores, but they are all fairly small. I also came across http://www.instructables.com/id/Touche-for-Arduino-Advanced-touch-sensing/, which I think is pretty cool, though I couldn't gauge how practical a solution it would be to my needs.
Other than needing to find a device to use for input, I'm guessing, perhaps naively, that this would be fairly similar to Goal 1: Plug in device, read its input in a script, translate it to mouse output.
Goal 3: Find a way to send emulated gamepad/joystick input from the Yun to a PC.
The idea is that in addition to having the multi-touch surface emulate a mouse, it should be able to emulate a gamepad (simultaneously). I honestly have no idea how one would go about sending such data to a PC. I came across http://code.google.com/p/unojoy/, but I'm under the impression it will not work with the Yun. I also don't know if it is possible to utilize the same USB connection for this as is being used for the keyboard and mouse emulation, or if I would need to somehow get another USB connection to the PC.
Goal 4: The ultimate goal would be combining goals 1, 2 and 3.
Essentially, I would like to create a multi-touch interface that can emulate keyboard, mouse and joystick, appearing as one or more devices to a PC. Preferably it would still be possible to have a keyboard connected to the Yun, just in case some serious typing is necessary; that would necessitate some means of connecting both a keyboard and a multi-touch interface to the Yun, which I'm hoping can be taken care of simply by connecting a USB hub to the Yun.
So, that's what I'm looking to do. Here are the obvious questions, some of which were hinted at above:
1 - Is it feasible to connect a large multi-touch screen or other such device to the Yun and receive its input? 2 - Where/how might one find a suitable such device for this purpose? (please don't say google, I looked, ineffectually :() 3 - Would this use a USB connection or something else? 4 - If not USB, how involved a process is it likely to be to connect this to the Yun? Is this something a beginner should attempt?
5 - How cool is that Touche stuff? Any idea if that's worth looking into?
6 - Assuming whatever input device is suggested above uses a USB connection, will a USB hub work for connecting both that and a keyboard to the Yun?
7 - Is there any convenient way to have a Yun emulate a gamepad connected to a PC? 8 - Does this work at the same time as emulating keyboard and mouse? 9 - If not, will I need to add a new USB connection of some sort to the Yun for gamepad output?
10 - Actually, should I even use a Yun for this purpose? 11 - Is this a really bad idea that is doomed to failure?
Other than the above questions, I am, like stated earlier, quite inexperienced with regards to hardware and interfacing between hardware and PC; thus, I would greatly appreciate any advice, input or insight any of you can offer me, whether it pertains directly to this project or just this sort of stuff in general.
Thank you for your time and any help you decide to offer!