So.. I have a few thoughts myself, and I would be interested in people's reaction.
Firstly, here is a typical log entry that I see myself. However, I do not have more than one PC, so I am already missing a complete example of the current message. Could someone else post a good example for multiple PCs?
Single PC version looks like:
Code:
Command executed
From this computer.
Broadcast W Down to target windows on this PC.
Window handle 0x200602.
Window handle 0x160024.
Window handle 0x1B060C.
Window handle 0x170596.
Message sent
Broadcast W Down to World of Warcraft.
Using a common language
"Input", "Message" and "Action" were the key words Freddie used. Assuming we stick with these three names, then I suggest we use them in the log.
Then, when problem solving or explaining on forums etc, we have a common language and understanding which is also communicated in the log.
The current log uses words such as "Command" and "Broadcast". Unless we change what word we use for the 3 basic things Mojo does, I suggest we avoid these words and use Input, Message and Action instead, wherever possible.
Sequence of events
If a Message is sent before an Action, then I suggest the log should log them in that order.
The example above shows a Message being sent to itself after an Action is sent to various windows. This would confuse me - I would not realise that the Message had actually been sent first.
Cause and effect
To take this further: why did something happen? Was it because a key was pressed/lifted? Or because a Message was received from another Mojo? Or because of some other piece of code yet to be implemented? I suggest this info also be included, or am I missing something and it already is in a different information panel?
Lost in a sea of info - Autorepeat
I can see a major use for the log being checking new code to get it working. In WoW, I will be holding down movement keys and modifiers, causing Autorepeats. At present, these Autorepeats fill up the log very quickly with the same key-down, and therefore I will find it very hard to find the info I need within the log.
I suggest that Autorepeats be restricted to one entry between other events. If possible, a count of Autorepeats could be shown perhaps? So as it repeated, instead of seeing the log fill up, you might see just a counter counting up?
Finally, to display this info in a way which does not make people (eg Blizzard) think there is any illegal automation going on because, well, there isn't.
Actions on other PCs
This is ground I cannot cover myself, since I only use one PC. But my guesses are that Mojo will only show events that happen on "This PC".
Other people will have to chip in when I make up poorly imagined suggestions for how to display this which are not useful or can be improved.
My first idea was that Messages are sent between "This Mojo" and other Mojos. So in a similar vein to "This PC" perhaps use "This Mojo" etc.
Broadcasting vs Passing through?
Freddie, I didn't fully understand your explanation about why I see Actions sent to 4 windows when there are actually 5. The bit I need clarifying is - referring to the picture - how does it work? Case 1 or 2? Or something else?

For my example below, I will assume case 2, but I assume that Mojo would be able to block keys from being sent to the active window as well (eg for a 'Round Robin' button which is sent to each window in turn, one window per press.)
If this is not an "Action", then how about extending the common language and calling it something else. "Pass Through"?
First hash at an example
So basically all that was working up to an example. Well, what do you think of something like this? Hopefully I'm not way off.
On "This PC":
Code:
Input: W Down, received from: keyboard on this PC
Message sent to: this Mojo
Pass through: W Down. Window name: World of Warcraft, handle: 0x200123.
Action: W Down. Window name: World of Warcraft, handle: 0x200602.
Action: W Down. Window name: World of Warcraft, handle: 0x160024.
Message sent to: other Mojo (2ndPCNameHere)
Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
Action: W Down. Window name: World of Warcraft, handle: 0x170596.
On 2nd PC:
Code:
Input: Message, received from: Mojo on 1stPCNameHere
Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
Action: W Down. Window name: World of Warcraft, handle: 0x170596.
On 1st PC for subsequent autorepeats: re-write the following lines (ie delete so that only one block remains to represent all 999 autorepeats, assuming nothing else was in-between):
Code:
Input: W Down (Autorepeat), received from: keyboard on this PC, 999 times.
Message sent to: this Mojo, 999 times
Pass through: W Down. Window name: World of Warcraft, handle: 0x200123.
Action: W Down. Window name: World of Warcraft, handle: 0x200602.
Action: W Down. Window name: World of Warcraft, handle: 0x160024.
Message sent to: other Mojo (2ndPCNameHere), 999 times
Action: W Down. Window name: World of Warcraft, handle: 0x1B060C.
Action: W Down. Window name: World of Warcraft, handle: 0x170596.
I included window names, which makes it more cluttered. Lose them if it's a problem..?
Connect With Us