Skip to content

Commit

Permalink
Built Open GoPro docs from Internal Repo
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Sep 11, 2024
1 parent e3ad481 commit 40ab4d8
Show file tree
Hide file tree
Showing 37 changed files with 1,533 additions and 1,955 deletions.
32 changes: 11 additions & 21 deletions assets/js/lunr/lunr-store.js
Original file line number Diff line number Diff line change
Expand Up @@ -933,24 +933,6 @@ let specStore = [
"url": "https://gopro.github.io/OpenGoPro/ble/features/settings.html#settings",
"tags": []
},
{
"title": "Camera Capabilities (BLE Spec)",
"excerpt": "",
"url": "https://gopro.github.io/OpenGoPro/ble/features/settings.html#camera-capabilities",
"tags": []
},
{
"title": "Xlsx (BLE Spec)",
"excerpt": "",
"url": "https://gopro.github.io/OpenGoPro/ble/features/settings.html#xlsx",
"tags": []
},
{
"title": "Json (BLE Spec)",
"excerpt": "",
"url": "https://gopro.github.io/OpenGoPro/ble/features/settings.html#json",
"tags": []
},
{
"title": "Operations (BLE Spec)",
"excerpt": "",
Expand Down Expand Up @@ -1959,15 +1941,15 @@ let specStore = [
},
{
"title": "Presets (HTTP Section)",
"excerpt": "## Presets\n\nThe camera organizes many modes of operation into [Presets](#schema/Preset).\n\n> Note: The Preset ID is required to load a Preset via [Load Preset](#operation/OGP_PRESET_LOAD).\n\nDepending on the camera's state, different collections of presets will be available for immediate loading and use.\nBelow is a table of settings that affect the current preset collection and thereby which presets can be loaded:\n\n<!-- AUTOGEN_PRESET_STATUS_IDS -->\n\n| ID | Setting |\n| --- | ---------------------- |\n| 162 | Max Lens |\n| 173 | Video Performance Mode |\n| 175 | Controls |\n| 177 | Enable Night Photo |\n| 180 | Video Mode |\n| 186 | Video Mode |\n| 187 | Lapse Mode |\n| 189 | Max Lens Mod |\n| 190 | Max Lens Mod Enable |\n| 191 | Photo Mode |\n\n## Preset Groups\n\nPresets are organized into [Preset Groups](#schema/PresetGroup).\n\nTo find the currently available Presets / Preset Groups, use [Get Preset Status](#operation/OGP_PRESETS_GET).\n",
"excerpt": "## Presets\n\nThe camera organizes modes of operation into [Presets](#schema/Preset).\n\nDepending on the camera's state, different collections of presets will be available for immediate loading and use.\n\nTo find the currently available Presets, use [Get Preset Status](#operation/OGP_PRESETS_GET).\n\n## Preset Groups\n\nPresets are organized into [Preset Groups](#schema/PresetGroup).\n\nTo find the currently available Preset Groups, use [Get Preset Status](#operation/OGP_PRESETS_GET).\n",
"url": "https://gopro.github.io/OpenGoPro/http#tag/Presets",
"tags": [
"httpOperation"
]
},
{
"title": "Settings (HTTP Section)",
"excerpt": "GoPro cameras have hundreds of setting options to choose from, all of which can be set using a single endpoint. The endpoint is configured with a setting id and an option value. Note that setting option values are not globally unique. While most option values are enumerated values, some are complex bit-masked values.\n\n## Capabilities\n\nCamera capabilities usually change from one camera to another and often change from one release to the next.\nBelow are documents that detail whitelists for basic video settings for every supported camera release.\n\nThese Capability documents define supported camera states.\nEach state is comprised of a set of setting options that are presented in **dependency order**.\nThis means each state is guaranteed to be attainable if and only if the setting options are set in the order presented.\nFailure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command.\n\n| Camera | Command 1 | Command 2 | Command 3 | Command 4 | Command 5 | Guaranteed Valid? |\n| ------------ | --------- | ------------------------- | --------- | --------- | ---------------- | ----------------- |\n| HERO10 Black | Res: 1080 | Anti-Flicker: 60Hz (NTSC) | FPS: 240 | FOV: Wide | Hypersmooth: OFF | ✔ |\n| HERO10 Black | FPS: 240 | Anti-Flicker: 60Hz (NTSC) | Res: 1080 | FOV: Wide | Hypersmooth: OFF | ❌ |\n\nIn the example above, the first set of commands will always work for basic video presets such as Standard.\n\nIn the second example, suppose the camera's Video Resolution was previously set to 4K.\nIf the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported.\n\nCapability documents for each camera / firmware version can be found in the following file formats:\n\n### XLSX\n\nAn XLSX file can be found [here](https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities.xlsx).\n\nThe capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents\na whitelisted state and is presented in dependency order as outlined above.\n\n### JSON\n\nA JSON file can be found [here](https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities.json).\n\nThe capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a\nlist of objects that contain setting and option IDs necessary to construct set-setting commands and are given in\ndependency order as outlined above. For more information on the object format, see the JSON\n[schema](https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities_schema.json)\n",
"excerpt": "GoPro cameras have hundreds of setting options to choose from. Since these options have a complex tree of dependencies\non camera state, current Preset, etc, there is no mechanism to set a desired setting option from any camera state.\n\nTo find the currently available options for a given setting, attempt to set it to an invalid option using its relevant\noperation below and view the [currently available options](#schema/SettingCapabilities) returned in the 403 error response.\n",
"url": "https://gopro.github.io/OpenGoPro/http#tag/settings",
"tags": [
"httpOperation"
Expand Down Expand Up @@ -2045,6 +2027,14 @@ let specStore = [
"httpOperation"
]
},
{
"title": "Settingcapabilities (HTTP Schema)",
"excerpt": "The currently available options for the requested setting.",
"url": "https://gopro.github.io/OpenGoPro/http#schema/SettingCapabilities",
"tags": [
"httpOperation"
]
},
{
"title": "Singlemedialistitem (HTTP Schema)",
"excerpt": "A single (non-grouped) media item\n\nNote that each property actually comes as a string but is specified here using its functional value.\n",
Expand Down Expand Up @@ -2207,7 +2197,7 @@ let specStore = [
},
{
"title": "Load Preset By Id (HTTP Operation)",
"excerpt": "\n![HERO13 Black](https://img.shields.io/badge/HERO13%20Black-ffe119)\n![HERO12 Black](https://img.shields.io/badge/HERO12%20Black-f58231)\n ![HERO11 Black Mini](https://img.shields.io/badge/HERO11%20Black%20Mini-911eb4)\n![HERO11 Black](https://img.shields.io/badge/HERO11%20Black-f032e6)\n ![HERO10 Black](https://img.shields.io/badge/HERO10%20Black-bcf60c)\n![HERO9 Black](https://img.shields.io/badge/HERO9%20Black-fabebe)\n \n\nSupported Protocols:\n\n\n- usb\n- wifi\n\n---\nPreset ID's are not constant and must be retrieved via [Get Preset Status](#operation/OGP_PRESETS_GET)",
"excerpt": "\n![HERO13 Black](https://img.shields.io/badge/HERO13%20Black-ffe119)\n![HERO12 Black](https://img.shields.io/badge/HERO12%20Black-f58231)\n ![HERO11 Black Mini](https://img.shields.io/badge/HERO11%20Black%20Mini-911eb4)\n![HERO11 Black](https://img.shields.io/badge/HERO11%20Black-f032e6)\n ![HERO10 Black](https://img.shields.io/badge/HERO10%20Black-bcf60c)\n![HERO9 Black](https://img.shields.io/badge/HERO9%20Black-fabebe)\n \n\nSupported Protocols:\n\n\n- usb\n- wifi\n\n---\nA preset can only be loaded if it is currently available where available preset IDs can be found\nfrom [Get Preset Status](#operation/OGP_PRESETS_GET)\n",
"url": "https://gopro.github.io/OpenGoPro/http#operation/OGP_PRESET_LOAD",
"tags": [
"httpOperation"
Expand Down
21 changes: 4 additions & 17 deletions ble/_sources/features/presets.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,6 @@ Presets
The camera organizes many modes of operation into Presets.

Depending on the camera's state, different collections of presets will be available for immediate loading and use.
Below is a table of settings that affect the current preset collection and thereby which presets can be loaded

=== ====================================================
ID Setting
=== ====================================================
162 :operation:ref:`Max Lens<Setting 162>`
173 :operation:ref:`Video Performance Mode<Setting 173>`
175 :operation:ref:`Controls<Setting 175>`
177 :operation:ref:`Enable Night Photo<Setting 177>`
180 :operation:ref:`Video Mode<Setting 180>`
186 :operation:ref:`Video Mode<Setting 186>`
187 :operation:ref:`Lapse Mode<Setting 187>`
189 :operation:ref:`Max Lens Mod<Setting 189>`
190 :operation:ref:`Max Lens Mod Enable<Setting 190>`
191 :operation:ref:`Photo Mode<Setting 191>`
=== ====================================================

Preset Groups
-------------
Expand Down Expand Up @@ -89,7 +73,10 @@ Operations
:external:
:id: 0x40

Load preset by ID. The ID must be found from :operation:ref:`Get Available Presets`
Load preset by ID.

A preset can only be loaded if it is currently available where available preset IDs can be
found from :operation:ref:`Get Available Presets`

.. operation:tlv-message:: Request
:uuid: Command
Expand Down
46 changes: 5 additions & 41 deletions ble/_sources/features/settings.rst.txt
Original file line number Diff line number Diff line change
@@ -1,49 +1,13 @@
Settings
********

Camera Capabilities
===================
GoPro cameras have hundreds of setting options to choose from. Since these options have a complex tree of dependencies
on camera state, current Preset, etc, there is no mechanism to set a desired setting option from any camera state.

Camera capabilities usually change from one camera to another and often change from one release to the next. Below are
documents that detail whitelists for basic video settings for every supported camera release.
To find the currently available options for a given setting, use the capability querying operations:

These capability documents define supported camera states. Each state is comprised of a set of setting options that are
presented in **dependency order**. This means each state is guaranteed to be attainable if and only if the setting options
are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules
rejecting a :operation:ref:`Set Setting` command.

============= ========= =================== ========= ========= ================ =================
Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid?
============= ========= =================== ========= ========= ================ =================
Hero 10 Black Res: 1080 Anti-Flicker: 60 Hz FPS: 240 FOV: Wide Hypersmooth: Off ✔
Hero 10 Black Res: 240 Anti-Flicker: 60 Hz RES: 1080 FOV: Wide Hypersmooth: off ❌
============= ========= =================== ========= ========= ================ =================

In the example above, the first set of commands will always work for basic video presets such as Standard.

In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS
to 240, it will fail because 4K/240fps is not supported.

Capability documents for each camera / firmware version can be found in the following file formats:

XLSX
----

An XLSX file can be found `here <https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities.xlsx>`__.

The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a
whitelisted state and is presented in dependency order as outlined above.

JSON
----

A JSON file can be found `here <https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities.json>`__.

The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list
of objects that contain setting and option IDs necessary to construct
:operation:ref:`Set Setting` commands and are given in dependency
order as outlined above. For more information on the object format, see the
`JSON schema <https://github.com/gopro/OpenGoPro/blob/main/capabilities/capabilities_schema.json>`__.
- :operation:ref:`Get Setting Capabilities`
- :operation:ref:`Register for Setting Capability Updates`

Operations
==========
Expand Down
6 changes: 0 additions & 6 deletions ble/features/access_points.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@
<li class="toctree-l1">
<a class="reference internal" href="settings.html">Settings</a><ul>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#camera-capabilities">Camera Capabilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#xlsx">XLSX</a></li>
<li class="toctree-l3"><a class="reference internal" href="settings.html#json">JSON</a></li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#operations">Operations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#set-setting"><code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">Setting</span></code></a></li>
</ul>
Expand Down
6 changes: 0 additions & 6 deletions ble/features/cohn.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@
<li class="toctree-l1">
<a class="reference internal" href="settings.html">Settings</a><ul>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#camera-capabilities">Camera Capabilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#xlsx">XLSX</a></li>
<li class="toctree-l3"><a class="reference internal" href="settings.html#json">JSON</a></li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#operations">Operations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#set-setting"><code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">Setting</span></code></a></li>
</ul>
Expand Down
6 changes: 0 additions & 6 deletions ble/features/control.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@
<li class="toctree-l1">
<a class="reference internal" href="settings.html">Settings</a><ul>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#camera-capabilities">Camera Capabilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#xlsx">XLSX</a></li>
<li class="toctree-l3"><a class="reference internal" href="settings.html#json">JSON</a></li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#operations">Operations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#set-setting"><code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">Setting</span></code></a></li>
</ul>
Expand Down
6 changes: 0 additions & 6 deletions ble/features/hilights.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@
<li class="toctree-l1">
<a class="reference internal" href="settings.html">Settings</a><ul>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#camera-capabilities">Camera Capabilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#xlsx">XLSX</a></li>
<li class="toctree-l3"><a class="reference internal" href="settings.html#json">JSON</a></li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#operations">Operations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#set-setting"><code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">Setting</span></code></a></li>
</ul>
Expand Down
6 changes: 0 additions & 6 deletions ble/features/live_streaming.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@
<li class="toctree-l1">
<a class="reference internal" href="settings.html">Settings</a><ul>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#camera-capabilities">Camera Capabilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#xlsx">XLSX</a></li>
<li class="toctree-l3"><a class="reference internal" href="settings.html#json">JSON</a></li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="settings.html#operations">Operations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="settings.html#set-setting"><code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">Setting</span></code></a></li>
</ul>
Expand Down
Loading

0 comments on commit 40ab4d8

Please sign in to comment.