<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[James's Programming Page]]></title>
		<link>https://swforum.seekye.com/</link>
		<atom:link href="https://swforum.seekye.com/feed/rss/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent topics at James's Programming Page.]]></description>
		<lastBuildDate>Mon, 18 May 2026 13:27:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odyssey Online.]]></title>
			<link>https://swforum.seekye.com/topic/10171/new/posts/</link>
			<description><![CDATA[<p>I know this forum is mainly supposed to be used for your programming topics James and I hope you respond to this.&nbsp; I am connecting back with Bugaboo and Hellmonger the old team that made the video game you was a part of Odyssey.&nbsp; I know it was a very long ago and you are a different person as you were back then.&nbsp; If you would be interested in possibly reconnecting with us and talking about reviving the project we have a pretty decent interest from our perspective communities and being able to at least say hi to you after all of these&nbsp; years would be nice.&nbsp; I could not find any other way to officially contact you than your discussion page.&nbsp; If you do not really have time or want to revisit your old days of programming in your youth that is fine and I wish you the best of luck.&nbsp; But if you would like to continue this conversation then please tell me how you would like to discuss this with me.&nbsp; I wish you the best of luck and i am glad to see you have not moved too far from your roots in the old days.</p>]]></description>
			<author><![CDATA[null@example.com (Kiljaedon)]]></author>
			<pubDate>Mon, 18 May 2026 13:27:50 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10171/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HidSharp Feature request: HID device in write-only or read-only mode]]></title>
			<link>https://swforum.seekye.com/topic/10170/new/posts/</link>
			<description><![CDATA[<p>Hi James,</p><p>I have one use-case where the current API is quite painful to work around, and I think adding support for write-only or read-only opening would help a lot of people.</p><p>My scenario:<br />I need to send Feature Reports to a HID mouse (mostly to control RGB lighting, DPI stages, polling rate, etc. on gaming mice).</p><p>On Windows:<br />The mouse is opened successfully with GENERIC_WRITE access<br />Writing Feature Reports (via HidD_SetFeature) works perfectly<br />But Windows refuses to open the same device with GENERIC_READ access.<br />When I do device.TryOpen(out var stream) in HidSharp, it requests both read and write access and fails.</p><p>Feature request / suggestion<br />An OpenMode / Access option in TryOpen(OpenConfiguration)</p><p>Something like:<br />var config = new OpenConfiguration();<br />config.SetOption(OpenOption.ReadAccess, true);<br />config.SetOption(OpenOption.WriteAccess, true);<br />device.TryOpen(config, out var stream);</p><p>This would allow clean write-only usage for exactly the kind of devices that Windows protects from being read (mice, some keyboards, touchpads, etc.) while still letting us send output/feature reports.</p><p>Thanks for considering this.</p>]]></description>
			<author><![CDATA[null@example.com (vondollie)]]></author>
			<pubDate>Sat, 21 Mar 2026 22:49:30 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10170/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HIDSharp 2.6.4 released.]]></title>
			<link>https://swforum.seekye.com/topic/10169/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of HIDSharp, 2.6.4. Here&#039;s the link: <a href="https://software.seekye.com/hidsharp">https://software.seekye.com/hidsharp</a></p><p>This version fixes a bug in how negative physical and logical ranges on HID items are encoded.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Tue, 14 Oct 2025 14:38:32 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10169/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[RemoteViewing 1.1.0 released.]]></title>
			<link>https://swforum.seekye.com/topic/10168/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of RemoteViewing, 1.1.0. Here&#039;s the link: <a href="https://software.seekye.com/remoteviewing">https://software.seekye.com/remoteviewing</a></p><p>It fixes some bugs (one potential crash bug in the VNC client), but mainly, it adds 8-bit color support (ugly) and Zlib support (useful) to the VNC server.</p><p>With Zlib support, the VNC server is actually practical to use over the Internet. It uses about 10X less bandwidth, at least when using normal desktop applications. CPU usage is a bit higher when using Zlib, but you can always turn off compression in the VNC client if this is a problem.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Tue, 14 Oct 2025 13:58:20 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10168/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[RemoteViewing 1.0.1 released.]]></title>
			<link>https://swforum.seekye.com/topic/10167/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of RemoteViewing, 1.0.1. Here&#039;s the link: <a href="https://software.seekye.com/remoteviewing">https://software.seekye.com/remoteviewing</a></p><p>It drastically speeds up the VNC server, and fixes some bugs in it as well. Basic Hextile support is in, so 16x16 regions which are a solid color now take 5 bytes to transfer instead of 1024. This helps on text-heavy pages.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Thu, 09 Oct 2025 16:16:17 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10167/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Signed Axis Minimum values are forced to 0]]></title>
			<link>https://swforum.seekye.com/topic/10166/new/posts/</link>
			<description><![CDATA[<p>Hi,</p><p>Thanks for this library. There&#039;s a problem in the report descriptor parsing with signed values for axis (PhysicalMinimum and LogicalMinimum).</p><p>When a negative value is found, it is forced to 0 in Reports/Encoding/EncodedItems, line 160 and 162 :</p><p>Changing the following two lines fixes the bug:</p><p>EncodedItem.cs : L160 change<br />{ DataValue = (uint)(sbyte)value; if (value &lt; 0) { Data.Add(0); } }<br />to<br />{ DataValue = (uint)(sbyte)value; }</p><p>and EncodedItem:L162 change<br />{ DataValue = (uint)(short)value; if (value &lt; 0) { Data.Add(0); Data.Add(0); } }<br />to<br />{ DataValue = (uint)(short)value; }</p><p>I don&#039;t understand what is the purpose of these 2 tests, and if it is a correct fix. Currently I&#039;m stuck in the development of a plugin for a software that uses this library in a dll because of this bug.</p>]]></description>
			<author><![CDATA[null@example.com (Etienne)]]></author>
			<pubDate>Wed, 08 Oct 2025 09:03:47 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10166/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[DeltaSCP 1.1.1 released.]]></title>
			<link>https://swforum.seekye.com/topic/10165/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a release of DeltaSCP, 1.1.1. Here&#039;s the link: <a href="https://software.seekye.com/deltascp">https://software.seekye.com/deltascp</a></p><p>This is a simple Linux differential copy utility that operates over SSH. Mostly it is useful for backing up virtual machine images over the Internet.</p><p>I wrote it in 2010, and posted it on SourceForge briefly -- it appears to be gone now -- but never made a proper release of it. At any rate, this version uses SHA-256 hashes instead of SHA-1 and has some basic versioning in the protocol so I can improve it in the future if I want to. Documentation is included.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Mon, 29 Sep 2025 17:03:19 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10165/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HIDSharp 2.6.3 released.]]></title>
			<link>https://swforum.seekye.com/topic/10164/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of HIDSharp, 2.6.3. Here&#039;s the link: <a href="https://software.seekye.com/hidsharp">https://software.seekye.com/hidsharp</a></p><p>This version improves the shutdown behavior on Windows, Mac, and Linux. It also adds a ManualShutdown() method to trigger that shutdown behavior. If you&#039;re doing some custom behavior loading and unloading assemblies, this version should be a great improvement for you.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Fri, 26 Sep 2025 15:51:53 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10164/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[RemoteViewing 1.0.0 released.]]></title>
			<link>https://swforum.seekye.com/topic/10163/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of RemoteViewing, 1.0.0. Here&#039;s the link: <a href="https://software.seekye.com/remoteviewing">https://software.seekye.com/remoteviewing</a></p><p>It adds support for 16-bit color mode. I found one of my virtual machines used this mode, and RemoteViewing did not previously support it.</p><p>It also fixes mouse coordinate scaling on the Windows Forms control. Thanks to mike10 for reporting this bug!</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Wed, 24 Sep 2025 15:05:40 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10163/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HIDSharp 2.6.2 released.]]></title>
			<link>https://swforum.seekye.com/topic/10162/new/posts/</link>
			<description><![CDATA[<p>I&#039;ve posted a new version of HIDSharp, 2.6.2. Here&#039;s the link: <a href="https://software.seekye.com/hidsharp">https://software.seekye.com/hidsharp</a></p><p>I&#039;ve been using HIDSharp for device testing and programming through Raspberry Pi devices, so Linux support is greatly improved by this version:</p><p>HidDevice.GetSerialPorts() lets you get the serial ports corresponding to a USB composite HID device.<br />HidDevice.GetUsbPort() lets you get information about the USB port to which the HID device is connected. You can use this for visual displays where you have a number of USB devices connected to the same hub, and don&#039;t want the connected device list dancing around.<br />SerialDevice.GetManufacturerName(), GetProductName(), and GetSerialNumber() all work on Linux now.</p><p>There are other improvements and bug fixes as well.</p><p>Enjoy!</p><p>God bless.</p><p>James</p>]]></description>
			<author><![CDATA[null@example.com (James)]]></author>
			<pubDate>Wed, 24 Sep 2025 11:03:01 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10162/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Shift key not working]]></title>
			<link>https://swforum.seekye.com/topic/10159/new/posts/</link>
			<description><![CDATA[<p>Hi, I find that using the remoteviewing client then keys such as shift key are not sent to server. Other clients with same server the key functionality works as expected</p>]]></description>
			<author><![CDATA[null@example.com (mike10)]]></author>
			<pubDate>Wed, 20 Aug 2025 08:29:52 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10159/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HidSharp mocking]]></title>
			<link>https://swforum.seekye.com/topic/10158/new/posts/</link>
			<description><![CDATA[<p>Hi,</p><p>Thanks for the great HidSharp library, I find it very useful. I am using it in one C# project to communicate with a specific device and want to be able to write unit tests for it. Unfortunately, the library currently makes use of concrete types with no interfaces. This makes it hard to mock/fake for testing.</p><p>Is there any chance an `IHidDevice` interface could be added to the NuGet package please? I would be happy to contribute it myself, if you are accepting outside contributions and can tell me how best to share my code with you, as it isn&#039;t hosted on GitHub.</p><p>I envisage something like this:</p><p>```<br />public interface IHidDevice<br />{<br />&nbsp; &nbsp; Stream Open();<br />&nbsp; &nbsp; int ProductID { get; }<br />&nbsp; &nbsp; int VendorID { get; }<br />}<br />```</p>]]></description>
			<author><![CDATA[null@example.com (kingkeith+zer7)]]></author>
			<pubDate>Sat, 11 Jan 2025 20:06:35 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10158/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Screen sizing / mouse movement in RemoteViewing]]></title>
			<link>https://swforum.seekye.com/topic/10157/new/posts/</link>
			<description><![CDATA[<p>Hi, hoping this board is still monitored?</p><p>Thanks for your effort in developing this. </p><p>I am currently trying to implement a VNC client in a C# form using this. I tried VNCSharp previously but found the performance to be poor. RemoteViewing seems much better in that respect. However I find that if I use any sizemode other than AutoSize then the mouse scaling seems incorrect - i.e. I cannot reach the bottom X amount of the screen, depending on how much the size of the control differs from that used by autosize. </p><p>If I use Autosize the problem I have is that the control is then bigger than the form in which I need to display it. I added a panel and made this the parent of the control so I at least get scrollbars and everything works but not userfriendly! Anyideas on a better solution?</p><p>TIA</p><p>Mike</p>]]></description>
			<author><![CDATA[null@example.com (mike10)]]></author>
			<pubDate>Wed, 06 Nov 2024 11:34:29 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10157/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[HidSharp write: 'Operation failed early: The parameter is incorrect']]></title>
			<link>https://swforum.seekye.com/topic/10156/new/posts/</link>
			<description><![CDATA[<p>Hello,</p><p>I have a USB scanner for bar codes/QR codes/MRZ.<br />I have a user manual from the manufacturer, which contains a set of QR codes that allow me to configure the device.<br />For example by scanning the following values:</p><p>$&gt;:S01010F.&lt;$ (Enter Setup)<br />$&gt;: S0F0516.&lt;$ (USB HID POS)<br />$&gt;:S01000F.&lt;$ (Exit Setup)</p><p>I was able to switch the device to &quot;USB HID POS&quot; mode. (default mode being &quot;USB HID-KBW&quot; in which the scanner behaves like a keyboard)<br />In this mode I am able to read scanned data using the HidSharp library.</p><p>However I also need to be able to change the settings of the device programmatically. But when I call stream.Write, I always get the following exception:</p><p>System.IO.IOException: &#039;Operation failed early: The parameter is incorrect&#039;</p><p>Stack trace:<br />at HidSharp.Platform.Windows.NativeMethods.OverlappedOperation(IntPtr ioHandle, IntPtr eventHandle, Int32 eventTimeout, IntPtr closeEventHandle, Boolean overlapResult, NativeOverlapped* overlapped, UInt32&amp; bytesTransferred)</p><p>There&#039;s an inner exception that just says Win32Exception: &#039;The parameter is incorrect&#039; (no stack trace)</p><p><strong>Info about the device:</strong></p><p>// hdev.ToString() + &quot; | &quot; + hdev.DevicePath<br />Linux 3.10.14 with dwc2-gadget hidpos 00000000 (VID 4619, PID 33287, version 3.10) | \\?\hid#vid_120b&amp;pid_8207#7&amp;52366e0&amp;0&amp;0000#{4d1e55b2-f16f-11cf-88cb-001111000030}</p><p>(the device itself has &quot;Linux&quot; in the name, I&#039;m currently running Windows 10)</p><p>The following is an enumeration over the device&#039;s Reports:</p><p>Max Lengths: Input 64, Output 64, Feature 0<br />Serial Ports:<br />1 device items found.<br />Usage: 8C0001 9175041<br />Input: ReportID=2, Length=64, Items=1<br />63 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, BufferedBytes, Usages: 8C00FE 9175294<br />Output: ReportID=4, Length=64, Items=1<br />63 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Nonlinear, Volatile, Usages: 8C0000 9175040</p><p><strong>What I&#039;m trying to do:</strong></p><p>Assuming the device supports receiving setup commands, and that these are the same as the commands from the QR codes, I&#039;ve been trying to send the following commands to the device (one at a time):</p><p>01010F (Enter Setup)<br />0C0814 (Set external illumination to &quot;Always on&quot;)<br />01000F (Exit Setup)</p><p>NOTE: I&#039;ve tried sending it in the format $&gt;:S01010F.&lt;$ and S01010F, but I suspect those are just some tags telling the QR parser it&#039;s a command, and the actual command is the 6 digit hex string.</p><p>I&#039;ve tried creating the input buffer diretly:<br />var enterSetupBuffer = Encoding.ASCII.GetBytes(&quot;01010F&quot;);</p><p>I&#039;ve tried creating a byte array of size 64 and setting the first few bytes in the array:<br />var someBuffer = new byte[64];<br />someBuffer[0] = 0x01;<br />someBuffer[1] = 0x01;<br />someBuffer[2] = 0x0F;<br />(and some variations on this)</p><p>no matter what I do, I get the same error: Operation failed early: The parameter is incorrect.<br />Some more details: I try to write using the HidStream.Write(buffer). I attempt the write before I start reading from the device. stream.CanWrite is returning true.</p><p>As you&#039;ve probably guessed, I&#039;m not good with hardware. I&#039;m primarily a business application developer. All my attempts so far have been pretty much guesswork. I don&#039;t even know if it&#039;s the device rejecting my attempts at communication, or if there&#039;s something else I don&#039;t even know about tripping me up before the data is even sent to the device.</p><p>Any help would be greatly appreciated.</p>]]></description>
			<author><![CDATA[null@example.com (green.airplane)]]></author>
			<pubDate>Wed, 29 May 2024 13:30:32 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10156/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Have issues trying to get 16-bit joystick inputs consistently]]></title>
			<link>https://swforum.seekye.com/topic/10155/new/posts/</link>
			<description><![CDATA[<p>Hello. As the title says, I&#039;m having trouble trying to run a 16-bit joystick/hardware. Sometimes, it works when I run the code. Sometimes it doesn&#039;t. It&#039;s inconsistent and I need help.</p><p>I have no troubles with 8-bit. Just with 16-bit joystick I&#039;m having troubles with.</p><p>Here&#039;s the code:</p><div class="codebox"><pre><code>static void Main()
{
    var list = DeviceList.Local;
    
    var joystick = list.GetHidDeviceOrNull(productID: 12345);

    if (joystick != null)
    {
        using (var stream = joystick.Open())
        {
            var inputReportBuffer = new byte[joystick.GetMaxInputReportLength()];
            while (true)
            {
                try
                {
                    int length = stream.Read(inputReportBuffer, 0, inputReportBuffer.Length);
                    Console.Write($&quot;Worked!\n&quot;);
                    Thread.Sleep(1000);
                }
                catch (Exception ex)
                {
                    Console.Write($&quot;Crashed!\n&quot;);
                    Console.WriteLine($&quot;Exception: {ex.Message}\n{ex.StackTrace}&quot;);
                }

            }
        }
    }
    else
    {
        Console.WriteLine(&quot;Joystick not found.&quot;);
    }
}</code></pre></div><p>Please help me. I really appreciate any kind of help.</p>]]></description>
			<author><![CDATA[null@example.com (zamarloveub)]]></author>
			<pubDate>Mon, 11 Mar 2024 08:09:50 +0000</pubDate>
			<guid>https://swforum.seekye.com/topic/10155/new/posts/</guid>
		</item>
	</channel>
</rss>
