Protocol Documentation

This page provides documentation for all of the protobuf message fields.

Protobuf Files

cohn.proto

NotifyCOHNStatus

Current COHN status triggered by a RequestGetCOHNStatus

Field Type Label Description
status EnumCOHNStatus optional Current COHN status
state EnumCOHNNetworkState optional Current COHN network state
username string optional Username used for http basic auth header
password string optional Password used for http basic auth header
ipaddress string optional Camera’s IP address on the local network
enabled bool optional Is COHN currently enabled
ssid string optional Currently connected SSID
macaddress string optional MAC address of the wifi adapter

RequestCOHNCert

Get the COHN certificate.

Returns a @ref ResponseCOHNCert

RequestClearCOHNCert

Clear the COHN certificate.

Returns a @ref ResponseGeneric with the status of the clear

RequestCreateCOHNCert

Create the COHN certificate.

Returns a @ref ResponseGeneric with the status of the creation

Field Type Label Description
override bool optional Override current provisioning and create new cert

RequestGetCOHNStatus

Get the current COHN status.

This always returns a @ref NotifyCOHNStatus

Additionally, asynchronous updates can also be registerd to return more @ref NotifyCOHNStatus when a value changes.

Field Type Label Description
register_cohn_status bool optional 1 to register, 0 to unregister

RequestSetCOHNSetting

Enable and disable COHN if provisioned

Returns a @ref ResponseGeneric

Field Type Label Description
cohn_active bool optional 1 to enable, 0 to disable

ResponseCOHNCert

COHN Certificate response triggered by RequestCOHNCert

Field Type Label Description
result EnumResultGeneric optional Was request successful?
cert string optional Root CA cert (ASCII text)

EnumCOHNNetworkState

Name Number Description
COHN_STATE_Init 0  
COHN_STATE_Error 1  
COHN_STATE_Exit 2  
COHN_STATE_Idle 5  
COHN_STATE_NetworkConnected 27  
COHN_STATE_NetworkDisconnected 28  
COHN_STATE_ConnectingToNetwork 29  
COHN_STATE_Invalid 30  

EnumCOHNStatus

Name Number Description
COHN_UNPROVISIONED 0  
COHN_PROVISIONED 1  

live_streaming.proto

NotifyLiveStreamStatus

Live Stream status

Sent either:

  • as a syncrhonous response to initial @ref RequestGetLiveStreamStatus
  • as asynchronous notifications registered for via @ref RequestGetLiveStreamStatus
Field Type Label Description
live_stream_status EnumLiveStreamStatus optional Live stream status
live_stream_error EnumLiveStreamError optional Live stream error
live_stream_encode bool optional Is live stream encoding?
live_stream_bitrate int32 optional Live stream bitrate (Kbps)
live_stream_window_size_supported_array EnumWindowSize repeated List of supported resolutions returned when live stream is registered or requested
  1. register –> camera 2. register response (with capabilities) –> mobile 3. async notifications (without capabilities) –> mobile        
      live_stream_encode_supported bool optional Does the camera support encoding while live streaming?
      live_stream_max_lens_unsupported bool optional Is the Max Lens feature NOT supported?
      live_stream_minimum_stream_bitrate int32 optional Camera-defined minimum bitrate (static) (Kbps)
      live_stream_maximum_stream_bitrate int32 optional Camera-defined maximum bitrate (static) (Kbps)
      live_stream_lens_supported bool optional Does camera support setting lens for live streaming?
      live_stream_lens_supported_array EnumLens repeated Array of supported lenses for live streaming

RequestGetLiveStreamStatus

Get the current livestream status (and optionally register for future status changes)

Both current status and future status changes are sent via @ref NotifyLiveStreamStatus

Field Type Label Description
register_live_stream_status EnumRegisterLiveStreamStatus repeated Array of live stream statuses to be notified about
unregister_live_stream_status EnumRegisterLiveStreamStatus repeated Array of live stream statuses to stop being notified about

RequestSetLiveStreamMode

Configure lives streaming

The current livestream status can be queried via @ref RequestGetLiveStreamStatus

TODO What is the response?

Field Type Label Description
url string optional RTMP(S) URL used for live stream
encode bool optional Save media to sdcard while streaming?
window_size EnumWindowSize optional Live stream resolution
cert bytes optional Certificate for servers that require it
minimum_bitrate int32 optional Minimum desired bitrate (may or may not be honored)
maximum_bitrate int32 optional Maximum desired bitrate (may or may not be honored)
starting_bitrate int32 optional Starting bitrate
lens EnumLens optional Lens to use for live stream (see NotifyLiveStreamStatus.live_stream_lens_supported)

EnumLens

Name Number Description
LENS_WIDE 0  
LENS_LINEAR 4  
LENS_SUPERVIEW 3  

EnumLiveStreamError

Name Number Description
LIVE_STREAM_ERROR_NONE 0 No error (success)
LIVE_STREAM_ERROR_NETWORK 1 General network error during the stream
LIVE_STREAM_ERROR_CREATESTREAM 2 Startup error: bad URL or valid with live stream server
LIVE_STREAM_ERROR_OUTOFMEMORY 3 Not enough memory on camera to complete task
LIVE_STREAM_ERROR_INPUTSTREAM 4 Failed to get stream from low level camera system
LIVE_STREAM_ERROR_INTERNET 5 No internet access detected on startup of streamer
LIVE_STREAM_ERROR_OSNETWORK 6 Error occured in linux networking stack. usually means the server closed the connection
LIVE_STREAM_ERROR_SELECTEDNETWORKTIMEOUT 7 Timed out attemping to connect to the wifi network when attemping live stream
LIVE_STREAM_ERROR_SSL_HANDSHAKE 8 SSL handshake failed (commonly caused due to incorrect time / time zone)
LIVE_STREAM_ERROR_CAMERA_BLOCKED 9 Low level camera system rejected attempt to start live stream
LIVE_STREAM_ERROR_UNKNOWN 10 Unknown
LIVE_STREAM_ERROR_SD_CARD_FULL 40 Can not perform livestream because sd card is full
LIVE_STREAM_ERROR_SD_CARD_REMOVED 41 Livestream stopped because sd card was removed

EnumLiveStreamStatus

Name Number Description
LIVE_STREAM_STATE_IDLE 0 Initial status. Livestream has not yet been configured
LIVE_STREAM_STATE_CONFIG 1 Livestream is being configured
LIVE_STREAM_STATE_READY 2 Livestream has finished configuration and is ready to start streaming
LIVE_STREAM_STATE_STREAMING 3 Livestream is actively streaming
LIVE_STREAM_STATE_COMPLETE_STAY_ON 4 Live stream is exiting. No errors occured.
LIVE_STREAM_STATE_FAILED_STAY_ON 5 Live stream is exiting. An error occurred.
LIVE_STREAM_STATE_RECONNECTING 6 An error occurred during livestream and stream is attempting to reconnect.

EnumRegisterLiveStreamStatus

Name Number Description
REGISTER_LIVE_STREAM_STATUS_STATUS 1  
REGISTER_LIVE_STREAM_STATUS_ERROR 2  
REGISTER_LIVE_STREAM_STATUS_MODE 3  
REGISTER_LIVE_STREAM_STATUS_BITRATE 4  

EnumWindowSize

Name Number Description
WINDOW_SIZE_480 4  
WINDOW_SIZE_720 7  
WINDOW_SIZE_1080 12  

network_management.proto

NotifProvisioningState

Provision state notification

TODO refernce where this is triggered

Field Type Label Description
provisioning_state EnumProvisioning required Provisioning / connection state

NotifStartScanning

Scanning state notification

Triggered via @ref RequestStartScan

Field Type Label Description
scanning_state EnumScanning required Scanning state
scan_id int32 optional ID associated with scan results (included if scan was successful)
total_entries int32 optional Number of APs found during scan (included if scan was successful)
total_configured_ssid int32 required Total count of camera’s provisioned SSIDs

RequestConnect

Connect to (but do not authenticate with) an Access Point

This is intended to be used to connect to a previously-connected Access Point

Response: @ref ResponseConnect

Field Type Label Description
ssid string required AP SSID

RequestConnectNew

Connect to and authenticate with an Access Point

This is only intended to be used if the AP is not previously provisioned.

Response: @ref ResponseConnectNew sent immediately

Notification: @ref NotifProvisioningState sent periodically as provisioning state changes

Field Type Label Description
ssid string required AP SSID
password string required AP password
static_ip bytes optional Static IP address
gateway bytes optional Gateway IP address
subnet bytes optional Subnet mask
dns_primary bytes optional Primary DNS
dns_secondary bytes optional Secondary DNS

RequestGetApEntries

Get a list of Access Points found during a @ref RequestStartScan

Response: @ref ResponseGetApEntries

Field Type Label Description
start_index int32 required Used for paging. 0 <= start_index < @ref ResponseGetApEntries .total_entries
max_entries int32 required Used for paging. Value must be < @ref ResponseGetApEntries .total_entries
scan_id int32 required ID corresponding to a set of scan results (i.e. @ref ResponseGetApEntries .scan_id)

RequestReleaseNetwork

Request to disconnect from current AP network

Response: @ref ResponseGeneric

RequestStartScan

Start scanning for Access Points

@note Serialization of this object is zero bytes.

Response: @ref ResponseStartScanning are sent immediately after the camera receives this command

Notifications: @ref NotifStartScanning are sent periodically as scanning state changes. Use to detect scan complete.

ResponseConnect

The status of an attempt to connect to an Access Point

Sent as the initial response to @ref RequestConnect

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
provisioning_state EnumProvisioning required Provisioning/connection state
timeout_seconds int32 required Network connection timeout (seconds)

ResponseConnectNew

The status of an attempt to connect to an Access Point

Sent as the initial response to @ref RequestConnectNew

Field Type Label Description
result EnumResultGeneric required Status of Connect New request
provisioning_state EnumProvisioning required Current provisioning state of the network
timeout_seconds int32 required number of seconds camera will wait before declaring a network connection attempt failed.

ResponseGetApEntries

A list of scan entries describing a scanned Access Point

This is sent in response to a @ref RequestGetApEntries

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
scan_id int32 required ID associated with this batch of results
entries ResponseGetApEntries.ScanEntry repeated Array containing details about discovered APs

ResponseGetApEntries.ScanEntry

The individual Scan Entry model

Field Type Label Description
ssid string required AP SSID
signal_strength_bars int32 required Signal strength (3 bars: >-70 dBm; 2 bars: >-85 dBm; 1 bar: <=-85 dBm)
signal_frequency_mhz int32 required Signal frequency (MHz)
scan_entry_flags int32 required Bitmasked value from @ref EnumScanEntryFlags

ResponseStartScanning

The current scanning state.

This is the initial response to a @ref RequestStartScan

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
scanning_state EnumScanning required Scanning state

EnumProvisioning

Name Number Description
PROVISIONING_UNKNOWN 0  
PROVISIONING_NEVER_STARTED 1  
PROVISIONING_STARTED 2  
PROVISIONING_ABORTED_BY_SYSTEM 3  
PROVISIONING_CANCELLED_BY_USER 4  
PROVISIONING_SUCCESS_NEW_AP 5  
PROVISIONING_SUCCESS_OLD_AP 6  
PROVISIONING_ERROR_FAILED_TO_ASSOCIATE 7  
PROVISIONING_ERROR_PASSWORD_AUTH 8  
PROVISIONING_ERROR_EULA_BLOCKING 9  
PROVISIONING_ERROR_NO_INTERNET 10  
PROVISIONING_ERROR_UNSUPPORTED_TYPE 11  

EnumScanEntryFlags

Name Number Description
SCAN_FLAG_OPEN 0 This network does not require authentication
SCAN_FLAG_AUTHENTICATED 1 This network requires authentication
SCAN_FLAG_CONFIGURED 2 This network has been previously provisioned
SCAN_FLAG_BEST_SSID 4  
SCAN_FLAG_ASSOCIATED 8 camera is connected to this AP
SCAN_FLAG_UNSUPPORTED_TYPE 16  

EnumScanning

Name Number Description
SCANNING_UNKNOWN 0  
SCANNING_NEVER_STARTED 1  
SCANNING_STARTED 2  
SCANNING_ABORTED_BY_SYSTEM 3  
SCANNING_CANCELLED_BY_USER 4  
SCANNING_SUCCESS 5  

preset_status.proto

NotifyPresetStatus

Current Preset status

Sent either:

  • synchronously via initial response to @ref RequestGetPresetStatus
  • asynchronously when Preset change if registered in @rev RequestGetPresetStatus
Field Type Label Description
preset_group_array PresetGroup repeated Array of currently available Preset Groups

Preset

An individual preset.

Field Type Label Description
id int32 optional Preset ID
mode EnumFlatMode optional Preset flatmode ID
title_id EnumPresetTitle optional Preset Title ID
title_number int32 optional Preset Title Number (e.g. 1/2/3 in Custom1, Custom2, Custom3)
user_defined bool optional Is the Preset custom/user-defined?
icon EnumPresetIcon optional Preset Icon ID
setting_array PresetSetting repeated Array of settings associated with this Preset
is_modified bool optional Has Preset been modified from factory defaults? (False for user-defined Presets)
is_fixed bool optional Is this Preset mutable?
custom_name string optional Custom string name given to this preset via @ref RequestCustomPresetUpdate

PresetGroup

Preset Group meta information and contained Presets

Field Type Label Description
id EnumPresetGroup optional Preset Group ID
preset_array Preset repeated Array of Presets contained in this Preset Group
can_add_preset bool optional Is there room in the group to add additional Presets?
icon EnumPresetGroupIcon optional The icon to display for this preset group

PresetSetting

Setting representation that comprises a @ref Preset

Field Type Label Description
id int32 optional Setting ID
value int32 optional Setting value
is_caption bool optional Does this setting appear on the Preset “pill” in the camera UI?

EnumFlatMode

Name Number Description
FLAT_MODE_UNKNOWN -1  
FLAT_MODE_PLAYBACK 4  
FLAT_MODE_SETUP 5  
FLAT_MODE_VIDEO 12  
FLAT_MODE_TIME_LAPSE_VIDEO 13  
FLAT_MODE_LOOPING 15  
FLAT_MODE_PHOTO_SINGLE 16  
FLAT_MODE_PHOTO 17  
FLAT_MODE_PHOTO_NIGHT 18  
FLAT_MODE_PHOTO_BURST 19  
FLAT_MODE_TIME_LAPSE_PHOTO 20  
FLAT_MODE_NIGHT_LAPSE_PHOTO 21  
FLAT_MODE_BROADCAST_RECORD 22  
FLAT_MODE_BROADCAST_BROADCAST 23  
FLAT_MODE_TIME_WARP_VIDEO 24  
FLAT_MODE_LIVE_BURST 25  
FLAT_MODE_NIGHT_LAPSE_VIDEO 26  
FLAT_MODE_SLOMO 27  
FLAT_MODE_IDLE 28  
FLAT_MODE_VIDEO_STAR_TRAIL 29  
FLAT_MODE_VIDEO_LIGHT_PAINTING 30  
FLAT_MODE_VIDEO_LIGHT_TRAIL 31  

EnumPresetGroup

Name Number Description
PRESET_GROUP_ID_VIDEO 1000  
PRESET_GROUP_ID_PHOTO 1001  
PRESET_GROUP_ID_TIMELAPSE 1002  
PRESET_GROUP_ID_VIDEO_DUAL_LENS 1003  
PRESET_GROUP_ID_PHOTO_DUAL_LENS 1004  
PRESET_GROUP_ID_TIMELAPSE_DUAL_LENS 1005  
PRESET_GROUP_ID_SPECIAL 1006  

EnumPresetGroupIcon

Name Number Description
PRESET_GROUP_VIDEO_ICON_ID 0  
PRESET_GROUP_PHOTO_ICON_ID 1  
PRESET_GROUP_TIMELAPSE_ICON_ID 2  
PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID 3  
PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID 4  
PRESET_GROUP_MAX_VIDEO_ICON_ID 5  
PRESET_GROUP_MAX_PHOTO_ICON_ID 6  
PRESET_GROUP_MAX_TIMELAPSE_ICON_ID 7  

EnumPresetIcon

Name Number Description
PRESET_ICON_VIDEO 0  
PRESET_ICON_ACTIVITY 1  
PRESET_ICON_CINEMATIC 2  
PRESET_ICON_PHOTO 3  
PRESET_ICON_LIVE_BURST 4  
PRESET_ICON_BURST 5  
PRESET_ICON_PHOTO_NIGHT 6  
PRESET_ICON_TIMEWARP 7  
PRESET_ICON_TIMELAPSE 8  
PRESET_ICON_NIGHTLAPSE 9  
PRESET_ICON_SNAIL 10  
PRESET_ICON_VIDEO_2 11  
PRESET_ICON_360_VIDEO 12  
PRESET_ICON_PHOTO_2 13  
PRESET_ICON_PANORAMA 14  
PRESET_ICON_BURST_2 15  
PRESET_ICON_TIMEWARP_2 16  
PRESET_ICON_TIMELAPSE_2 17  
PRESET_ICON_CUSTOM 18  
PRESET_ICON_AIR 19  
PRESET_ICON_BIKE 20  
PRESET_ICON_EPIC 21  
PRESET_ICON_INDOOR 22  
PRESET_ICON_MOTOR 23  
PRESET_ICON_MOUNTED 24  
PRESET_ICON_OUTDOOR 25  
PRESET_ICON_POV 26  
PRESET_ICON_SELFIE 27  
PRESET_ICON_SKATE 28  
PRESET_ICON_SNOW 29  
PRESET_ICON_TRAIL 30  
PRESET_ICON_TRAVEL 31  
PRESET_ICON_WATER 32  
PRESET_ICON_LOOPING 33  
PRESET_ICON_STARS 34 New custom icon (34 - 43)added for HERO 12
PRESET_ICON_ACTION 35  
PRESET_ICON_FOLLOW_CAM 36  
PRESET_ICON_SURF 37  
PRESET_ICON_CITY 38  
PRESET_ICON_SHAKY 39  
PRESET_ICON_CHESTY 40  
PRESET_ICON_HELMET 41  
PRESET_ICON_BITE 42  
PRESET_ICON_MTB 43  
PRESET_ICON_MAX_VIDEO 55 Reserved 44 - 50 for Custom presets. Add icons below for new presets starting from 51
PRESET_ICON_MAX_PHOTO 56  
PRESET_ICON_MAX_TIMEWARP 57  
PRESET_ICON_BASIC 58  
PRESET_ICON_ULTRA_SLO_MO 59  
PRESET_ICON_STANDARD_ENDURANCE 60  
PRESET_ICON_ACTIVITY_ENDURANCE 61  
PRESET_ICON_CINEMATIC_ENDURANCE 62  
PRESET_ICON_SLOMO_ENDURANCE 63  
PRESET_ICON_STATIONARY_1 64  
PRESET_ICON_STATIONARY_2 65  
PRESET_ICON_STATIONARY_3 66  
PRESET_ICON_STATIONARY_4 67  
PRESET_ICON_SIMPLE_SUPER_PHOTO 70  
PRESET_ICON_SIMPLE_NIGHT_PHOTO 71  
PRESET_ICON_HIGHEST_QUALITY_VIDEO 73  
PRESET_ICON_STANDARD_QUALITY_VIDEO 74  
PRESET_ICON_BASIC_QUALITY_VIDEO 75  
PRESET_ICON_STAR_TRAIL 76  
PRESET_ICON_LIGHT_PAINTING 77  
PRESET_ICON_LIGHT_TRAIL 78  
PRESET_ICON_FULL_FRAME 79  
PRESET_ICON_EASY_MAX_VIDEO 80  
PRESET_ICON_EASY_MAX_PHOTO 81  
PRESET_ICON_EASY_MAX_TIMEWARP 82  
PRESET_ICON_EASY_MAX_STAR_TRAIL 83  
PRESET_ICON_EASY_MAX_LIGHT_PAINTING 84  
PRESET_ICON_EASY_MAX_LIGHT_TRAIL 85  
PRESET_ICON_MAX_STAR_TRAIL 89  
PRESET_ICON_MAX_LIGHT_PAINTING 90  
PRESET_ICON_MAX_LIGHT_TRAIL 91  
PRESET_ICON_TIMELAPSE_PHOTO 1000  
PRESET_ICON_NIGHTLAPSE_PHOTO 1001  

EnumPresetTitle

Name Number Description
PRESET_TITLE_ACTIVITY 0  
PRESET_TITLE_STANDARD 1  
PRESET_TITLE_CINEMATIC 2  
PRESET_TITLE_PHOTO 3  
PRESET_TITLE_LIVE_BURST 4  
PRESET_TITLE_BURST 5  
PRESET_TITLE_NIGHT 6  
PRESET_TITLE_TIME_WARP 7  
PRESET_TITLE_TIME_LAPSE 8  
PRESET_TITLE_NIGHT_LAPSE 9  
PRESET_TITLE_VIDEO 10  
PRESET_TITLE_SLOMO 11  
PRESET_TITLE_360_VIDEO 12  
PRESET_TITLE_PHOTO_2 13  
PRESET_TITLE_PANORAMA 14  
PRESET_TITLE_360_PHOTO 15  
PRESET_TITLE_TIME_WARP_2 16  
PRESET_TITLE_360_TIME_WARP 17  
PRESET_TITLE_CUSTOM 18  
PRESET_TITLE_AIR 19  
PRESET_TITLE_BIKE 20  
PRESET_TITLE_EPIC 21  
PRESET_TITLE_INDOOR 22  
PRESET_TITLE_MOTOR 23  
PRESET_TITLE_MOUNTED 24  
PRESET_TITLE_OUTDOOR 25  
PRESET_TITLE_POV 26  
PRESET_TITLE_SELFIE 27  
PRESET_TITLE_SKATE 28  
PRESET_TITLE_SNOW 29  
PRESET_TITLE_TRAIL 30  
PRESET_TITLE_TRAVEL 31  
PRESET_TITLE_WATER 32  
PRESET_TITLE_LOOPING 33  
PRESET_TITLE_STARS 34 New custom names (34 - 43)added for HERO 12
PRESET_TITLE_ACTION 35  
PRESET_TITLE_FOLLOW_CAM 36  
PRESET_TITLE_SURF 37  
PRESET_TITLE_CITY 38  
PRESET_TITLE_SHAKY 39  
PRESET_TITLE_CHESTY 40  
PRESET_TITLE_HELMET 41  
PRESET_TITLE_BITE 42  
PRESET_TITLE_MTB 43  
PRESET_TITLE_360_TIMELAPSE 51 Reserved 44 - 50 for custom presets.
PRESET_TITLE_360_NIGHT_LAPSE 52  
PRESET_TITLE_360_NIGHT_PHOTO 53  
PRESET_TITLE_PANO_TIME_LAPSE 54  
PRESET_TITLE_MAX_VIDEO 55  
PRESET_TITLE_MAX_PHOTO 56  
PRESET_TITLE_MAX_TIMEWARP 57  
PRESET_TITLE_BASIC 58  
PRESET_TITLE_ULTRA_SLO_MO 59  
PRESET_TITLE_STANDARD_ENDURANCE 60  
PRESET_TITLE_ACTIVITY_ENDURANCE 61  
PRESET_TITLE_CINEMATIC_ENDURANCE 62  
PRESET_TITLE_SLOMO_ENDURANCE 63  
PRESET_TITLE_STATIONARY_1 64  
PRESET_TITLE_STATIONARY_2 65  
PRESET_TITLE_STATIONARY_3 66  
PRESET_TITLE_STATIONARY_4 67  
PRESET_TITLE_SIMPLE_VIDEO 68  
PRESET_TITLE_SIMPLE_TIME_WARP 69  
PRESET_TITLE_SIMPLE_SUPER_PHOTO 70  
PRESET_TITLE_SIMPLE_NIGHT_PHOTO 71  
PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE 72  
PRESET_TITLE_HIGHEST_QUALITY 73  
PRESET_TITLE_EXTENDED_BATTERY 74  
PRESET_TITLE_LONGEST_BATTERY 75  
PRESET_TITLE_STAR_TRAIL 76  
PRESET_TITLE_LIGHT_PAINTING 77  
PRESET_TITLE_LIGHT_TRAIL 78  
PRESET_TITLE_FULL_FRAME 79  
PRESET_TITLE_MAX_LENS_VIDEO 80  
PRESET_TITLE_MAX_LENS_TIMEWARP 81  
PRESET_TITLE_STANDARD_QUALITY_VIDEO 82  
PRESET_TITLE_BASIC_QUALITY_VIDEO 83  
PRESET_TITLE_EASY_MAX_VIDEO 84  
PRESET_TITLE_EASY_MAX_PHOTO 85  
PRESET_TITLE_EASY_MAX_TIMEWARP 86  
PRESET_TITLE_EASY_MAX_STAR_TRAIL 87  
PRESET_TITLE_EASY_MAX_LIGHT_PAINTING 88  
PRESET_TITLE_EASY_MAX_LIGHT_TRAIL 89  
PRESET_TITLE_MAX_STAR_TRAIL 90  
PRESET_TITLE_MAX_LIGHT_PAINTING 91  
PRESET_TITLE_MAX_LIGHT_TRAIL 92  
PRESET_TITLE_HIGHEST_QUALITY_VIDEO 93  
PRESET_TITLE_USER_DEFINED_CUSTOM_NAME 94  

request_get_preset_status.proto

RequestGetPresetStatus

Get preset status (and optionally register to be notified when it changes)

Response: @ref NotifyPresetStatus sent immediately

Notification: @ref NotifyPresetStatus sent periodically as preset status changes, if registered.

Field Type Label Description
register_preset_status EnumRegisterPresetStatus repeated Array of Preset statuses to be notified about
unregister_preset_status EnumRegisterPresetStatus repeated Array of Preset statuses to stop being notified about

EnumRegisterPresetStatus

Name Number Description
REGISTER_PRESET_STATUS_PRESET 1 Send notification when properties of a preset change
REGISTER_PRESET_STATUS_PRESET_GROUP_ARRAY 2 Send notification when properties of a preset group change

response_generic.proto

ResponseGeneric

Generic Response used across most response / notification messages

@ref EnumResultGeneric

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info

EnumResultGeneric

Name Number Description
RESULT_UNKNOWN 0  
RESULT_SUCCESS 1  
RESULT_ILL_FORMED 2  
RESULT_NOT_SUPPORTED 3  
RESULT_ARGUMENT_OUT_OF_BOUNDS 4  
RESULT_ARGUMENT_INVALID 5  

set_camera_control_status.proto

RequestSetCameraControlStatus

Set Camera Control Status (as part of Global Behaviors feature)

Response: @ref ResponseGeneric

Field Type Label Description
camera_control_status EnumCameraControlStatus required Declare who is taking control of the camera

EnumCameraControlStatus

Name Number Description
CAMERA_IDLE 0  
CAMERA_CONTROL 1 Can only be set by camera, not by app or third party
CAMERA_EXTERNAL_CONTROL 2  

turbo_transfer.proto

RequestSetTurboActive

Enable/disable display of “Transferring Media” UI

Response: @ref ResponseGeneric

Field Type Label Description
active bool required Enable or disable Turbo Transfer feature

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double   double double float float64 double float Float
float   float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool   bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)