Code Monkey home page Code Monkey logo

multifunplayer's People

Contributors

yoooi0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multifunplayer's Issues

Serial disconnect results in a modal error dialog box

As an MFP user, I use a microUSB cable with a magnetic tip to connect o a PC, and I use MFP with VR.
On occasion the cable has been pulled and it disconnects, and I reconnect it (since it's magnetic, that's easy to do by feel with an HMD over your eyes. It snaps into place with no problem
Alternately, I disconnect the cable and power from the connected device before closing the software.

In both cases, an error box pops up that requires a user action to close. With the new ability to auto-connect to interfaces that shouldn't happen anymore. If Serial comms (or others, including the various software apps) are lost, MFP should go into a silent reconnecting loop until either Serial is re-established or until the interface is stopped with the stop command (in the UI or with a keybind-equivalent)

Step to reproduce

  1. Connect a serial device to MFP with a USB cable and play a video with a funscript.
  2. unplug the USB cable from the serial device.
  3. observe the error box with the OK button.

Desired behavior
When the USB cable is disconnected, MFP should:

  1. Return the device to the home position
  2. Attempt to reconnect to the disconnected device or player software until the connection is re-established OR until the user manually stops the interface/software player with the UI or keybind equivalent.

Vibrations often don't stop

Sometimes the vibrations don't stop, even when the V0 axis is 0
The device itself keeps vibrating? Changing the update rate from 60hz to 0 and back to 60hz makes the device stop vibrating.

Suggestion: Implement workaround for axis jerk

There's currently a bug in the firmware where there will be random jerk added to the last axis because a character is dropped: https://discordapp.com/channels/664171761415356426/664173666963030016/916778835826077696

I usually experience the jerk on R2 (which is a mild inconvenience) but when it happens on R0 it can unplug the TValve. I'm assuming MFP only sends axis values when they change which is why sometimes it's my R2 that jerks and sometimes my R0.

A workaround that seems to work for me with the latest version (since I don't use vibes or V0) is to set V0 to a Random Motion that always goes and to crank the speed up. When I do this I haven't seen it jerk any of the axis unexpectedly. I believe what's happening is now it's always sending a V0 axis command every single update where as before the last axis on any command sent could vary and then cause a random axis to jerk.

Tempest is sending A90 at the end of every command in his serial controller, if I'm understanding correctly

[Request] User Assignable keymapping for all functions with defaults provided

All "sensible" user-accessible settings and sliders should (over time) gain an assignable keybinding for interacting with that setting to enable external command/control from software like VoiceAttack for AutoHotKey.

Examples, top to bottom in the UI, by panel.

Open/Close Player Settings panel
Connect/disconnect each player
Autoconnect Enable/disable button

Open/Close Script Settings panel
The 3 sync setting buttons
Global offset slider (keybinds to + and - the offset by a user selectable amount, default .01 sec)

Open/Close Axis panel
For each axis:
Select a specific axis and make it 'active'
Open script location
Load Script
Clear Script
Reload Script
(maybe) Move Script
Invert
Link Axis (with an available keybind to select each axis)
Disconnect axis (same as clicking X on a linked axis)
Link Axis Priority checkbox toggle
Increment/decrement Strength and Speed sliders by user selectable amount
Keybinds for Interpolation
Autohome toggle per axis (and maybe globally?), and + - sliders for delay and duration

Open/Close script values panel

Open/Close Connections Settings Panel
Select a connection (same as clicking on it)
Connect/Disconnect a connection (BP, NW, Pipe, Serial)
Increase/Decrease top/bottom sliders for each axis (reusable based on which panel is open?)
Increase/decrease update rate for Serial, Pipe, Network, BP.io

Linux paths cause exception when parsing in MediaResourceFactory

2021-12-25 22:03:12.5983|TRACE|MultiFunPlayer.VideoSource.ViewModels.DeoVRVideoSourceViewModel|Received "{"path":"/storage/emulated/0/VR CGI TH gem/ashtotes_tt_h265_180_lr.mp4","duration":143.333,"currentTime":2.10255265,"playbackSpeed":1.0,"playerState":0}" from "DeoVR"
2021-12-25 22:03:12.6362|ERROR|MultiFunPlayer.VideoSource.ViewModels.DeoVRVideoSourceViewModel|DeoVR failed with exception|System.ArgumentException: Drive name must be a root directory (i.e. 'C:') or a drive letter ('C'). (Parameter 'driveName')
   at System.IO.DriveInfoInternal.NormalizeDriveName(String driveName)
   at System.IO.DriveInfo..ctor(String driveName)
   at MultiFunPlayer.VideoSource.MediaResource.MediaResourceFactory.TryParsePath(String path, IMediaResourceInfoBuilder builder)
   at MultiFunPlayer.VideoSource.MediaResource.MediaResourceFactory.CreateFromPath(String path)
   at MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel.Handle(VideoFileChangedMessage message)
   at Stylet.EventAggregator.HandlerInvoker.Invoke(Object message)
   at Stylet.EventAggregator.<>cDisplayClass5_1.<PublishWithDispatcher>b2()
   at Stylet.EventAggregatorExtensions.<>c.<Publish>b__1_0(Action a)
   at Stylet.EventAggregator.PublishWithDispatcher(Object message, Action`1 dispatcher, String[] channels)
   at Stylet.EventAggregatorExtensions.Publish(IEventAggregator eventAggregator, Object message, String[] channels)
   at MultiFunPlayer.VideoSource.ViewModels.DeoVRVideoSourceViewModel.ReadAsync(TcpClient client, NetworkStream stream, CancellationToken token)

Workflows are referencing vulnerable actions

Hello, there!

As part of the university research we are currently doing regarding the security of Github Actions, we noticed that one or many of the workflows that are part of this repository are referencing vulnerable versions of the third-party actions. As part of a disclosure process, we decided to open issues to notify GitHub Community.

Please note that there are could be some false positives in our methodology, thus not all of the open issues could be valid. If that is the case, please let us know, so that we can improve on our approach. You can contact me directly using an email: ikoishy [at] ncsu.edu

Thanks in advance

  1. The workflow ci.yml is referencing action gittools/actions/gitversion/setup using references v0.9.7. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
  2. The workflow ci.yml is referencing action gittools/actions/gitversion/execute using references v0.9.7. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
  3. The workflow publish.yml is referencing action gittools/actions/gitversion/setup using references v0.9.7. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
  4. The workflow publish.yml is referencing action gittools/actions/gitversion/execute using references v0.9.7. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.

The vulnerability fix that is missing by actions' versions could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider updating the reference to the action.

If you end up updating the reference, please let us know. We need the stats for the paper :-)

Patterns - Feature Request

Hello Yoooi0

First, a huge shoutout to you and this awesome Player.

It would be nice, if it has premade patterns inbuilt.
Like for the beginning, just up and down in endless loop would be really nice with speed customizations.

Greetings
Clasher

Allow configuration of gestures

  • Button
    • one/two/three/... presses
    • hold down duration
  • Axis
    • trigger once on threshold
    • min/max value
    • move only one direction and hold (joystick)

Unable to load buttplug_rs_ffi.dll

Hi,

I can't start it, I installed .net but no window shows up.
In the Logs I can find this:

2021-11-05 17:14:51.0469|FATAL|AppDomain|System.DllNotFoundException: Unable to load DLL 'buttplug_rs_ffi' or one of its dependencies: Das angegebene Modul wurde nicht gefunden. (0x8007007E)
at Buttplug.ButtplugFFILogCalls.ButtplugCreateLogHandle(ButtplugLogCallback callback, IntPtr ctx, String level, Boolean aUseJSON)

In the folder there is the buttpluf_rs_ffi.dll but why can it not be found?

"Update when Paused" seems like it's always active, even when disabled

Release v1.17.2.0

If I setup motion and turn on "Update without Script" it will immediately start moving that axis, regardless of video player status and regardless if "Update when Paused" is checked.

Notice how in the screenshots the axis has moved even though the video is paused and "Update when Paused" is not enabled

Screenshot 2021-12-09 173924
Screenshot 2021-12-09 173950

Linux build

Hello,

Is there some hope you release a Linux build of MFP?

Process name variants (Whirligig and DeoVR)

I am running one of the earlier free, as in not from steam, versions of whirligig. THis version is no longer available from the website it seems.

On

if (Process.GetProcessesByName("Whirligig").Length == 0)
the a process with the name Whirligig is queried, however the version I am using has the name Whirligig64bit.

Currently I have no C# toolchain set up so I did not patch this name, instead I changed the application from Whirligig64bit.exe to Whirligig.exe and apparently unity then also expects Whirligig_Data folder instead of Whirligig64_Data. After this change MultiFunPlayer was able to find the process.

I don't know about the steam version, but in anycase checking for either Whirligig or Whirligig64bit instead of only the first one would solve this issue. I can make a PR if you want me too, but as I don't have a C# toolchain I would make it a "blind" one ;)

On a very similar topic I have a variant of DeoVR called SLR, from sexlikereal and as I understand this is a modified version of DeoVR with some integration with their online video portal. Would it make sense to Process.GetProcessesByName for either DeoVR or SLR? I haven't tried yet, but I'll do the same filename rename switcheroo from SLR to DeoVR to test.

Keeps asking for .net 5.0.0

Hi!
Thanks for writing this :o)
Every time I try to start it, I get a popup saying i must install .NET
I've followed the link and tried 5.0.0 x86 and 5.0.0 x64 (Windows) and the latest 5.* branch, but none of them stop the popup - it seems to think it isn't installed. I've verified in Add/Remove Programs that .NET Runtime 5.0.0 IS installed. It looks like I must be doing something wrong, but what.......
Thank you.

Improve script heatmap

Issues:

  • RAW scripts show incorrect heat
  • Better stroke length visualization for short scripts
  • Stroke length is inverted

Ability to customize actions

Examples:

  • L0::LinkAxis::Value with customizable target axis
  • Serial::L0:Range::Minimum::Value with customizable value

Greatly reduces number of actions.
Solves #15.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.