:github_url: https://github.com/gopro/OpenGoPro/tree/main/demos/python/sdk_wireless_camera_control
=========
Changelog
=========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
0.21.2 (June-26-2025)
---------------------
* Fix wireless webcam demo
0.21.1 (June-26-2025)
---------------------
* Add user streaming guidance to webcam demo
0.21.0 (June-25-2025)
---------------------
* Support WiFi connecting on MacOS >= 15
* Clean up streaming demos
0.20.2 (May-30-2025)
--------------------
* Fix COHN feature to handle cameras that do not support COHN
0.20.1 (May-15-2025)
--------------------
* Add stream feature abstraction and update stream demos
0.20.0 (May-12-2025)
--------------------
* NOTE! This is a major update and includes breaking API changes
* Major refactor to support any combination of network interfaces for WirelessGoPro
* Add observable / observer base type and use for asynchronous push notification operations
* Maintain database of COHN credentials
* Remove Python 3.10 and add 3.13 support
0.19.8 (April-30-2025)
----------------------
* Default ainput printer arg to None to support non-terminal applications without access to stdout
0.19.7 (April-28-2025)
----------------------
* Add Reboot Command
* Hardcode bypass_eula_check to True to allow connecting to networks without internet access.
* Add scheduled capture setting (and support for other future quantitative settings)
0.19.6 (April-8-2025)
---------------------
* Update dependencies
* Fix register / unregister all settings / statuses
0.19.5 (March-27-2025)
----------------------
* Fix race condition in BLE opening
* Set third party when opening device
* Add more detailed advertisement data parsing capability
* Add 4:3 and 16:9 preset enums
* Use constant setting IDs when getting presets
0.19.4 (March-21-2025)
----------------------
* Inject BLE keep alive and set the default to 3 seconds
* Make WiFi connect and disconnect async methods
0.19.3 (March-20-2025)
----------------------
* Fix BLE Keep alive
0.19.2 (March-19-2025)
----------------------
* Allow more configurability in wifi open / close
0.19.1 (March-18-2025)
----------------------
* Add encode argument for set_livestream_mode
0.19.0 (February-20-2025)
-------------------------
* Major settings and status API changes to use auto-generated code
0.18.0 (January-7-2025)
-----------------------
* Change supported Python versions to >= 3.10 and < 3.13
0.17.1 (September-13-2024)
--------------------------
* Fix COHN demo
* Fix livestream demo CLI argument parsing
* Add `raw` field to MediaList object
0.17.0 (September-9-2024)
-------------------------
* Add Hero 13 support (settings, statuses, protobuf)
* Fix MacOS Wifi scanning
* Major infrastructure updates
0.16.2 (July-18-2024)
---------------------
* Add Setting 125
* Don't default to hardcoded parameters for set livestream mode
* Fix routing for Get All Setting / Status commands
0.16.1 (April-23-2024)
----------------------
* Always use extended headers
* Add Delete Media HTTP API's
* Add port argument to Preview Stream HTTP API
* Only ask for sudo password when required
* fix WiFi connection on RHEL based systems
0.16.0 (April-9-2024)
---------------------
* Refactor all network operations to operate on common Message class
* Add PUT Operation support
* Add Custom Preset Update
* Update Bleak to 0.21.1
0.15.1 (December-6-2023)
------------------------
* Fix livestream demo.
0.15.0 (December-6-2023)
------------------------
* Add alpha support for COHN (Camera-on-the-Home-Network)
* A real implementation is going to require a major rearchitecture to dynamically add connection types.
* Remove TKinter GUI. Will be replaced with Textual TUI in the future
* Improve wifi SSID matching
* Fix unhashable pydantic base models
0.14.1 (September-21-2023)
--------------------------
* Fix BLE notifications not being routed correctly
* Don't hardcode media directory. Also append directory to filenames in media list.
* Fix malformed Set Setting HTTP url
0.14.0 (September-13-2023)
--------------------------
* NOTE! This is a major update and includes massive API breaking changes.
* Move to asyncio-based framework
* Add HERO 12 support
* Move from generic response to per-command typed response
* Improve video viewer latency
* Improve BLE and HTTP setting documentation
* Add media list and metadata pydantic models
0.13.0 (February-24-2023)
-------------------------
* Allow for GUI dependencies to be optional (with "gui" extras)
* Add English language verification for Wifi Driver
* Documentation fixes missed from 0.12.0
* Update dependencies (including bleak to 0.19.5)
0.12.0 (December-16-2023)
-------------------------
* Add USB support
* Introduces breaking changes of top level interface (i.e. GoPro --> WirelessGoPro / WiredGoPro)
* Includes mDNS discovery of GoPro's
* Add run-time python version verification
* Improve error messaging and documentation around wifi interface issues
* Add livestream demo
* Add webcam demo
* Add message rules for Commands / Settings / Statuses (Fastpass, etc)
0.11.2 (November-9-2022)
------------------------
* Update bleak to 0.19.0
* Improve Bluetooth Scan delays
* Add support for Hero 11 Mini
0.11.1 (October-18-2022)
------------------------
* Improve Mac Wifi connection robustness
* Fix BLE can ignoring timeout and retry args
0.11.0 (September-14-2022)
--------------------------
* Add Hero 11 Support
* Add Presets Control Demo
* Refactor all commands to be variadic
* Add API GUI MVC framework
* Protobuf command bug fixes
* Improve API doc generation and docstring verification
* Drop Python 3.8 support
0.10.0 (July-14-2022)
---------------------
* Add sudo password argument to Wifi Controller and expose through CLI demos via stdin
* Add more protobuf commands and missing protobuf ID parsing functionality
* Add livestream demo GUI
* Change preview stream demo to be a GUI
* Add support for fragmenting long data packets when sending BLE data
0.9.2 (June-16-2022)
-----------------------
* Remove use of importlib.metadata as it was complicating pyinstaller use of this package
0.9.1 (May-27-2022)
-----------------------
* Improve non-main thread and asyncio exception handling
* Add pydocstyle verification
0.9.0 (February-7-2022)
-----------------------
* Move to Poetry-based development environment
* Fix docstring inconsistencies
0.8.0 (February-3-2022)
-----------------------
* Improve BLE connection Robustness
* Deprecate support for Open GoPro Versions other than 2.0
* Add set / date time commands
* Implement remaining protobuf commands and fix protobuf parsing
* Add hilight commands
* Implement common UUID type
* Add video performance mode
* Remove deprecated status and setting ID's
0.7.2 (January-3-2022)
----------------------
* Allow for WiFi adapter to specify interface
* Clean up Wifi adapter
* Bump test package versions
0.7.1 (December-16-2021)
-------------------------
* Add global behaviors commands and camera control status
* Add register / unregister all for settings and statuses
* Add max lens setting
* Improve API documentation
0.7.0 (October-27-2021)
-------------------------
* Add video performance mode functionality
0.6.3 (October-7-2021)
-------------------------
* Decouple response accumulating from parsing
0.6.2 (September-28-2021)
-------------------------
* Fix setup.py entrypoints for demo programs
0.6.1 (September-20-2021)
-------------------------
* make parsers available at instantiation
* use GoPro specific enums to handle invalid parameter cases
* handle HTTP GET errors
* add Construct typing
* update Construct parsers to return actual enum's so identity checks can be used
0.6.0 (September-2-2021)
------------------------
* Major refactor to support multiple Open GoPro API versions and different BLE / WiFi adapters
* Improve BLE connection robustness by ensuring disconnects
* Implement Open GoPro Version 2.0
* Major documentation updates
* Add end-to-end testing and improve test coverage
* Upgrade bleak
* Add connect WiFi demos
0.5.8 (August-10-2021)
----------------------
* Add option to start GoPro communication without WiFi (i.e only use BLE)
* Add battery logging example
0.5.7 (June-7-2021)
-------------------
* Fix wifi driver for Windows
0.5.6 (May-26-2021)
-------------------
* Minor documentation updates
0.5.5 (May-26-2021)
-------------------
* Documentation link updates
0.5.4 (May-6-2021)
------------------
* Update documentation to coexist with jekyll on Github pages
0.5.3 (April-15-2021)
---------------------
* Documentation updates
* Move into Open GoPro repo
0.5.2 (April-2-2021)
--------------------
* Add entrypoints for video, photo, and stream
* Updates to response interface for usability
* Fix Ubuntu Wifi driver scanning
0.5.1 (April-1-2021)
--------------------
* Add photo, video, and stream entry points
* Change active accumulating response to a dict indexed by UUID's to handle simultaneous active responses
0.5.0 (March-30-2021)
---------------------
* Add support for Ubuntu 20.04
* Upgrade to bleak 0.11.0
0.4.6 (March-29-2021)
---------------------
* Fix bug where multiple simultaneous sync responses weren't handled
0.4.5 (March-29-2021)
---------------------
* Infrastructure updates:
- Move from flake8 to pylint in order to catch missing args in docstrings
- Implement a lot of pylint suggestions
0.4.4 (March-27-2021)
---------------------
* Infrastructure updates:
- Add Github actions for CI / CD
- Fix all mypy and flake8 errors
0.4.3 (March-26-2021)
---------------------
* Make BLE interface controller-agnostic
0.4.2 (March-25-2021)
---------------------
* Fix line endings that were causing PyPi failures
0.4.1 (March-25-2021)
---------------------
* Fix install error by adding protobuf requirement
0.4.0 (March-25-2021)
---------------------
* Merge BLE and WiFi classes into one GoPro class
* Automatically periodically send keep alive
* Run pydocstyle on docstrings
0.3.3 (March-22-2021)
---------------------
* Add support to wait for encoding and system ready statuses in BLE
* Add protobuf framework (not being sent yet)
* Fix Wi-Fi SSID corner cases
0.3.2 (March-15-2021)
---------------------
* Handle case where BLE parameter has length 0
* Doc updates
0.3.1 (March-12-2021)
---------------------
* Add automatic VLC opening
0.3.0 (March-11-2021)
---------------------
* Wrote documentation and did some refactoring
0.2.0 (March-10-2021)
---------------------
* first usable Beta package.
* Should work on Windows and Mac
0.1.x (March-10-2021)
---------------------
* open_gopro created. Incremental updates until the package could actually install