Releases: Yoooi0/MultiFunPlayer
Releases · Yoooi0/MultiFunPlayer
MultiFunPlayer v1.32.1
1.32.1
Additional patreon only changelog:
- Fix SLR not using cached session when logging in with email
- Fix SLR not using cached session when username letter case differs from session username
- Fix DeoVR not staring if SLR fails to log in
- Convert DeoVR haptics input from buttons to toggles
- Improve behavior of DeoVR haptics input
Changelog:
- Use force seek when updating position after a seek request in Internal source
- Add support for toggles in shortcuts
- Fix crash when trying to create shortcuts with missing type
- Fix local script loading failing when one of the matched scripts is corrupted
- Improve performance of shortcut action runner
Plugins:
- Add or remove plugins after adding or removing folders
- Recompile plugins on file change event
- Recompile plugins when adding or removing xaml file
- Limit plugin path depth to one subfolder
- Automatically unregister all plugin registered actions on dispose
- Add helpers for starting plugin background tasks/threads that are cleaned up on dispose
- Fix plugin assembly not unloading
- Fix plugin compilation error when plugin file contains classes with no base class
- Fix plugin compilation error when non plugin class has constructors
1.32.0
Additional patreon only changelog:
- Support SLR login using login code

- Allow connecting DeoVR even when SLR login fails or credentials are empty
- Don't use cached session if username is different
- Fix "wrong password" error when logging in to SLR
- Fix SLR api sending local scripts causing double sync
Changelog:
- Rework and simplify plugin system

- Allow placing plugins in subfolders
- Expose available actions and properties to plugins
- Allow plugins to create their own UI
- Improve performance of creating assembly references for plugins
- Register missing properties for plugins where possible to match registered actions
- Sample plugins: https://gist.github.com/Yoooi0/a5976f75574e09cc683aec01a1df804c
- Update to .net 9 (performance improvements)
- Allow assigned actions to be in disabled state instead of getting removed from shortcuts if plugin or output target action is unregistered (#88)

- Add support for auto-home and speed limit when using PolledUpdate (#180)
- Fix unable to place breakpoints in plugins due to plugin assembly embedded source not including BOM
- Fix nested dialogs getting stuck invisible in certain situations
- Fix custom curve motion provider tiling when using makima interpolation
- Fix manual axis transitions loosing steps with shortcuts in relative mode
- Fix axis value flipping repeatedly with invert option enabled by reverting it to invert script only
- Fix auto-home taking shorter time to complete than configured
- Fix SyncOnMediaResourceChanged not having any effect when set to false
- Fix MotionProvider::Custom Curve::Points::Set actions not updating display name
- Fix MotionProvider::Custom Curve::Points::Set actions adding additional point on each launch
MultiFunPlayer v1.32.0
Additional patreon only changelog:
- Support SLR login using login code

- Allow connecting DeoVR even when SLR login fails or credentials are empty
- Don't use cached session if username is different
- Fix "wrong password" error when logging in to SLR
- Fix SLR api sending local scripts causing double sync
Changelog:
- Rework and simplify plugin system

- Allow placing plugins in subfolders
- Expose available actions and properties to plugins
- Allow plugins to create their own UI
- Improve performance of creating assembly references for plugins
- Register missing properties for plugins where possible to match registered actions
- Sample plugins: https://gist.github.com/Yoooi0/a5976f75574e09cc683aec01a1df804c
- Update to .net 9 (performance improvements)
- Allow assigned actions to be in disabled state instead of getting removed from shortcuts if plugin or output target action is unregistered (#88)

- Add support for auto-home and speed limit when using PolledUpdate (#180)
- Fix unable to place breakpoints in plugins due to plugin assembly embedded source not including BOM
- Fix nested dialogs getting stuck invisible in certain situations
- Fix custom curve motion provider tiling when using makima interpolation
- Fix manual axis transitions loosing steps with shortcuts in relative mode
- Fix axis value flipping repeatedly with invert option enabled by reverting it to invert script only
- Fix auto-home taking shorter time to complete than configured
- Fix SyncOnMediaResourceChanged not having any effect when set to false
- Fix MotionProvider::Custom Curve::Points::Set actions not updating display name
- Fix MotionProvider::Custom Curve::Points::Set actions adding additional point on each launch
MultiFunPlayer v1.31.3
1.31.3
- Add PotPlayer support
- Fix incorrect VLC media duration after changing media file
- Fix Buttplug output disconnecting in rare cases
1.31.2
Additional patreon only changelog:
- Fix unable to log in to SLR
- Reuse SLR session to prevent rate limit error when logging in
Changelog:
- Support matching XBVR files not matched to any scene using local repository
- Fix crash when selected device has multiple axes with the same name
- Only load axes with name in '[A-Z][0-9]' format
1.31.1
- Fix VLC 3 time drift by recalculating media duration on each update (#184) - on seek from MultiFunPlayer (like auto-skip) the duration gets updated to the exact value
- Fix Emby and Jellyfin source not working (#187)
- Fix speed limit offset actions not allowing negative values (#186)
- Fix unit conversion in speed limit SecondsPerUnit offset action (#186)
- Fix path plugin references not loading the assembly (#185)
- Fix plugin settings saving only after they finish executing (#188)
- Fix output target and media source logger names
1.31.0
Additional patreon only changelog:
- Add HereSphere script repository - allows loading scripts from sites that support heresphere api (library view)

Changelog:
- Add support for updated HereSpere api - this fixes Stash/XBVR script repository not working with HereSphere
- Add support for VLC 4 (#183)
- Add back MatchAllUseFirst option to XBVR repository to allow matching scripts with mismatched video and script file name

- Allow invoking button hold shortcut while holding instead only on release

- Fix slider interval when using arrow keys
- Fix inverted Y axis in preview controls
- Fix axis value getting set to 0 under some conditions
- Fix keyframes heatmap range and heat not aligning to actual control width
- Fix keyframes heatmap heat calculation ignoring steep actions
- Differentiate between left and right shift/control/alt keyboard buttons
- Don't set timeout when manually connecting sources or targets
- Encrypt api key properties when saving settings
- Simplify plugin #r assembly reference format
- Set custom default auto-home settings for V0-V9 vibe axes
- Show remaining capture time when adding shortcuts
- Disable elapsed time offload in outputs by default due to increasing number of custom TCode devices/firmwares
MultiFunPlayer v1.31.2
1.31.2
Additional patreon only changelog:
- Fix unable to log in to SLR
- Reuse SLR session to prevent rate limit error when logging in
Changelog:
- Support matching XBVR files not matched to any scene using local repository
- Fix crash when selected device has multiple axes with the same name
- Only load axes with name in '[A-Z][0-9]' format
1.31.1
- Fix VLC 3 time drift by recalculating media duration on each update (#184) - on seek from MultiFunPlayer (like auto-skip) the duration gets updated to the exact value
- Fix Emby and Jellyfin source not working (#187)
- Fix speed limit offset actions not allowing negative values (#186)
- Fix unit conversion in speed limit SecondsPerUnit offset action (#186)
- Fix path plugin references not loading the assembly (#185)
- Fix plugin settings saving only after they finish executing (#188)
- Fix output target and media source logger names
1.31.0
Additional patreon only changelog:
- Add HereSphere script repository - allows loading scripts from sites that support heresphere api (library view)

Changelog:
- Add support for updated HereSpere api - this fixes Stash/XBVR script repository not working with HereSphere
- Add support for VLC 4 (#183)
- Add back MatchAllUseFirst option to XBVR repository to allow matching scripts with mismatched video and script file name

- Allow invoking button hold shortcut while holding instead only on release

- Fix slider interval when using arrow keys
- Fix inverted Y axis in preview controls
- Fix axis value getting set to 0 under some conditions
- Fix keyframes heatmap range and heat not aligning to actual control width
- Fix keyframes heatmap heat calculation ignoring steep actions
- Differentiate between left and right shift/control/alt keyboard buttons
- Don't set timeout when manually connecting sources or targets
- Encrypt api key properties when saving settings
- Simplify plugin #r assembly reference format
- Set custom default auto-home settings for V0-V9 vibe axes
- Show remaining capture time when adding shortcuts
- Disable elapsed time offload in outputs by default due to increasing number of custom TCode devices/firmwares
MultiFunPlayer v1.31.1
1.31.1
- Fix VLC 3 time drift by recalculating media duration on each update (#184) - on seek from MultiFunPlayer (like auto-skip) the duration gets updated to the exact value
- Fix Emby and Jellyfin source not working (#187)
- Fix speed limit offset actions not allowing negative values (#186)
- Fix unit conversion in speed limit SecondsPerUnit offset action (#186)
- Fix path plugin references not loading the assembly (#185)
- Fix plugin settings saving only after they finish executing (#188)
- Fix output target and media source logger names
1.31.0
Additional patreon only changelog:
- Add HereSphere script repository - allows loading scripts from sites that support heresphere api (library view)

Changelog:
- Add support for updated HereSpere api - this fixes Stash/XBVR script repository not working with HereSphere
- Add support for VLC 4 (#183)
- Add back MatchAllUseFirst option to XBVR repository to allow matching scripts with mismatched video and script file name

- Allow invoking button hold shortcut while holding instead only on release

- Fix slider interval when using arrow keys
- Fix inverted Y axis in preview controls
- Fix axis value getting set to 0 under some conditions
- Fix keyframes heatmap range and heat not aligning to actual control width
- Fix keyframes heatmap heat calculation ignoring steep actions
- Differentiate between left and right shift/control/alt keyboard buttons
- Don't set timeout when manually connecting sources or targets
- Encrypt api key properties when saving settings
- Simplify plugin #r assembly reference format
- Set custom default auto-home settings for V0-V9 vibe axes
- Show remaining capture time when adding shortcuts
- Disable elapsed time offload in outputs by default due to increasing number of custom TCode devices/firmwares
MultiFunPlayer v1.31.0
Additional patreon only changelog:
- Add HereSphere script repository - allows loading scripts from sites that support heresphere api (library view)

Changelog:
- Add support for updated HereSpere api - this fixes Stash/XBVR script repository not working with HereSphere
- Add support for VLC 4 (#183)
- Add back MatchAllUseFirst option to XBVR repository to allow matching scripts with mismatched video and script file name

- Allow invoking button hold shortcut while holding instead only on release

- Fix slider interval when using arrow keys
- Fix inverted Y axis in preview controls
- Fix axis value getting set to 0 under some conditions
- Fix keyframes heatmap range and heat not aligning to actual control width
- Fix keyframes heatmap heat calculation ignoring steep actions
- Differentiate between left and right shift/control/alt keyboard buttons
- Don't set timeout when manually connecting sources or targets
- Encrypt api key properties when saving settings
- Simplify plugin #r assembly reference format
- Set custom default auto-home settings for V0-V9 vibe axes
- Show remaining capture time when adding shortcuts
- Disable elapsed time offload in outputs by default due to increasing number of custom TCode devices/firmwares
MultiFunPlayer v1.30.2
1.30.2:
- Fix crash when creating XInput axis gestures at min/max position
1.30.1:
- Fix RawInput settings not getting saved
- Fix crash when creating XInput axis gestures
- Fix custom curve motion provider overflowing when tiling linear curve
1.30.0:
Additional patreon only changelog:
- Add support for DeoVR haptics buttons (Return to base, Pause script, Manual mode, Edging mode) to be used with shortcuts
Changelog:
- Add input processor settings (#153)

- Add ability to show errors in a snackbar instead of dialog (#168)

- Add ability to load additional scripts with the same base name in internal source

- Add ability to lock a script to an axis

- Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"

- Allow enabling/disabling device axes on default devices without having to clone a device

- Automatically tile looping custom curve motion provider curve

- Add DecodeMediaPathModifier

- Add support for async shortcut actions (#158), long running actions like connecting an output will fully complete before executing the next action
- Add api key support to stash repository (#162)
- Remove raw from L0 funscript names
- Show a dialog when starting mpv source with no executable set for easier mpv download on inital setup
- Only match to currently playing video file when using XBVR repository instead all files attached to the scene
- Only match to primary media file when using Stash repository instead all files attached to the scene
- Use all media path modifiers when processing media resource path instead of only the first matching
- When possible try to read custom device names from Jellyfin/Emby media source
- Improve behaviour of media source/output target auto-connect
- Check if MFP has permissions to save files in current directory on startup to prevent settings loss
- Disable packet buffering in Tcp output target
- Auto stop buttplug.io device scan
- Show which axis preview is selected in heatmap tooltip
- Try to find existing mpv executable in known paths without having to manually set it
- Fix XBVR repository not working with HereSphere (requires XBVR v0.4.27 or later)
- Fix possible crash when receiving data from UDP or Serial output target
- Fix some settings not getting saved when set to null (#166)
- Fix axis matching scripts ending in funscript name without a dot
- Fix parsing of media uri with file scheme
- Fix possibility of auto-connect retrying with no delay after disconnecting output target or media source
- Fix disabled mpv auto-start setting having no effect
- Fix sudden unwanted motion when media changes while auto-homing
- Fix possible crash when trying to manually load a script with a file dialog
MultiFunPlayer v1.30.1
1.30.1:
- Fix RawInput settings not getting saved
- Fix crash when creating XInput axis gestures
- Fix custom curve motion provider overflowing when tiling linear curve
1.30.0:
Additional patreon only changelog:
- Add support for DeoVR haptics buttons (Return to base, Pause script, Manual mode, Edging mode) to be used with shortcuts
Changelog:
- Add input processor settings (#153)

- Add ability to show errors in a snackbar instead of dialog (#168)

- Add ability to load additional scripts with the same base name in internal source

- Add ability to lock a script to an axis

- Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"

- Allow enabling/disabling device axes on default devices without having to clone a device

- Automatically tile looping custom curve motion provider curve

- Add DecodeMediaPathModifier

- Add support for async shortcut actions (#158), long running actions like connecting an output will fully complete before executing the next action
- Add api key support to stash repository (#162)
- Remove raw from L0 funscript names
- Show a dialog when starting mpv source with no executable set for easier mpv download on inital setup
- Only match to currently playing video file when using XBVR repository instead all files attached to the scene
- Only match to primary media file when using Stash repository instead all files attached to the scene
- Use all media path modifiers when processing media resource path instead of only the first matching
- When possible try to read custom device names from Jellyfin/Emby media source
- Improve behaviour of media source/output target auto-connect
- Check if MFP has permissions to save files in current directory on startup to prevent settings loss
- Disable packet buffering in Tcp output target
- Auto stop buttplug.io device scan
- Show which axis preview is selected in heatmap tooltip
- Try to find existing mpv executable in known paths without having to manually set it
- Fix XBVR repository not working with HereSphere (requires XBVR v0.4.27 or later)
- Fix possible crash when receiving data from UDP or Serial output target
- Fix some settings not getting saved when set to null (#166)
- Fix axis matching scripts ending in funscript name without a dot
- Fix parsing of media uri with file scheme
- Fix possibility of auto-connect retrying with no delay after disconnecting output target or media source
- Fix disabled mpv auto-start setting having no effect
- Fix sudden unwanted motion when media changes while auto-homing
- Fix possible crash when trying to manually load a script with a file dialog
MultiFunPlayer v1.30.0
Additional patreon only changelog:
- Add support for DeoVR haptics buttons (Return to base, Pause script, Manual mode, Edging mode) to be used with shortcuts
Changelog:
- Add input processor settings (#153)

- Add ability to show errors in a snackbar instead of dialog (#168)

- Add ability to load additional scripts with the same base name in internal source

- Add ability to lock a script to an axis

- Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"

- Allow enabling/disabling device axes on default devices without having to clone a device

- Automatically tile looping custom curve motion provider curve

- Add DecodeMediaPathModifier

- Add support for async shortcut actions (#158), long running actions like connecting an output will fully complete before executing the next action
- Add api key support to stash repository (#162)
- Remove raw from L0 funscript names
- Show a dialog when starting mpv source with no executable set for easier mpv download on inital setup
- Only match to currently playing video file when using XBVR repository instead all files attached to the scene
- Only match to primary media file when using Stash repository instead all files attached to the scene
- Use all media path modifiers when processing media resource path instead of only the first matching
- When possible try to read custom device names from Jellyfin/Emby media source
- Improve behaviour of media source/output target auto-connect
- Check if MFP has permissions to save files in current directory on startup to prevent settings loss
- Disable packet buffering in Tcp output target
- Auto stop buttplug.io device scan
- Show which axis preview is selected in heatmap tooltip
- Try to find existing mpv executable in known paths without having to manually set it
- Fix XBVR repository not working with HereSphere (requires XBVR v0.4.27 or later)
- Fix possible crash when receiving data from UDP or Serial output target
- Fix some settings not getting saved when set to null (#166)
- Fix axis matching scripts ending in funscript name without a dot
- Fix parsing of media uri with file scheme
- Fix possibility of auto-connect retrying with no delay after disconnecting output target or media source
- Fix disabled mpv auto-start setting having no effect
- Fix sudden unwanted motion when media changes while auto-homing
- Fix possible crash when trying to manually load a script with a file dialog
MultiFunPlayer v1.29.4
1.29.4:
- Fix shortcut settings popup height on high dpi systems
- Fix possibility of script files getting enumerated out of alphabetical order
- Fix manual axis control not getting applied while media is playing
- Fix Stash/XBVR repository not finding scripts due to endpoint comparison
- Fix window position getting saved out of visible area when closing the window while minimized
- Fix update check not working
- Try to bring window to view when restoring last position
1.29.3:
- Fix shortcuts not working until the shortcut settings popup is opened and closed
- Fix possible exception when parsing VLC source position/speed due to user culture info
- Fix possible incorrect MPC source speed due to user culture info
- Fix plex source exception when receiving invalid timeline response xml
- Fix no delay between plex source retries after receiving invalid response xml
- Fix inconsistent width in device settings tab when changing selected device
- Fix inconsistent toolbar button width
- Add "raw" to L0 funscript names in default devices
1.29.2:
- Fix polled update TCode commands duration getting sent as seconds instead of milliseconds
- Fix url encoding of media resource name when parsing from url causing script repositories fail to match scripts (#155)
- Fix incorrect host comparison in Stash/XBVR repository causing no matched scripts
- Fix Stash/XBVR repository not using full path and query when parsing for scene id causing no matched scripts
- Fix invalid scene id regex in XBVR repository causing no matched scripts
1.29.1:
- Fix unable to capture mouse wheel gestures
- Fix gamepad axis gestures not displaying user index
- Fix commit sha in window title version in release builds
1.29.0:
- Add polled update option to all output targets (#92)
- Add configurable shortcuts (#28)
- Add ability to change between secured/unsecured schema for endpoints (#150)
- Add ability to change axis used for heatmap range and tooltip with scroll wheel (#148)
- Add update check to information dialog (#34)
- Add ability to toggle force seek option in OFS source
- Improve keyframes heatmap range display
- Change default UDP output endpoint to
tcode.local:8000to match WiFi firmware - Fix gamepad axis gestures not working
- Fix invalid VLC source media path causing scripts to not load automatically
- Fix XBVR and Stash script repository returning no results with UseFirstMatchOnly
- Fix script link not updating for axes without priority
- Fix heatmap enable preview setting not getting loaded
- Fix possible min/max exception when using Axis::Range actions
- Fix delay when disposing media source or output target
- Fix buttplug output creating invalid device map when loading settings
- Fix endpoint settings not loading when using hostname
- Remove
Uri To Localmedia path modifier

