nitpick: I don't think r#type
is super clear, could be raw_type
or similar?
suggestion: File clarity could be improved by moving this trait definition up to before any of the implementations of this trait.
nitpick: I don't think TYPE
is clear, as to me this suggests "integer" or "string" or similar, whereas it's more to do with the name/label of the field
nitpick: Super a personal preference thing but I prefer not to contract names and instead write e.g. mix_effect_index
for clarity.
12 bytes is the minimum packet length, if a packet is more than 12 bytes then the field data will always be aligned to 8 bytes iirc
iirc, yes.... in normal operation. If we see something from the ATEM we don't like (e.g. it sending us a handshake acknowledgement out-of-sequence) or if our connection to the ATEM times out then we should destroy our held state about the connection and recreate it and gain a new session Id (which is what is implemented on the tally branch). So yeah, outside of the handshake we don't need to handle a new session (I believe)
Just doing a high-level read of things and leaving thoughts