I begin immediately apologizing for my English, I'm Italian.
For some years now I own the ATEM production studio 4K, and I must say it's very good at his job, but with the passing of the time in my work I need new functions that Atem alone shouldn't do, or doesn't do in an optimal manner. So very often to do what I needed I leaning on vMix, as for example sending video and lower third in the Atem using an HDMI. The problem with this is that we need another person running from another PC with vMix or still the same person of the director must manage two PCs together. Now we have to do a job where next week require immediacy in these operations, so initially I was thinking of a web console to manage only vMix, and all in all it works but I want something more stable and simplified.
For this a few days ago I began to study C#, just because I want to automate these operations, and so far what I have managed to do is manage vMix, as it is quite simple since you just open a link to control it. Now I got to the point of having to connect the ATM to manage the preview and program, but unfortunately it seems much more difficult than what I expected. As you know the Atem in its SDK has an .idl file, and from what I have read on the internet must be converted into tlb and finally in dll to be used in C#. I tried using MIDL with different commands, but with no results, I tried to do much research on the internet but no one explains precisely how to use these APIs, so I finally decided to ask for help here, in the hope that someone can help me.
So my question is: how to use this .idl file in C#? And then how to send commands to the Atem via ethernet?
And possibly I don't want just to know only the code, I would also like to know how everything works, also because I would learn everything well, not just make it work :P
In any case, thank you in advance for any help!