4 Replies Latest reply: May 30, 2012 5:07 PM by areohbee RSS

    Lightroom 4.1 SDK: What's new...

    areohbee Community Member

      The download link is presently broken but it looks like SDK will be out with Lr4.1:

       

      http://www.adobe.com/devnet/photoshoplightroom.html

       

      The pdf guide is there (link not broken).

       

      Once officially released (and/or download link fixed), I will try to do a thorough comparison of what's been added or changed and post here.

       

      For now, just from briefly skimming the pdf guide & api doc, I gleaned:

       

      1. Pretty lean release - keep expectations low...

       

      That said, here are some enhancements I noticed:

       

      * Plugin startup / shutdown.

      * Video

      * Scrolled View - this is probably the most exciting enhancement, to me.

      * Simple LIst - supporting multiple selection, my #2 choice, excitement-wise, so far.

      * Also note the timeout params on with-do methods of catalog.

       

      * Plus there are the other things mentioned in another thread: e.g. catalog_photo component is official now.

       

      My #1 feature request was denied: numeric and date types for plugin metadata.

       

      Do standby...

      Rob

        • 1. Re: Lightroom 4.1 SDK: What's new...
          johnrellis CommunityMVP

          Searching for 'version 4' and 'Lightroom 4' in the guide and reference, here are new or changed items:

           

          Info.lua
          LrForceInitPlugin
          LrExportFilterProvider.supportsVideo
          LrShutdownApp
          URLHandler

           

          LrApplication
          LrApplication.appStoreReceiptHash()

          LrApplication.backupAtNextShutdown( pluginId )
          LrApplication.macAddressHash()
          LrApplication.purchaseSource()

          LrApplication.serialNumberHash()

           

          LrCatalog

          catalog:createKeyword( keywordName, synonyms, includeOnExport, parent, returnExisting )

          catalog:getKeywordsByLocalId( ids )
          catalog:triggerImportFromPathWithPreviousSettings( path )
          catalog:triggerImportUI( path )
          catalog:type()
          catalog:withPrivateWriteAccessDo( func, timeoutParams )
          catalog:withProlongedWriteAccessDo( params, timeoutParams )
          catalog:withWriteAccessDo( actionName, func, timeoutParams )

           

          LrColor
          color:type()

           

          LrDevelopPreset
          preset:type()

           

          LrDevelopPresetFolder
          folder:type()

           

          LrExportRendition
          exportRendition:type()

           

          LrExportSession
          exportSession:type()

           

          LrExportSettings
          LrExportSettings.applyVideoExportPreset( exportSettings, preset )

          LrExportSettings.extensionForFormat( format )

          LrExportSettings.removeVideoExportPreset( presetObject, pluginObject )
          LrExportSettings.supportableVideoExportFormats()
          LrExportSettings.videoExportPresets()
          LrExportSettings.videoExportPresetsForPlugin( pluginObject )

           

          LrHttp

          LrHttp.post( url, postBody, headers, method, timeout, totSize, totalSize )

          LrHttp.postMultipart( url, content, headers, timeout, callbackFn )

           

          LrLogger
          logger:type()

           

          LrPhoto
          photo:getDevelopSettings() - new fields for PV2012
          photo:getRawMetadata( key ) - new fields, including pickStatus
          photo:setRawMetadata( key, value ) - new fields,  including pickStatus, gps
          photo:type()
          photo.localIdentifier : (Read-Only)

           

          LrPlugin
          plugin:type()

           

          LrProgressScope
          progressScope:getParentScope()
          progressScope:type()

           

          LrPublishedCollection
          pubCollection:publishNow( doneCallback )

           

          LrPublishedPhoto
          publishedPhoto:type()

           

          LrVideoExportPreset - new in 4.0

           

          LrView
          viewFactory:catalog_photo( args )
          viewFactory:scrolled_view( args )
          viewFactory:simple_list( args )

           

          SDK - Export service provider
          exportServiceProvider.allowVideoExportPresets : (Read-Only)
          exportServiceProvider.disallowVideoExportPresets : (Read-Only)

           

          SDK - Metadata tagset provider
          items : (Read-Only) - Many new items for video and DNG

           

          SDK - Publish service provider
          publishServiceProvider.deleteFirstOnPublish()

           

          Message was edited by: John R. Ellis: Added 'Lightroom 4' hits.

          • 2. Re: Lightroom 4.1 SDK: What's new...
            areohbee Community Member

            I'd like to propose that nobody respond directly to John Ellis nice (but not yet complete) list, (so he can still edit it), and instead respond to top level post, if you find anything new.

             

            John - Could I talk you into running that again over the API doc with '4.0', since some new features say new in Lightroom 4.0, instead of 'version 4', maybe try 'Lightroom 4' too, eh?

             

            one specific addition: catalog:createKeyword has a new parameter - returnIfExisting.

            also: Lr4 uses Lua 5.1.4 instead of Lua 5.1.2. I've been compiling with 5.1.4 for a while now, but if you haven't updated your compiler, it may be worth doing now.

             

            Thanks muchly.

            Rob

            • 3. Re: Lightroom 4.1 SDK: What's new...
              johnrellis CommunityMVP

              Updated with 'Lightroom 4' hits.  Any others I've missed?

              • 4. Re: Lightroom 4.1 SDK: What's new...
                areohbee Community Member

                I double-checked too and didn't find anything more - thanks.

                 

                Definitely some worthwhile and welcome additions, but overall a pretty meager set of changes, in my estimation.

                 

                Note: LrForceInitPlugin will only execute upon startup if there are menu items. So, if your plugin relies on something else for functionality, like background processing, you will still need to define an empty tagset to force init.

                 

                UPDATE: 2012-05-30: Regarding catalog:createKeyword. The default in Lr3 was to return existing keywords, the default in Lr4 has changed. Thus, you may need to go through all Lr3 keywording plugins and pass true for "returnExisting" if you want them to work in Lr4.

                 

                Cheers,

                Rob