I'll assume you meant an Arduino as "this incredible little piece of hardware." It's lovely hardware on the problems within its power, but that's a really large challenge, bordering on not possible, for a number of reasons.
First, the Arduino's processor only has 1KB of RAM to store mouse samples AND support all the other program needs. I'm not going to doublecheck it, but a mouse probably pumps out more than that in a ten second period of active use.
Second, a mouse doesn't send absolute coordinates. It sends relative motion counts. The PC keeps track of where the mouse pointer is. So if your mouse pointer is not at the same location for each playback, the playback would be over different parts of the screen. The motion might be roughly the same overall shape, but if the PC thinks you're hitting the edge of the screen, even the shape of the mouse gesture would end up distorted.
Third, many mouse drivers on the PC also support this idea of "acceleration." The driver watches the relative motion counts and acts differently depending on how fast or slow the motion is received. So your playback would have to play at exactly the same rate of time, taking even more space to record the sequence.
Fourth, I expect it can be done, but I haven't seen any USB or PS2 wire sniffing applications for the Arduino. Congrats, you get to study and crack the requirements and solutions for that.
First, the Arduino's processor only has 1KB of RAM to store mouse samples AND support all the other program needs. I'm not going to doublecheck it, but a mouse probably pumps out more than that in a ten second period of active use.
Logging the motion onto an SD card takes care of this. Alternatively if the macro doesn't need to trace a curve then actually recording the datastream off a mouse may be overkill. Might be a bit tricky to get the timing down but the macro could be taught to do a "jog left for this long. pause. Run south for this long. stop. click."
Second, a mouse doesn't send absolute coordinates. It sends relative motion counts. The PC keeps track of where the mouse pointer is. So if your mouse pointer is not at the same location for each playback, the playback would be over different parts of the screen.
Record the macro starting with the mouse in the full topleft position. Then have the first thing the macro does is move the cursor back to the topleft corner of the screen.
Third, many mouse drivers on the PC also support this idea of "acceleration." The driver watches the relative motion counts and acts differently depending on how fast or slow the motion is received. So your playback would have to play at exactly the same rate of time, taking even more space to record the sequence.
As long as the Arduino does its output -consistently- then this can probably be overcome with tweaks to the recorded macro. Or by recasting the problem as a "mouse movement synthesizer with small mouse movement scripting language" instead of a "mouse recorder".
The mouse has to hit a certain area every time, not on the pixel, but I can shorten down the macro to be precise on the pixel, which should cut down the length/size of the instructions conciderably.