After looking through the interface of XTPlayer, specifically the gamepad/key map section, I assumed it was possible to keybind arbitrary tcode commands to the keyboard (sort of like with 3d printer software). Based on this assumption, I made some personal expansions of the tcode spec in my tcode device’s firmware to add new features linked my own custom tcode commands.
Now I am discovering that the gamepad/key map section in XTPlayer’s settings menu isn’t allowing me to enter any text in the ‘tcode’ column or add new row entries. I fear I may have misunderstood the purpose of the menu and/or I don’t know how to use it.
Was my assumption hasty or is there something I’m missing? Is it possible to keybind arbitrary tcode commands in XTPlayer? Anyone have any advice for my situation? I wish to be able to communicate with my tcode device directly during usage in order to trigger custom actions and adjust on-device settings.
Be warned: This feature hasn’t had allot of testing but the few commands I tested worked when I added it. I dont personally use it my self.
In my firmware, to see a list of commands send: # help (no space after #. Eroscripts did auto formatting) over TCode input like serial monitor. #list-settings will show all the settings from the webUI you can modify over command.
Plain TCode commands should work like L01000I100 as well.
Quick note though, you can tie a button/key/analogstick axis to a device channel directly by default. I added the default setup I used at one point. I have not used my gamepad in a while though.
There’s probably a pre-condition to the crash. Like I mentioned earlier, if you pop out the library window and try to go full screen you will crash for sure I know.
I have this fixed but I was trying to get a few more fixes/changes in before I release it. Taking longer than I expected due to how busy I’ve been with work.
Thank you!! This worked perfectly and enabled me to finish my device customizations. It accepted my custom tcode first try and I had it all working within a few minutes after reading your post.
And thank you for XTPlayer as a whole! Best script player out there imo. It’s what inspired me to get into tcode devices.
Maybe I’m missing something but is there a way to enable some sort of motion smoothing or interpolation in XTPlayer? Even when I turn the motion range down to like 1% it doesn’t change how jerky some scripts are.
Is there a a setting that allow to set default position of some axis like roll\pitch, for single-axis scripts? Just to have better angle.
I tried to set limits on that axis with middle position being what angle i like it to be - but looks like if it’s just single-axis scripts, it doesn’t take that middle position of pitch\roll as default
Is there plans in the future for some form of motion smoothing, or even just a speed limit or other basic safety features? My current device does not have any form of motion smoothing built-in, making XTPlayer unusable with it. Almost every script is dangerously fast and jerky.
Are you limiting the axis ranges? This will modify the speed a bit and make things safer overall.
Something seems to be going on because I find 95% of scripts I download here to be perfectly find. Every once and a while I get a crazy script someone made but most are fine.
Note: there is an on the fly range modifier value but I think it may be broken in the current release. Ive since made it better but its still not perfect.
You’ve given me something to ponder. I would like the “home” position be 5000 fir calibration but that doesn’t work so well for use cases like this. I believe its using 5000 when being sent home now.
I may look into changing this to use the current user range mid/home instead and if one wants to calibrate they need a new profile or reset the ranges.
Maybe I can add a “Calibrate home” button and this is the only time it will send 5000.
Ill have to see.
Yes, will be great!
Cause current home position is really 5000, no matter what limits you set to axis
At least for axis that don’t used, when playing something single-axis
And really, being able to set pitch home position will make better angle in single-axis scenario
Well, table mount solution always make default home position being straight vertical, so 90 degree up\down motion.
And you sitting on chair in front of table, definitely don’t have your member being 90 degree vertical, it’s anatomically make some angle
It’s partially solved in multiaxis scripts by makers, and also by setting limits. But single-axis kinda work badly then(
I and I presume most, usually add random motion to single axis scripts so this is not a concern for that. I understand the want for this though. I believe Ive even tried it a few times.
So you would want the player controls to popup but not the library? Maybe a toggle for both? Maybe a key action that toggles showing/hiding the controls when mouse movement is turned off?
I believe I can make it only show up if the mouse is in that part of the screen. I have it set to NOT disappear if the mouse is hovering over the controls/library area right now.
In either case, its not working how I want it to exactly right now. Id rather it to overlay on the media and not resize the media like it used to pre ffmpeg but it just wasnt working with me for some reason. Id have to go at it from another angle.
Looks like random motion, not reflecting action in the video ruins immersion for me more than just no motion on other axis
In theory, random motion can work if i set limits for pitch to almost no range, but in the position i want - it should do the trick for single-axis profile. Probably.
Seems like a really good player. Only big issue I have is that the program crashes on startup and/or when connecting to serial. If I reboot my computer I can use it again. If the program crashes or I quit out of it, it starts crashing again.
I get the following errors when this happens:
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1 LGPL version 2.1 or later
QObject: Cannot create children for a parent that is in a different thread.
(Parent is XLibraryList(0x56112c08e180), parent's thread is QThread(0x56112b8b4f00), current thread is QThreadPoolThread(0x561130cf3ba0)
QBasicTimer::start: Timers cannot be started from another thread
[1] 331526 segmentation fault (core dumped) ./XTPlayer-v0.5b-Linux-x86_64.appimage