Okay, here's the new command line tool. I'll update the UI app later when we get into a proper release cycle.
DOWNLOAD
It can do most of what you would expect, some minor features are missing and some new ones were added. Supported displays are PinDMDv1-3 and PIN2DMD. However, Lucky1 reported that when connected with libusb-win32, PIN2DMD isn't recognized, while under WinUSB it is. We're still figuring out why.
There are currently two modes:
C:\>dmdext
DMD Extensions v0.1.1
USAGE: dmdext <command> [<options>]
mirror Mirrors pixel data from the screen to one or more other
destinations.
test Displays a test image on all available devices.
Get more help for each:
C:\>dmdext test --help
DMD Extensions v0.1.1
USAGE: dmdext test [--destination=<destination>]
-d, --destination The destination where the DMD data is sent to. One of: [
auto, pindmdv1, pindmdv2, pindmdv3, pin2dmd, virtual ].
Default: "auto", which outputs to all available devices.
--no-virtual Explicitly disables the virtual DMD when destination is
"auto". Default: false.
--use-gray4 Sends frames in 4-bit grayscale to the display if
supported.
--flip-x Flips the image horizontally. Default: false.
--flip-y Flips the image vertically. Default: false.
C:\>dmdext mirror --help
DMD Extensions v0.1.1
USAGE: dmdext mirror --source=<source> [--destination=<destination>]
-s, --source Required. The source you want to retrieve DMD data
from. One of: [ pinballfx2, screen ].
-f, --fps How many frames per second should be mirrored.
Default: 25
-p, --position Position and size of screen grabber source. Four
values: <Left> <Top> <Width> <Height>. Default: "0 0
128 32".
--grid-spacing How much of the white space around the dot should be
cut off. 1 means same size as the dot, 0.5 half size,
etc. 0 for disable. Default: 1.
--grid-size Number of horizontal and vertical dots when removing
grid spacing. Two values: <Width> <Height>. Default:
"128 32".
--no-shading Disabled shading, i.e. artificial downsampling for
RGB displays. Default: false.
--shading-numshades Number of shades for artifical downsampling for RGB
displays. Default: 4
--shading-intensity Multiplies luminosity of the parsed dot so it covers
the whole spectrum before downsampling. Default: 2.5.
--shading-brightness Adds luminosity to the parsed dot after being
multiplied. Useful if even black dots should be
slightly illuminated. Default: 0.1.
-d, --destination The destination where the DMD data is sent to. One
of: [ auto, pindmdv1, pindmdv2, pindmdv3, pin2dmd,
virtual ]. Default: "auto", which outputs to all
available devices.
--no-virtual Explicitly disables the virtual DMD when destination
is "auto". Default: false.
--use-gray4 Sends frames in 4-bit grayscale to the display if
supported.
--flip-x Flips the image horizontally. Default: false.
--flip-y Flips the image vertically. Default: false.
Let me know how it goes. I'm thankful for people with different displays confirming or denying functionality, since I don't have much hardware to test. Please include the log that is printed. Let me also know if you where expecting stuff that isn't in there, I'm open for suggestions.
For the TPA fans, NoEx had good progress with grabbing
DMD data from memory. Will keep you updated. Also thanks again to Russell and Lucky1 for all the painful testing and bearing with me.
Cheers!
EDIT: Updated download link with v0.1.2, which should fix PIN2DMD problem.
EDIT2: Updated download link with 0.1.3, which fixes 4-bit rendering for PIN2DMD.
Edited by freezy, 22 April 2016 - 10:24 AM.