Skip to content

Releases: Yoooi0/MultiFunPlayer

MultiFunPlayer v1.32.1

19 Mar 15:28

Choose a tag to compare

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
    e42d95f76c597e484b7c44d76510638644ec3276
  • 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
    79d7dcadec76cdcd71f3ddd12c2a26591f30d2a6
    • 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)
    6f68715be20ee23463aea860a4d0ec90d3009ccc
  • 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

19 Mar 15:28

Choose a tag to compare

Additional patreon only changelog:

  • Support SLR login using login code
    e42d95f76c597e484b7c44d76510638644ec3276
  • 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
    79d7dcadec76cdcd71f3ddd12c2a26591f30d2a6
    • 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)
    6f68715be20ee23463aea860a4d0ec90d3009ccc
  • 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

24 Jan 01:26

Choose a tag to compare

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)
    3ed5eb7c9cbf0564b90d1ec9325f124d8d507c40

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
    04b37d8f10364e931d619af6e46f0c87d345f052
  • Allow invoking button hold shortcut while holding instead only on release
    be39f90d3a05c641f16f9dfe41a0abc3878b69d6
  • 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

24 Jan 01:28

Choose a tag to compare

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)
    3ed5eb7c9cbf0564b90d1ec9325f124d8d507c40

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
    04b37d8f10364e931d619af6e46f0c87d345f052
  • Allow invoking button hold shortcut while holding instead only on release
    be39f90d3a05c641f16f9dfe41a0abc3878b69d6
  • 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

24 Jan 01:26

Choose a tag to compare

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)
    3ed5eb7c9cbf0564b90d1ec9325f124d8d507c40

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
    04b37d8f10364e931d619af6e46f0c87d345f052
  • Allow invoking button hold shortcut while holding instead only on release
    be39f90d3a05c641f16f9dfe41a0abc3878b69d6
  • 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

24 Jan 01:21

Choose a tag to compare

Additional patreon only changelog:

  • Add HereSphere script repository - allows loading scripts from sites that support heresphere api (library view)
    3ed5eb7c9cbf0564b90d1ec9325f124d8d507c40

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
    04b37d8f10364e931d619af6e46f0c87d345f052
  • Allow invoking button hold shortcut while holding instead only on release
    be39f90d3a05c641f16f9dfe41a0abc3878b69d6
  • 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

26 Aug 16:29

Choose a tag to compare

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)
    MultiFunPlayer_NnD6SV6QxP
  • Add ability to show errors in a snackbar instead of dialog (#168)
    MultiFunPlayer_EVy657zFOb
  • Add ability to load additional scripts with the same base name in internal source
    MultiFunPlayer_rsfr22GI2F
  • Add ability to lock a script to an axis
    MultiFunPlayer_vhQDk0BRMA
  • Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"
    MultiFunPlayer_i9ndLZHaPf
  • Allow enabling/disabling device axes on default devices without having to clone a device
    MultiFunPlayer_5x698rsXaT
  • Automatically tile looping custom curve motion provider curve
    MultiFunPlayer_EEfmQRhlQN
  • Add DecodeMediaPathModifier
    MultiFunPlayer_qGmOlfWQVd
  • 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

26 Aug 16:29

Choose a tag to compare

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)
    MultiFunPlayer_NnD6SV6QxP
  • Add ability to show errors in a snackbar instead of dialog (#168)
    MultiFunPlayer_EVy657zFOb
  • Add ability to load additional scripts with the same base name in internal source
    MultiFunPlayer_rsfr22GI2F
  • Add ability to lock a script to an axis
    MultiFunPlayer_vhQDk0BRMA
  • Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"
    MultiFunPlayer_i9ndLZHaPf
  • Allow enabling/disabling device axes on default devices without having to clone a device
    MultiFunPlayer_5x698rsXaT
  • Automatically tile looping custom curve motion provider curve
    MultiFunPlayer_EEfmQRhlQN
  • Add DecodeMediaPathModifier
    MultiFunPlayer_qGmOlfWQVd
  • 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

26 Aug 16:28

Choose a tag to compare

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)
    MultiFunPlayer_NnD6SV6QxP
  • Add ability to show errors in a snackbar instead of dialog (#168)
    MultiFunPlayer_EVy657zFOb
  • Add ability to load additional scripts with the same base name in internal source
    MultiFunPlayer_rsfr22GI2F
  • Add ability to lock a script to an axis
    MultiFunPlayer_vhQDk0BRMA
  • Match funscripts in order of configured funscript names, "Load unnamed script" is replaced with "*"
    MultiFunPlayer_i9ndLZHaPf
  • Allow enabling/disabling device axes on default devices without having to clone a device
    MultiFunPlayer_5x698rsXaT
  • Automatically tile looping custom curve motion provider curve
    MultiFunPlayer_EEfmQRhlQN
  • Add DecodeMediaPathModifier
    MultiFunPlayer_qGmOlfWQVd
  • 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

08 Apr 17:52

Choose a tag to compare

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)
    • Polled update only sends script actions to the device ignoring all other MultiFunPlayer features, used mostly for BLE devices like The Handy to improves smoothness
      MultiFunPlayer_JZlaW8Xt5m
  • Add configurable shortcuts (#28)
    • Supports multiple shortcuts for the same gesture
      iw0QbXnzmK
  • 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:8000 to 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 Local media path modifier