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
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.
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
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
North America
Europe, Middle East and Africa
Asia Pacific