This may mess with your ideas a little bit, but I think it would be nicest if the order of events went more as follows:

1. Camera hardware takes picture and emits `'newimage'` event
2. Camera controllers listens and performs any futher processing (metadata, thumbnail creation, etc).
3. When processing complete camera controller emits `this.app.emit('newimage', image);` this allows all other parts of the app to respond if need be (controls, preview, etc).

What you think?