rob_cole_2221866's profile

4.5K Messages


76.3K Points

Tue, May 3, 2011 1:37 AM


Lightroom SDK: remote interface

Presently, some folks (including me) are writing sidekick apps that talk to plugins as a way to expand the possibilities for Lightroom plugins. Special features for this new breed of plugin-app includes non-modal functionality and preview display (albeit semi-crippled by not being able to access preview-id for newly created photos). The plugin side is mostly just a conduit - acting as liaison between the external app and Lr SDK API.

This FR/Idea is to make a remote interface such that external apps can access the full range of SDK functions like a plugin. This would obviate the need to have the plugin side and greatly simplify and streamline the sidekick app. If the plugin manager could also start and stop these sidekick apps like plugins that might help, but one could still manage without that explicit support.

This way, plugin authors could write "always on" plugins (meaning non-modal) with the full power of the OS/language & UI, without Adobe doing anything except providing the remote access to already existing functions, which would still operate within the same "sandbox" as a plugin.

4.5K Messages


76.3K Points

11 y ago

Initial FR/Idea was for a remote interface for non-UI SDK functionality.

This FR/Idea is hereby amended to expand the notion a smidge:

- UI portion of SDK to be redone to function in stand-alone Lua environment.
- non-UI portion of SDK redone to be remote-able.

Existing plugins would not need to be modified, but would now run as stand-alone apps, still modally from outside point of view - indistinguishable to users. Plugins could now be enhanced as lua apps though instead of lua plugins.

And new plugins could be written in language of user's choice, using UI of user's choice, with Lightroom's widgets as one option (lua binding for sure, but maybe even others).

Reminder: since majority of non-UI portion of SDK still operates in protected Lightroom space, there is no additional security risks to support this new distributed architecture.

The primary purpose of this addendum, is so existing plugins would only need to be minimally modified to take advantage of new possibilities. For example, modal keyword entry plugins could be modified to be non-modal with only minimal re-writing.

In case not obvious, if remotability was done using network protocol (e.g. TCPIP), then plugins would also run in locations across network, and could be written for foreign machines, e.g. iPad. Windows only plugins could be run in virtual machine to function in unison with Mac running Lightroom...