Skip to content

Version 2.0.0

Latest
Compare
Choose a tag to compare
@simonmitchell simonmitchell released this 21 Nov 08:39
· 22 commits to master since this release

Breaking Changes

Dependency Changes

Rocc no longer has a dependency on ThunderRequest as it's code has been moved internally to Rocc to easier support SPM and remove some clutter. You will have to detach ThunderRequest from your embedded binaries and the Carthage run script if you are using Carthage to install Rocc.

Type Changes

A lot of camera function SendType and ReturnType types (As well as they're type on CameraEvent had to be more strongly typed to allow support for serialising them to and from the binary format PTP/IP uses rather than simply relying on String which the Sony API cameras use in a lot of places.

Function Typealias Old Type New Type
Aperture.SendType / Aperture.ReturnType String Aperture.Value
ContinuousCapture.Mode.SendType / ContinuousCapture.Mode.ReturnType String ContinuousCapture.Mode.Value
ContinuousCapture.Speed.SendType / ContinuousCapture.Speed.ReturnType String ContinuousCapture.Speed.Value
Exposure.Compensation.SendType / Exposure.Compensation.ReturnType String Exposure.Compensation.Value
Exposure.Mode.SendType / Exposure.Mode.ReturnType String Exposure.Mode.Value
Flash.Mode.SendType / Flash.Mode.ReturnType String Flash.Mode.Value
Focus.Mode.SendType / Focus.Mode.ReturnType String Focus.Mode.Value
ISO.SendType / ISO.ReturnType String ISO.Value
LiveView.QualityGet.ReturnType / LiveView.QualitySet.SendType * String LiveView.Quality
StillCapture.Size.SendType / StillCapture.Size.ReturnType StillSize StillCapture.Size.Value
StillCapture.Quality.SendType / StillCapture.Quality.ReturnType String StillCapture.Qualiity.Value
VideoCapture.Quality.SendType / VideoCapture.Quality.ReturnType String VideoCapture.Quality.Value
VideoCapture.FileFormat.SendType / VideoCapture.FileFormat.ReturnType String VideoCapture.FileFormat.Value
WhiteBalance.SendType.Value.mode / WhiteBalance.ReturnType.Value.mode / WhiteBalance.Value.mode String WhiteBalance.Value.Mode

There were various changes to the types returned on CameraEvent too, such as additional parts of tuples such as:

videoQuality: (current: String, available: [String]])?

changing to:

videoQuality: (
	current: VideoCapture.Quality.Value, 
	available: [VideoCapture.Quality.Value], 
	supported: [VideoCapture.Quality.Value]
)?

Note the addition of a supported array.

*These two functions are seperated out because they have different return types! Setting live view quality returns a URL but getting it returns the quality.

New Features

PTP/IP Support

The main work in this release was an effort to reverse-engineer support for Sony's more recent camera releases, which use a mechanism called PTP/IP. This adds support for a few cameras, including (but not limited to):

  • RX100 VII
  • a7rIV
  • a9ii
  • a7c
  • zv-1

Please note: I have not tested PTP/IP support on all of these models personally, but have had reports from users of Camrote that they all function

Swift Package Manager Support

ROCC Now supports the Swift Package Manager for adding to your project of choice! For now it's only supported on macOS and iOS due to a few requirements on UIKit or AppKit classes such as UIImage/NSImage e.t.c. but this may change in the future.

Camera Info Cache

Camera info is now cached (by SSID), which speeds up camera discovery as we don't have to wait on SSDP completing always before we can discover a camera.

Other

  • Adds enum cases for new camera models
  • Adds bulbShootingUrl to camera event so BULB previews can be displayed

Fixes

  • Fixes issues around UPnP transfer (Send to smartphone)
    • Images not having valid uri
    • Fixes video transfer
  • Fixes support for RX100 II and some other earlier models
  • Fixes errors with live view auto-restarting when manually stopped due to URLSession return cancelled error to delegates
  • Fixes a6400 supported functionalities to correct issues capturing images
  • Fixes issues switching between BULB shutter speed and non-BULB
  • Fixes capture issues on a7iii/a9 e.t.c. due to required half-press of shutter

There are likely many other fixes that I have missed in this changelog, as 2.0.0 has been a massive overhaul of ROCC! Apologies if I have missed anything important.