Most elegant way to pass information between CEP and C++ plugin

Hey,

I’ve been diving into scripts/panels and then getting my feet wet with C++ Adobe After Effects API related development. The information is nicely scattered like some sort of cryptic maze to test the mind but getting there.

I have a CEP panel, for a nice UI design. Which has some useful functionality.

I wanted to include some more advanced C++ plugin abilities, so am passing some info via a text file created via a JSX file as part of the CEP extension to the C++ After Effect Plugin part, and it’s able to get some information from the text file. plus delete the text file once read… Which is great.

However, before going to far with this, I wanted to hear if there were any newer more elegant ways of passing info from a CEP Panels (and JSX file) to the C++ plugin?

If the above approach is ok, it is wise/ok to have the temp text file saved to the home directory of the user? or is there another more common route here?

Many thanks… I’m loving all of this… despite the endless slow work and bug testing.

In ExtendScript content you could use this: https://community.adobe.com/t5/after-effects-discussions/hybrid-plugin-where-is-plugplug/m-p/7496604 …but this lives in ExtendScript. Not CEP.

CEP is like nodeWebkit with NodeJS in it but adding your own binaries is not an option here as far I know.

UXP has hybrid plugins.

In case of Photoshop alone… there is C++ SDK and you can add binary libraries to Photoshop but those live in Photoshop context not CEP or ExtendScript… you would need to explicitly add Action Manager support and then you control them from any ExtendScript and then ExtendScript could pass info to UI. Not sure how this is in AE.

Or you could try luck with websockets and bypass ExtendScript. CEP can run both client and server.

1 Like

Thanks Jarda, appreciate the link.

I guess I’ll stick with the writing to a temp txt file to pass data to the C++ plugin. As it’s at least working so far. Then another day I’ll try and understand what PlugPlug is doing.

Cheers