obs-ptz v0.14.0
I think it is time to just make another release. Some of the things in here aren't necessarily done. The new control widget is merged, but it still needs a lot of work. Releasing now gives you all the chance to test it out and let me know how it is working for you. However the older button based interface remains so you aren't required to use the new scheme.
Many of the changes in this release are under the hood and not visible to the user. VISCA users in particular should see compatibility with more cameras and more consistent behaviour. Quite a few protocol bugs have been found and squashed. The viscaemu.py script has been enhanced to help with testing.
What is visible is a new 'touch' control scheme that can be selected by clicking the touch button in the toolbar. The touch widget controls pan and tilt based on where inside the widget is clicked. Close to the centre for slow moves, outside edge for fast. Also, speed limits can now be set on for pan, tilt, zoom and focus movements which should improve control of cameras that can move very fast. Hotkeys and PTZ Actions have been added for saving a preset.
Go forth and test!
Commits
b640886 Add 'Preset Save' to PTZ Action source
998171f ui: add touch control widget
a010324 control: Split modifier handling from setPanTilt()
0acc00e ui: Give layouts meaningful names
6eed50f ui: Update design file with Designer 6
680309e visca: Fix inverted tilt movements
095c9f8 settings: Make device list un-editable
bacee51 settings: Filter unnecessary device renames
4108735 visca: Only send IF_CLEAR on UART connections
cc317dd Add hotkeys for saving a preset
1619aac Record hotkey id in registerHotkey()
732920d Don't save unused presets in the config file
f6176c7 Make number of presets configurable
ad6bfd4 Move protocol helper code into a cpp file
6dd1fa6 visca: Add configurable range limits
8d8b294 visca: Add helper for scaling speeds to camera integer
91d6bca visca: Fix off-by-one error in s8 encoding
8050879 visca: create base class {get,set}_config methods
02e1257 viscaemu: Add focus emulation
4ba481d Use single parameter for maximum pan/tilt speed
8ff31a8 Add speed limit setting for pan/tilt/zoom/focus
43a446d Add speed ramping to focus control
db610b4 Use std::clamp() everywhere
c6deba6 visca-emulator: add handling of movement commands
3b3077e visca: Fix range of zoom and focus movements
41f94c8 visca: Simplify timeout timer handling
3ec3bdf debug: Provide consistent context in log messages
a48c162 Make more of the PTZListModel methods `const`
4260600 visca: Remove dead code
Checksums
obs-ptz-0.14.0-linux-x86_64.deb: 0618be8ca7d05c91f581f8806cd357cc1fdbefba3c984831a3d5da39f2dc8a20
obs-ptz-v0.14.0-macos-arm64.pkg: 1838e678c1aa29b974b94a292c862905099f22fd8f5836d292e528504ba99f5c
obs-ptz-v0.14.0-macos-universal.pkg: e82a05b5350a36572444db0b74f34b904432a0f378fd353df3eecf7f9f321a62
obs-ptz-v0.14.0-macos-x86_64.pkg: 1624279caac12699fd25abe30874d2a97152b5907441eb1898e286d11f8dfea9
obs-ptz-v0.14.0-windows-x64-Installer.exe: f7c2f8d388708f03e17717ff4032e430e9400d74e760014cda44fdd8a0d54685
obs-ptz-v0.14.0-windows-x64.zip: 4f828e7046c06fdeaaafa97992d151d69f219872e628916b553c116ea354c162