XIM Community

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - W11cE

Pages: [1] 2 3 4
XIM Link / XIM Link 1.4.2 is out!
« on: 02:08 PM - 07/01/19 »
XIM Link is a community created project and is not officially supported by XIM Technologies.

Here is finally a fix for the dragging issue on windows 10 update 1903. If they fix the problem with the api in the future, I will enable the acrylic blur. It is disabled for now if the windows has this update.

Also another thing in this update: XIM 4 support!
If you have already used Link before, you will have apex as an output device. If it is a fresh install, you have to add either Apex or XIM 4 as an output device manually. XIM 4 will still use XIM 4 Manager, so it must be installed.

As the Link is manipulating and controlling external process (XIM 4 Manager), that I have not coded myself, there could still be a case that causes Link to crash if something happens to the manager. However it should work now much better than with Sandhawc. For example a translator update is detected and the connection will not stall and crash like before.

Also there is currently no proper way to restart XIM 4 Manager from Link. The only 2 ways are either Link restart or removing XIM 4 from output devices and adding it again.

XIM Link / XIM Link 1.4 is out!
« on: 08:02 PM - 03/04/19 »
So, a little late from the promised weekend, but here it finally is:

This update has been a long time in the making. Around 6 months actually. I started doing this on a separate branch right after update 1.2. The core changes were already on the last weekly build, however it was still a little buggy. Most of the changes that took a long time to make are not visible to the end user. These are mostly "just" reconstructing the whole program. The original code was quite poorly written and it was hard to maintain when adding new features. After learning how to write better code I reorganized everything. Now the end results look quite nice, from both inside and outside.

Anyway lets get into the main changes:

New UI Style:
The new style is based on my fork of FluentWPF. On windows 10 the Light / Dark mode and accent color is set automatically. Or these can also be selected automatically. The windows are also acrylic transparent (only normal transparency on win 7).

Light style:

Dark Style:

I have also started to use icons and tooltips to make the buttons more compact and make the UI navigation faster.

New Icon:
Until now there has not been a real icon for the program. The biggest problem was that the main window was not distinguishable on the task bar when minimized. Now that there is a tray icon, it would be a good thing to have a unique icon too. The new icon was originally for Sandhawc V2, but that was never released, so it will now serve as a logo for the equivalent successor. If you think you can do a better one, Im open for suggestions. This logo does not translate well into 16x16 size icon, so at least 16x16 size should be changed anyway.

Tray operation:
This was already on the last weekly build, but now the problems have been fixed. Now there is always a tray icon open when Link is open. You can set more options for visibility and opening behavior of the main window in the settings:

I will add more options for the tray later. Now there are only open and close.

Single Instance Operation
Along with the tray mode, I made it possible to open only one instance of Link. Now the previous one will be restored if a new one is opened. Note that this also counts for multiple users, except instance on another user can not be restored.

After making the tray icon I realized that the icon is only accessible for the main display. So I had to make alternative that is accessible from all displays. And this is it:

The bar includes some of the basic info and functionality from the main window. I will add some more stuff later in there.

The bar can be set to specific screen either on the top or bottom of the screen. The bar will eat up usable area of the screen the same way as the taskbar. So it is still accessible after maximizing some other window.

New Exception Handling
The big issue about fixing the crashed was that there was no proper way to tell the use what has happened, so they could report it. Now there is. If the Link crashes, there is a window that will tell you what has happened. There is a button to copy the details to clipboard and the data is also saved to disk, if you need to see it later.

New Installer
The new installer is made with WiX, so it is more customizable. I have not added yet the .NET and VS C++ Redistributable packages into the installer, but this is possible. I just need to figure out how to do that first.

There are a lot of other smaller changes here and there, but Im not going list those here.

Some of the Future Ideas
Lastly I would want to mention some of the ideas that have come to my mind of the next steps:

 - Support for other devices except Apex:
One of the things I kept in mind when rebuilding the program was to be able to support other devices, even multiple devices at the same time. The first device that comes to mind and some people have already asked about it is XIM 4.

 - Plugins:
This is kinda a big beast, but after doing some research and looking into where to hook everything, I can say that this is possible. These would be dlls, but I can also include compiler into Link, so there would be no need to install Visual Studio if you want to make some changes into existing project code. As the libraries are .NET, you could write the plugins with any of the compatible languages: C#, VB, F# or C++ (Managed assembly).

 - Joystick support:
I still have not forgotten this, however this and the plugins overlap a little. Both require a change into the output device queue for the joystick data.

I will also get rid of the weekly builds and start releasing minor updates by changing the third number, like: 1.4.x.0. The weekly builds have served their purpose now.

XIM Link / XIM Link 2019 Update
« on: 12:44 PM - 01/14/19 »
You have probably noticed that there has not been a new version release in quite a while. There are many bigger and smaller things that have caused this, mostly at the end of the year I was quite busy with other stuff and didn't have enough time to actually get together anything worth releasing.

Dont worry, I'm still actively developing Link, the release schedule will just change. First, we will get rid of the weekly builds. The purpose of those was to get quick fixes without any documentation. However at this point when there wont be a new release every week, those do not make sense anymore. Instead the versioning will change to something more "standard". The format will be typical x.x.x. The next version will be 1.4.0.

The new thing that took some time to get working is something called "AppBar". The real API name is "Application Desktop Toolbar". I didnt even know before that something like this existed, but it seemed like a working idea for multi monitor users. Basically it is a bar that is attached to the bottom or top of a screen. What is special about this is that it "eats" screen working area smaller and is always on top. This makes it so that you dont need to bring up the whole main window to do something or see what is happening. It will be always visible.

When I was doing that I wanted to make it look more like windows 10 taskbar. More like an extension for that. The taskbar has quite a lot of coloring and transparency options, so this meant using the windows 10 UWP apis to tap into that information to make the appbar adapt into those options.

These UWP apis dont exist or run on windows 7 or 8.1, so this meant I need to compile a separate version for both. To make things smoother for the end user, I had to make the installer select what version to install. The installer library that I used to make the installer didnt want to bend to something like this. So I had to switch to a completely different installer package. And when you want to make something complex stuff, you need complex tools. Fortunately I got the new installer working, just some testing and visual stuff to fix and everything is working again.

There is a lot of other smaller stuff I have changed, but I will talk about those more when I will release 1.4. This would be hopefully during this month.

XIM Link / Tray mode feedback
« on: 04:37 PM - 10/28/18 »
In the new weekly build there is now tray mode. The tray icon is just a default icon, I will come up with something else later. You can find the settings for the tray mode in the Settings -> Options. The XIM connection also now supports hotswapping. It should reconnect automatically when the XIM is restarted or cable is disconnected.

Tell me how it works for you and if you would like to have something extra somewhere on the tray.

There is also a fix for the crash due to the directories not resolving correctly.

XIM Link / XIM Link 1.3 is out
« on: 11:32 AM - 10/01/18 »
Download: https://github.com/W11cE/XIM-Link/blob/master/Official%20Releases/XIM%20Link%201.3%20Setup.msi

Changelog since 1.2:
- Rebuild profile UI bindings.
- Removed blank area on main window.
- Moved "Activation Key" and "XIM Profile Key" to main window.
- Internal changes on script handling.
- Added default profile.
- Last profile is loaded on startup.
- Window size is remembered from the last session.
- Added button to send current profile XIM Profile Key to XIM.
- Multiple scripts can be selected when assigning scripts to profiles.
- Profiles are now ordered in an alphabetical order, except default profile.
- Numlock state and shift do not affect numpad keys. The behavior is as if numlock would be on.
- Ctrl+Alt+Del combination breaks passthrough mode.
- Added startup arguments -noJoystick and -LLMovement
- Added activation processes.

I was going to do a video explaining all the changes, but thought it would take too long. I want to get the release out of the way, so I can focus on new features instead.

This one took a long time to make, the changes might not look like a lot, but the amount of code changed is much more than in any of the earlier versions. This should be so far the most stable version. v1.2 was completely broken.

Activation Processes
The big new feature is the thing I call "Activation Processes". This is supposed to emulate the way mouse and keyboard profiles are bound to PC games.

You can turn on the feature from options in inside "Profile activation processes". In most cases you would use only the "Start", but for more exotic drivers like Roccat Swarm, you also need to use the "Exit".

The modes work like this:
- "Off": completely off.
- "On, Visible": Will open the process with window visible. Meant mostly only for debugging purposes.
- "On, Hidden": Will open the process with window hidden. However the window is still brought to the foreground if Link has the foreground focus while activating the passthrough.

The executables for binding are located in the folder called ProfileProcesses in the XIM Link documents folder. "Default" is the name of the starting executable and "Exit" is the name of the exiting executable. Note that these only exist if the mode is On in the settings.

For example, for logitech you would bind you profile to "Default.exe" and you should also check box "Lock profile while game is running". Now the profile is activated every time the passthrough is enabled.

For drivers like logitech, where the profile is locked while the process is alive, this works even on the backround. This is not the case for drivers that track only the foreground focus.

Also NOTE: Some antivirus software might trigger on the executables with a warning of something like "Machine Learning". This is because these executables are automatically created, opened and closed.

Lastly, some words of the next steps I am going to work on:
- Internal rebuilding of the core features (something might break), this includes hotswap support for apex connection (this is actually already 90% done, will be in the next weekly.)
- Tray mode, this will not support any deep sleep 0% CPU mode yet, but along with the hotswap support, you can start Link automatically on PC startup and it should "just work".
- Joystick rebinding, I have a plan of the editor UI already. Have not decided yet where to put the bindings, I was thinking of the putting those in the same listbox with the scripts.

XIM Link / XIM Link 1.2 is out
« on: 08:18 PM - 06/22/18 »
This update has been a long process to get out. Wanted to put it out a month ago, but at the same weekend when I wanted to release it, my PC died. After I got a new PC setup running, there were some fatal errors I had to fix. While tracking those, I also did some new code needed for future features.

Download: https://github.com/W11cE/XIM-Link/blob/master/Official%20Releases/XIM%20Link%201.2%20Setup.msi

Changelog since 1.1:
 - Reworked button queue.
 - Joystick support fixes, input is now multi-threaded.
 - Added 64-bit support.
 - Reworked connection status data.
 - Reworked output data view.
 - Script suspend change is now multi-threaded.
 - Popup interrupt behavior option removed, this is now automatic hybrid.

Now I will finally do something to the automatic mouse profile activation.

My PC died recently and I got VS installed and running on the new one only yesterday. So this is why I could not have done any debugging on this problem yet.

While I was installing Link on the new PC it also did not start on the first try. My first idea now is that it is related to the smartscreen protection blocking it.

I will look into this on the following days.

XIM Link / My PC died :(
« on: 03:43 AM - 05/30/18 »
The life cycle of the 9 years old motherboard in my workstation/gaming PC has finally come to an end. It has been through quite a lot. Over 10k hours of active use, for example almost all code on this forum has been done on that.

Weird how just recently we were talking about these motherboards in here:

So, I am telling you this because I could not put out a weekly build on the last week and I might also miss the next one. Was actually going to release 1.2, but it has to wait now until I get a new PC setup running.

XIM Link / XIM Link 1.1 is out.
« on: 02:21 PM - 04/30/18 »
Here is the first slightly bigger update to the XIM Link. I wanted to push this out earlier to fix some critical design errors, but some of those took longer to fix and also I wanted to add something new in there too.

Thanks for everyone who have donated so far. It is nice to have some of the direct and indirect costs covered with donations :)

DL for the 1.1 is here: https://github.com/W11cE/XIM-Link/blob/master/Official%20Releases/XIM%20Link%201.1%20Setup.msi

Changelog since 1.0:
 - Fixed OEM keys and keypad enter key not working correctly.
 - Button queue library rewritten.
 - Added joystick data passthrough from AHK scripts.
 - Admin rights for mouse data capture process removed. Will use now lower priorities.
 - Directory handling for AHK fixed. Will not crash now and will automatically complain about wrong executable.
 - Upgraded the project to use .NET 4.7.1 version.
 - Replaced XIMCommander dll with custom WinUSB library.
 - Added popup interruption handling.
 - Added options for the popup interruptions.
 - F# core included in the build (for F# libraries).

There are (too) many fatal changes in the build. I would appreciate feedback on any negative changes on performance as well as any other feedback with this version.

Lastly I would like to apologize about the automatic deactivation mess. It was something I added quickly and I was not expecting it to affect really anyone. There is now a new selection box called "Popup interruption behavior." in the settings. A quick explanation of the choices would be like this:
 - Break; the latest behavior before the options adding. The passthrough is broken if a new application takes foreground focus.
 - Recapture; ignores the new foreground application and forces freezing the mouse.
 - Off; SandhawC and v1.0 behavior. Does not do anything, but mouse will float on these cases.

There is more into it, but I created these 3 options to have some options for people that have problems with this.

XIM Link / Some critical stability feedback required!!!
« on: 09:51 PM - 04/16/18 »
I would like to get feedback related to the stability of the XIM Link. Specifically crashes or freezes without dialog boxes or exceptions with this build, which is was a RC for 1.1.

The two cases that Im interested about is when you open the Link and when Apex loses power while the Link is open.

So far me and Od1n have had a ton of problems with the stability on these two points. I have figured out that the XIMCommander dll and the thread "state apartment" where the input is running are related to that. If the dll cant be fixed I have to put it into a separate process that I can nuke when needed/wanted. This is really inconvenient and I would not want to do that.

I would like to know what version of windows people with problems are running.

XIM Link / Passthrough Joystick Data from ahk to XIM
« on: 06:50 PM - 03/31/18 »
For those that want to live on the edge, here is an easteregg build that allows what is on the title:

What you need to use on the script is this:
Code: [Select]
XIMInputData(Function, value)
"Function" is a string of one of the the next values:
Code: [Select]

For "value":
if value is a button type:
  0 = unpressed, 1 = pressed.
if value is an axis type:
  0 = center, 100 = max, -100 = min

The set value will stay until a new one is set or passthrough is disabled.

Code: [Select]
    XIMInputData("LeftStickX", 100)
    Sleep 500
    XIMInputData("LeftStickX", 0)
Key "h" will move left joystick axis to right for 500ms.

Code: [Select]
    XIMInputData("Button1", 1)
    Sleep 50
    XIMInputData("Button1", 0)
Key "h" will hold down joystick button 1 for 50ms.

Joystick device passthrough itself is not done yet and you might ask why is this done before it. The simple answer is that I wondered if this could work and I made a code for this. Some of this code actually serves the joystick passthrough, so its not a complete waste.

XIM Link / List of Bugs / Feature ideas
« on: 11:35 AM - 03/26/18 »
The list is located in github:

If you have a github account feel free to comment issues added in there. I will add issues from the forums there myself, since it is the only list I use to track bugs.

XIM Link / Script policy and compatibility
« on: 11:17 AM - 03/26/18 »
ATTENTION! Script policy on this board:

The following scripts are not allowed and will be removed by moderators:

 - Anti recoil scripts
 - Rapid fire scripts
 - Farming bot scripts

What is being watched is the purpose of the script, not the content of the script itself.
Example: Dragging your mouse down with a script, while firing a weapon to compensate for the recoil is considered as an anti recoil script and therefore not allowed. However binding keys to mouse movement for easier vehicle turning is not.

XIM Link / System requirements and supported cables
« on: 11:05 AM - 03/26/18 »
System Requirements
The minimum system requirements are:
 - Windows 7 SP1 32-bit
 - CPU with 2 logical cores, 1.8GHz
 - 1Gb RAM
 - 15Mb free storage

The recommended system requirements are:
 - Windows 10 64-bit
 - CPU with 4 logical cores, 2.66GHz
 - 4Gb RAM
 - 50Mb free storage

OS Versions
The supported OS version are:
 - Windows 7 (must have SP1 installed)
 - Windows 8.1 (windows 8 is not supported)
 - Windows 10 (must have "Windows 10 Anniversary Update 1607" installed)

You must install these first:
 - .NET Framework 4.7.1: https://www.microsoft.com/en-us/download/details.aspx?id=56115
 - Microsoft Visual C++ Redistributable for Visual Studio 2017 both 64 and 32 bit: https://www.visualstudio.com/downloads/

Supported Cables
Right now the only supported easy transfer cables are:

 - Belkin win 7 version "F5U279"
 - Belkin win 8 version "F4U060", may also be called as "F4U060CW"
 - Pluggable Transfer Cable "USB-EASY-TRAN"

In addition there are cables that are not officially supported, but there are users that have reported these to work:

 - Belkin win vista version "F5U258"

These all will work on all Win 7, 8.1 and 10 regardless of the naming.

Any other cables that are not on this list will NOT WORK !!!

Also do not even try the regular usb cables that have male type-A connector on both ends. Those are not even intended to be used for something like this and might damage your XIM and / or PC.

Pages: [1] 2 3 4